blob: ae0f9f8b153502b57d79abc4a1b578416efe1efd [file] [log] [blame]
Werner Lembergfcc1f472007-04-10 11:51:50 +000012007-04-10 Martin Horak <horakm@centrum.cz>
2
3 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
4 Ignore `hhea' table. This fixes Savannah bug #19261.
5
Werner Lemberg14bf82e2007-04-10 04:09:49 +000062007-04-09 Werner Lemberg <wl@gnu.org>
7
8 * Version 2.3.4 released.
9 =========================
10
11
12 Tag sources with `VER-2-3-4'.
13
14 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
15 version number to 2.3.4.
16
17 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
18 builds/win32/visualc/freetype.dsp,
19 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
20
21 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
22
23 * builds/unix/configure.raw (version_info): Set to 9:15:3.
24
Werner Lembergf4a52a62007-04-09 08:40:11 +0000252007-04-09 Martin Horak <horakm@centrum.cz>
26
27 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
28 memory stream to avoid a crash with the incremental memory
29 interface (Savannah bug #19260).
30
David Turner1dcb4442007-04-06 08:19:04 +0000312007-04-06 David Turner <david@freetype.org>
32
Werner Lembergc81cf612007-04-06 09:28:23 +000033 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
34 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000035
Werner Lemberg9f83e052007-04-05 02:28:23 +0000362007-04-04 Werner Lemberg <wl@gnu.org>
37
38 * Version 2.3.3 released.
39 =========================
40
41
42 Tag sources with `VER-2-3-3'.
43
44 * docs/CHANGES: Mention CVE-2007-1351.
45
David Turner7338ec22007-04-03 14:30:34 +0000462007-04-03 David Turner <david@freetype.org>
47
48 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000049 if one of the resolution values is 0, treat it as if it were the
50 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000051
David Turnere6472c12007-04-02 13:13:54 +0000522007-04-02 David Turner <david@freetype.org>
53
Werner Lemberg94f12272007-04-03 07:19:53 +000054 Add special code to detect `extra-light' fonts and do not snap their
55 stem widths too much to avoid bizarre hinting effects.
56
57 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
58 `extra_light' members.
59
60 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
61 them.
62 (af_latin_metrics_scale_dim): Set `extra_light'.
63 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000064
David Turner3f539692007-03-28 14:53:40 +0000652007-03-28 David Turner <david@freetype.org>
66
Werner Lemberg644b1ad2007-03-28 21:17:11 +000067 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000068 padding.
69
Werner Lemberga08b2172007-03-28 07:17:17 +0000702007-03-28 Werner Lemberg <wl@gnu.org>
71
72 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
73 gracefully.
74 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000075 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000076 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
77 number of code points in Unicode.
78
Werner Lemberg644b1ad2007-03-28 21:17:11 +000079 * builds/win32/visualc/index.html,
80 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +000081 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +000082 s/232/233/.
83
84 * docs/CHANGES: Mention ftdiff.
85
David Turner3b242d32007-03-26 12:03:04 +0000862007-03-26 David Turner <david@freetype.org>
87
Werner Lemberg644b1ad2007-03-28 21:17:11 +000088 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
89 corresponding code.
90 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000091
Werner Lemberga08b2172007-03-28 07:17:17 +000092 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000093 computations in order to ignore single-point contours. These are
94 never rasterized and correspond in certain fonts to mark-attach
95 points that are very far from the glyph's real outline, ruining the
96 computation.
David Turnerf58caa02007-03-26 12:39:25 +000097
Werner Lemberga08b2172007-03-28 07:17:17 +000098 * src/autofit/afloader.c (af_loader_load_g): In the case of
99 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
100 Otherwise code that uses them will most certainly ruin the fixed
101 advance property.
David Turner23553d62007-03-26 13:37:17 +0000102
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000103 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
104 documentation and bump version number to 2.3.3.
105
106 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
107
108 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000109
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001102007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
111
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000112 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
113 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000114 * builds/vms/ftconfig.h: Ditto.
115 * include/freetype/config/ftconfig.h: Ditto.
116
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001172007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
118
Werner Lemberg14ffe092007-03-22 06:12:43 +0000119 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
120 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000121 proposed by Sean McBride:
122 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
123
1242007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
125
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000126 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
127 setjmp, proposed by Sean McBride:
128 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
129
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001302007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
131
Werner Lembergc9f6c662007-03-21 13:30:14 +0000132 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
133 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
134 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000135
David Turner74c34eb2007-03-18 07:19:31 +00001362007-03-18 David Turner <david@freetype.org>
137
Werner Lembergc9f6c662007-03-21 13:30:14 +0000138 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
139 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000140
Werner Lembergc9f6c662007-03-21 13:30:14 +0000141 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000142
David Turner89020d92007-03-17 17:48:57 +00001432007-03-17 David Turner <david@freetype.org>
144
Werner Lembergc9f6c662007-03-21 13:30:14 +0000145 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
146 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000147
Werner Lemberg25d592a2007-03-09 07:59:35 +00001482007-03-09 Werner Lemberg <wl@gnu.org>
149
150 * Version 2.3.2 released.
151 =========================
152
153
154 Tag sources with `VER-2-3-2'.
155
156 * builds/win32/visualc/index.html,
157 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000158 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000159 s/231/232/.
160
David Turner3a51afa2007-03-08 10:50:38 +00001612007-03-08 David Turner <david@freetype.org>
162
Werner Lemberg25d592a2007-03-09 07:59:35 +0000163 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000164
Werner Lemberg25d592a2007-03-09 07:59:35 +0000165 * builds/unix/configure.raw (version_info): Set to 9:13:3.
166
167 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
168
169 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000170
Werner Lemberg1e259de2007-03-08 15:39:21 +0000171 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
172 function to work properly, over-writing user-provided buffers in
173 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000174
David Turner121cad52007-03-08 16:43:50 +0000175
Werner Lemberg3d92f082007-03-06 11:59:24 +00001762007-03-05 Werner Lemberg <wl@gnu.org>
177
178 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
179 macro for `strstr'.
180
181 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
182 `trick_names', as suggested by Ivan Nincic.
183
David Turner085bc6e2007-03-05 17:40:03 +00001842007-03-05 David Turner <david@freetype.org>
185
Werner Lembergd112cf02007-03-06 12:06:56 +0000186 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
187 case FT_Init_FreeType fails for some reason. Problem reported by
188 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000189
Werner Lembergd112cf02007-03-06 12:06:56 +0000190 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
191 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
192 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
193 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000194
Werner Lembergd112cf02007-03-06 12:06:56 +0000195 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
196 signed values, not unsigned ones. Problem reported by Johannes
197 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000198
David Turner601aefe2007-02-21 16:47:49 +00001992007-02-21 David Turner <david@freetype.org>
200
Werner Lembergde5e6862007-02-25 21:06:43 +0000201 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
202 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000203
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002042007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
205
206 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
207 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
208 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
209
Werner Lemberga0915172007-02-16 08:12:50 +00002102007-02-16 Werner Lemberg <wl@gnu.org>
211
212 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
213 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
214
David Turner2c4500e2007-02-14 15:08:47 +00002152007-02-14 David Turner <david@freetype.org>
216
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000217 It seems that the following changes fix most of the known
218 interpreter problems with my fonts, but more testing is needed,
219 though.
220
221 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
222 (TT_MulFix14): Rewrite.
223 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
224 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000225
Werner Lembergc6a14082007-02-12 22:08:15 +00002262007-02-12 Werner Lemberg <wl@gnu.org>
227
228 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
229 warnings.
230
231 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
232 (bdf_interpret_style): Ditto.
233
David Turnerc0f9c4a2007-02-12 14:55:03 +00002342007-02-12 David Turner <david@freetype.org>
235
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000236 Simplify projection and dual-projection code interface.
237
Werner Lemberg406d25f2007-02-12 22:01:18 +0000238 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
239 FT_Vector' as argument type.
240 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
241 Updated.
242 (CUR_fast_project, CUR_fast_dualproj): New macros.
243 (Project, Dual_Project, Project_x, Project_y): Updated.
244 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
245 macros.
246
247
248 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
249 adjustments for the non-light auto-hinted modes. Gets rid of
250 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000251
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000252 * src/autofit/aflatin.c (af_latin_hints_link_segments,
253 af_latin_hints_compute_edges): Slight optimization of the segment
254 linker and better handling of serif segments to get rid of broken
255 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000256
David Turnerc0f9c4a2007-02-12 14:55:03 +0000257
Werner Lemberg442bfb82007-02-12 21:44:10 +0000258 Introduce new string functions and the corresponding macros to get
259 rid of various uses of strcpy and other `evil' functions, as well as
260 to simplify a few things.
261
262 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
263 ft_mem_strcpyn): New declarations.
264 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
265 macros.
266 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
267 functions.
268
269 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
270 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
271 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
272 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
273 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
274 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
275 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
276 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000277
Werner Lemberg406d25f2007-02-12 22:01:18 +0000278 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
279
Werner Lemberg582067d2007-02-11 15:03:05 +00002802007-02-11 Werner Lemberg <wl@gnu.org>
281
282 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
283 non-spacing glyphs.
284
Werner Lemberg8f474532007-02-07 08:31:01 +00002852007-02-07 Tom Parker <palfrey@tevp.net>
286
287 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
288 pointer.
289
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002902007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
291
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000292 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
293 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000294 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000295 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
296 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
297 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
298 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000299
300 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
301 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000302 * builds/mac/ftmac.c: Ditto.
303
3042007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
305
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000306 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000307 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000308 #include <ftmac.c>.
309
3102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
311
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000312 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
313 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
314 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
315 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
316 FT_GetFilePath_From_Mac_ATS_Name.
317 * builds/mac/ftmac.c: Ditto.
318
3192007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
320
Werner Lembergdcbb7082007-02-08 08:54:09 +0000321 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000322 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
323 for passing to FT_New_Face_From_FSSpec.
324
3252007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
326
Werner Lembergdcbb7082007-02-08 08:54:09 +0000327 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000328 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000329
330 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
331 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000332 * builds/mac/ftmac.c (OS_INLINE): Ditto.
333
Werner Lemberg313d7772007-02-01 08:10:45 +00003342007-02-01 Werner Lemberg <wl@gnu.org>
335
336 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
337 Explain why applications shouldn't use it. Found by Alexei.
338
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003392007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000340
341 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
342 message.
343
344 * src/gxvalid/gxvmort1.c
345 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
346 message.
347
Werner Lemberg53935932007-01-31 08:53:02 +00003482007-01-31 Werner Lemberg <wl@gnu.org>
349
350
351 * Version 2.3.1 released.
352 =========================
353
354
355 Tag sources with `VER-2-3-1-FINAL'.
356
357 * builds/win32/visualc/freetype.dsp,
358 builds/win32/visualc/freetype.vcproj: s/230/231/.
359 * builds/win32/visualc/index.html: s/221/231/.
360
361 * vms_make.com: Add `ftgasp'.
362
David Turnera7ee6082007-01-30 10:33:53 +00003632007-01-30 David Turner <david@freetype.org>
364
Werner Lemberg53935932007-01-31 08:53:02 +0000365 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000366
Werner Lemberg53935932007-01-31 08:53:02 +0000367 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000368
Werner Lemberg25d592a2007-03-09 07:59:35 +0000369 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000370 s/2.3.0/2.3.1/.
371
372 * builds/unix/configure.raw (version_info): Set to 9:12:3.
373
374
375 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
376 (af_loader_load_g): Disable the warper (i.e., the light hinting
377 improvements) to make a 2.3.1 bugfix release before introducing a
378 new feature. This should give us more time to tune and improve the
379 warper for the next release.
380
381 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000382
David Turnerd91eebd2007-01-26 15:05:41 +00003832007-01-25 David Turner <david@freetype.org>
384
Werner Lembergbf241762007-01-26 16:08:49 +0000385 For light auto-hinting, improve glyph advance widths and resurrect
386 normal/full hinting to its normal quality.
387
388 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
389 and `xmax_delta'.
390 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
391 and `xmax_delta'.
392
393 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
394 preprocessor conditional with if-clause, handling both light and
395 normal mode.
396
397 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
398 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000399
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004002007-01-25 Werner Lemberg <wl@gnu.org>
401
402 * docs/release: Updated -- Savannah uses a new uploading scheme.
403
David Turnera42567b2007-01-25 12:23:37 +00004042007-01-25 David Turner <david@freetype.org>
405
Werner Lembergd7855662007-01-25 13:53:56 +0000406 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000407
Werner Lembergd7855662007-01-25 13:53:56 +0000408 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
409 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
410 functions.
David Turnera42567b2007-01-25 12:23:37 +0000411
Werner Lembergd7855662007-01-25 13:53:56 +0000412 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000413
Werner Lembergb1be9e82007-01-25 11:50:00 +00004142007-01-25 Werner Lemberg <wl@gnu.org>
415
416 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000417 correctly in a sanity check. Since this function is only used to
418 load local and global functions, any charstring that called the last
419 local/global function would fail otherwise. This fixes Savannah bug
420 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000421
422 * docs/CHANGES: Document it.
423
David Turnerb6de8d12007-01-23 15:51:50 +00004242007-01-23 David Turner <david@freetype.org>
425
Werner Lembergb1be9e82007-01-25 11:50:00 +0000426 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
427 prevented compilation when disabling both the unpatented and the
428 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000429
Werner Lembergb1be9e82007-01-25 11:50:00 +0000430
431 Fix and enable the warper to improve `light' hinting mode. This is
432 not necessarily a final version, but it seems to work well.
433
434 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
435 Disable code.
436 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
437 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
438
439 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
440 (af_warper_compute_line_best): Fix array size of `scores'.
441 (af_warper_compute): Better handling of border cases.
442 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
443 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000444
Werner Lemberg011d1112007-01-21 09:36:00 +00004452007-01-21 Werner Lemberg <wl@gnu.org>
446
Werner Lemberg42b63b22007-01-21 21:01:33 +0000447 * ChangeLog: Split off older entries into...
448 * ChangeLog.22: This new file.
449
4502007-01-21 Werner Lemberg <wl@gnu.org>
451
Werner Lemberg555258f2007-01-21 09:46:37 +0000452 * docs/CHANGES: Document SHZ fix.
453
4542007-01-21 George Williams <gww@silcom.com>
455
456 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
457 points.
458
4592007-01-21 Werner Lemberg <wl@gnu.org>
460
Werner Lemberg011d1112007-01-21 09:36:00 +0000461 * src/sfnt/ttmtx.c (tt_face_get_metrics)
462 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
463
Werner Lemberg87a5a432007-01-17 12:44:39 +00004642007-01-17 Werner Lemberg <wl@gnu.org>
465
Werner Lembergb8003292007-01-17 12:56:25 +0000466
467 * Version 2.3.0 released.
468 =========================
469
470
471 Tag sources with `VER-2-3-0-FINAL'.
472
4732007-01-17 Werner Lemberg <wl@gnu.org>
474
Werner Lemberg87a5a432007-01-17 12:44:39 +0000475 * docs/release: Updated.
476
David Turner22122722007-01-16 20:06:44 +00004772007-01-16 David Turner <david@freetype.org>
478
Werner Lemberg87a5a432007-01-17 12:44:39 +0000479 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
480 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
481 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
482 warnings.
David Turner22122722007-01-16 20:06:44 +0000483
Werner Lemberg267e1d72007-01-15 07:48:09 +00004842007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
485
486 * builds/amiga/makefile, builds/amiga/makefile.os4,
487 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
488
489 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
490
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004912007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
492
493 Fix various compiler warnings.
494
495 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
496 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
497 s/index/strike_index/.
498 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
499
500 * src/gxvalid/gxvmorx5.c
501 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
502
503 * src/truetype/ttinterp.c (Compute_Point_Displacement),
504 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
505 uninitialized variables.
506
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005072007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
508
509 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
510
Werner Lemberg281c1482007-01-13 22:50:51 +00005112007-01-13 Werner Lemberg <wl@gnu.org>
512
513 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
514 versions up to 0x3FF without complaining.
515
Werner Lembergac250b22007-01-13 14:01:36 +00005162007-01-13 Derek Clegg <dclegg@apple.com>
517
518 Add FT_Get_PS_Font_Info interface to CFF driver.
519
520 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
521 (CFF_FontRec): Add `font_info' field.
522
523 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
524 (cff_font_done): Free font->font_info if necessary.
525
526 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
527 (cff_service_ps_info): Register cff_ps_get_font_info.
528
Werner Lemberg23df31a2007-01-13 08:45:00 +00005292007-01-13 Werner Lemberg <wl@gnu.org>
530
531 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
532 with C++ compiler.
533
534 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
535 af_glyph_hints_dump_edges): Ditto.
536
537 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
538 `modules.cfg').
539
540 * src/sfnt/ttsbit0.h: Remove.
541
542 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
543
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005442007-01-12 David Turner <david@freetype.org>
545
546 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
547 bug in the bitmap emboldener if the pitch of the source bitmap is
548 much larger than its width.
549
550 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
551 compilation warning.
552
Werner Lemberg6d96d312007-01-12 10:30:19 +00005532007-01-12 Werner Lemberg <wl@gnu.org>
554
555 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
556 `automake' CVS module from sources.redhat.com.
557
Werner Lemberg17432b52007-01-12 09:28:44 +00005582007-01-11 Werner Lemberg <wl@gnu.org>
559
560 * src/type1/t1load.c (is_space): Removed.
561 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
562 (parse_charstrings): Use IS_PS_TOKEN.
563
564
565 * autogen.sh: Avoid bash specific syntax.
566
David Turner038ace22007-01-11 15:00:59 +00005672007-01-11 David Turner <david@freetype.org>
568
Werner Lemberg17432b52007-01-12 09:28:44 +0000569 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000570
Werner Lemberg17432b52007-01-12 09:28:44 +0000571 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000572
Werner Lemberg17432b52007-01-12 09:28:44 +0000573 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
574 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000575 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000576
Werner Lemberg17432b52007-01-12 09:28:44 +0000577 * autogen.sh: Small fix to get it working on Mac OS X properly:
578 The issue is that GNU libtool is called `glibtool' on this platform,
579 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000580
David Turner2628ea92007-01-10 13:15:56 +00005812007-01-10 David Turner <david@freetype.org>
582
Werner Lemberg17432b52007-01-12 09:28:44 +0000583 * all-sources: Tag all sources with VER-2-3-0-RC1 and
584 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000585
Werner Lemberg17432b52007-01-12 09:28:44 +0000586 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
587 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
588 version number to 2.3.0.
589
590 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
591 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000592
593 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000594 include/freetype/ftlcdfil.h: Update reference documentation with
595 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000596
Werner Lemberg17432b52007-01-12 09:28:44 +0000597 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
598 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000599
Werner Lembergbf02d392007-01-10 07:07:37 +00006002007-01-10 Derek Clegg <dclegg@apple.com>
601
602 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
603 values.
604
David Turnerf48b60e2007-01-08 15:15:32 +00006052007-01-08 David Turner <david@freetype.org>
606
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000607 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000608
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000609 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
610 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000611 corresponding to a given character pixel size.
612
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000613 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
614 `gasp' table, in order to avoid potential problems with later
615 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000616
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000617 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
618 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000619
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000620 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
621 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
622 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
623 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000624
Werner Lemberge6b6f372007-01-07 00:06:47 +00006252007-01-07 Werner Lemberg <wl@gnu.org>
626
Werner Lembergb8004d22007-01-07 09:13:38 +0000627 * src/cid/cidparse.c (cid_parser_new): Improve error message for
628 Type 11 fonts.
629 Scan for `/sfnts' token.
630
6312007-01-07 Werner Lemberg <wl@gnu.org>
632
633 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000634
Werner Lembergbe5f7972007-01-06 07:51:48 +00006352007-01-06 Werner Lemberg <wl@gnu.org>
636
637 * src/cff/cffload.c (cff_index_init): Remove unused variable.
638 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
639
David Turnera8cf42b2007-01-04 16:46:46 +00006402007-01-04 David Turner <david@freetype.org>
641
Werner Lembergf6294392007-01-06 07:47:45 +0000642 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
643 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000644
Werner Lembergf6294392007-01-06 07:47:45 +0000645
646 Do not allocate interpreter-specific tables in memory if we are not
647 going to load glyphs with the bytecode interpreter anyway.
648
649 * src/truetype/ttgload.c (tt_loader_init): Load execution context
650 only if glyph is hinted.
651 Updated.
652 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
653 and `cvs_ready'.
654 Add `tt_size_ready_bytecode' declaration.
655 * src/truetype/ttobjs.c (tt_size_done_bytecode,
656 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
657 (tt_size_init): Move most code into `tt_size_init_bytecode'.
658 (tt_size_done): Move most code into `tt_size_done_bytecode'.
659 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000660
David Turner91a34022007-01-05 14:47:08 +0000661
Werner Lembergf6294392007-01-06 07:47:45 +0000662 Don't extract the metrics table from the SFNT font file. Instead,
663 reparse it on each glyph load. The runtime difference is not
664 noticeable, and it can save a lot of heap memory when memory-mapped
665 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000666
Werner Lembergf6294392007-01-06 07:47:45 +0000667 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
668 `horz_metrics_offset' and `vert_metrics_ofset'.
669 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
670 Updated.
671
672
673 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
674
675
676 Do not load the CFF index offsets into memory, since this wastes a
677 *lot* of heap memory with large Asian CFF fonts. There is no
678 significant performance loss.
679
680 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
681 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
682 `data_size'.
683 (CFF_CharsetRec): Add field `num_glyphs'.
684
685 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
686 cff_charset_cid_to_gindex): New functions.
687 (cff_new_index): Renamed to...
688 (cff_index_init): This. Update all callers.
689 Updated -- some code has been moved to `cff_index_load_offsets'.
690 (cff_done_index): Renamed to...
691 (cff_index_done): This. Update all callers.
692 (cff_index_get_pointers, cff_index_access_element): Updated to use
693 stream offsets.
694 (cff_charset_compute_cids): Set `num_glyphs' field.
695 (cff_encoding_load): Updated.
696
697 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000698
6992007-01-04 David Turner <david@freetype.org>
700
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000701 * docs/INSTALL.UNIX: Simplify some parts, add reference to
702 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000703
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000704 * README.CVS: Add common problem description and solution
705 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000706
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000707 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000708
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000709 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000710
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000711 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000712
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000713 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
714 (TWorker): This.
715 Remove `count_table' and `memory'.
716 Make `grays' a pointer.
717 (TRaster): New structure.
718 (count_table): New static array.
719 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
720 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
721 ft_black_set_mode, ft_black_render): Updated.
722 (ft_black_init): Don't initialize `count_table'.
723 (ft_black_reset): Use the render pool. This saves about 6KB of
724 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000725
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000726 * src/smooth/ftgrays.c (TRaster): Replaced with...
727 (TWorker): This.
728 Remove `memory'.
729 (TRaster): New structure.
730
731 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
732 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
733 gray_render_span, gray_raster_render): Updated.
734 (gray_raster_reset): Use the render pool. This saves about 6KB of
735 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000736
David Turner8a6c44e2007-01-04 17:03:11 +0000737 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
738 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000739 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
740 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
741 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000742
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000743 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
744 Remove a typo that results in no hinting and a memory leak with some
745 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000746
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000747 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000748 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000749 CFF_Faces in it. We need to close all faces before destroying the
750 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000751
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007522007-01-02 Werner Lemberg <wl@gnu.org>
753
754 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
755 Remove compiler warning.
756
David Turner9207e002007-01-02 16:58:13 +00007572007-01-02 David Turner <david@freetype.org>
758
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000759 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000760
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007612006-12-31 Masatake YAMATO <jet@gyve.org>
762
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000763 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
764 function.
765 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000766 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000767 `gxv_kern_subtable_fmt0_pairs_validate'.
768
David Turner115b4422006-12-22 11:37:05 +00007692006-12-22 David Turner <david@freetype.org>
770
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000771 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
772 warnings.
David Turner115b4422006-12-22 11:37:05 +0000773
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000774 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
775 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000776
Werner Lemberg4755bf72006-12-16 08:58:44 +00007772006-12-16 Anders Kaseorg <anders@kaseorg.com>
778
779 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
780 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
781
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007822006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
783
Werner Lemberg9b774e22007-01-16 06:11:27 +0000784 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000785 sync with the modification by Jens Claudius on 2006-08-22; cf.
786 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 +0000787
7882006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
789
790 * src/base/ftmac.c: Specialized for Mac OS X only.
791 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
792 * builds/unix/configure.raw: Ditto. When explicit switches for
793 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
794 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
795
7962006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
797
798 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
799 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
800 instead of src/base/ftmac.c
801 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
802 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
803 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
804 that cannot be built at present.
805
8062006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
807
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000808 * src/base/ftobjs.c: Improvement of resource fork handler for
809 POSIX, cf.
810 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000811 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
812 format or .dfont, to simulate the face index number counted by ftmac.c.
813 (IsMacResource): Return the number of scalable faces correctly.
814
Werner Lembergec5b4502006-12-10 07:51:38 +00008152006-12-10 Werner Lemberg <wl@gnu.org>
816
817 * builds/toplevel.mk (version): Protect against `distclean' target.
818
Werner Lembergb26b3142006-12-09 20:01:43 +00008192006-12-09 Werner Lemberg <wl@gnu.org>
820
821 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
822 or `type'.
823
824 * builds/freetype.mk (version): Extracted from freetype.h, using
825 GNU make's built-in string functions.
826 (refdoc): Use $(version) instead of static version number.
827
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008282006-12-08 Werner Lemberg <wl@gnu.org>
829
830 * builds/toplevel.mk (dist): Extract version number from freetype.h.
831
Werner Lemberg15c29502006-12-09 07:29:54 +00008322006-12-08 Vladimir Volovich <vvv@vsu.ru>
833
834 * src/tools/apinames (State): Remove final comma in structure -- xlc
835 v5 under AIX 4.3 doesn't like this.
836
David Turnerdbf3b432006-12-07 21:18:09 +00008372006-12-07 David Turner <david@freetype.org>
838
Werner Lemberg256a3512006-12-08 06:49:33 +0000839 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
840 to the spacing of auto-fitted glyphs. This only impacts rare
841 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000842
Werner Lemberg11171312006-12-03 09:43:40 +00008432006-12-03 Werner Lemberg <wl@gnu.org>
844
845 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
846
Werner Lemberg960ba592006-12-01 08:20:47 +00008472006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000848
Werner Lemberg960ba592006-12-01 08:20:47 +0000849 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
850 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
851 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000852
David Turner80658e52006-11-28 08:09:20 +0000853
Werner Lemberg960ba592006-12-01 08:20:47 +0000854 * include/freetype/ftxf86.h: Fix and extend comment so that it
855 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000856
Werner Lemberg960ba592006-12-01 08:20:47 +0000857 * include/freetype/ftchapters.h: Add `font_format' section.
858
859
860 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
861 to TOC in index page.
862
8632006-11-28 David Turner <david@freetype.org>
864
865 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
866 trying to render into a zero-width/height bitmap, not an error code.
867
868 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
869
870 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
871 ones instead.
872
873 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
874 variable.
David Turner80658e52006-11-28 08:09:20 +0000875
Werner Lemberg8636c292006-11-26 22:28:13 +00008762006-11-26 Pierre Hanser <hanser@club-internet.fr>
877
878 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
879
Werner Lemberg960ba592006-12-01 08:20:47 +00008802006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000881
Werner Lemberg960ba592006-12-01 08:20:47 +0000882 * src/autofit/afhints.c (af_glyph_hints_dump_points,
883 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
884 Add stubs to link the `ftgrid' test program when debugging is
885 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000886
Werner Lemberg960ba592006-12-01 08:20:47 +00008872006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000888
889 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000890 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
891
892 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
893 Emit more sensible information.
894
895 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
896
897 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
898 rounding of blue values.
899 (af_latin_hints_compute_segments): Hint segment heights.
900 (af_latin_hints_link_segments): Reduce `len_score' value.
901 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
902 value and use `height' member for comparisons.
903 (af_latin_hint_edges): Extend logging message.
904 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000905
Werner Lemberg91959bf2006-11-22 10:36:55 +00009062006-11-22 Werner Lemberg <wl@gnu.org>
907
908 Fix Savannah bug #15553.
909
910 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
911 program after a change from mono to grayscaling (and vice versa).
912 Use correct constant for comparison to get `exec->grayscale'.
913
Werner Lemberg913a3652006-11-19 09:19:17 +00009142006-11-18 Werner Lemberg <wl@gnu.org>
915
916 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000917 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000918 This patch fixes Savannah bug #18301.
919
920 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
921 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
922 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
923 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
924 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
925 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
926 (FNT_Load_Glyph): Check validity of `glyph_index'.
927
David Turner7bab6ae2006-11-13 11:25:06 +00009282006-11-13 David Turner <david@freetype.org>
929
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000930 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
931 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000932
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000933 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
934 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
935 when building the library to change the default LCD filter to be
936 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000937
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000938 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000939
David Turner8765c712006-11-10 16:49:42 +00009402006-11-10 David Turner <david@freetype.org>
941
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000942 * src/smooth/ftsmooth.c: API change for the LCD
943 filter. The FT_LcdFilter value is an enumeration describing which
944 filter to apply, with new values FT_LCD_FILTER_LIGHT and
945 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
946 algorithm which produces strong color fringes for everything
947 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000948
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000949 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
950 second parameter to an enum type.
951
952 * src/base/ftlcdfil.c (USE_LEGACY): Define.
953 (_ft_lcd_filter): Rename to...
954 (_ft_lcd_filter_fir): This.
955 Update parameters.
956 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
957 (FT_Library_Set_LcdFilter): Update parameters.
958 Handle new filter modes.
959
960 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
961 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
962 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
963 callback and update other fields.
964
965 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
966 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
967 Other minor improvements.
968
969 * src/autofit/aflatin.c: Various tiny improvements that drastically
970 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
971 (af_latin_hints_compute_edges): Fix typo.
972 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000973
David Turner4e9cc3c2006-11-09 16:31:52 +00009742006-11-09 David Turner <david@freetype.org>
975
Werner Lemberg49c77a82006-11-09 21:51:57 +0000976 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
977 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000978
Werner Lemberg5e430892006-11-07 09:35:03 +00009792006-11-07 Zhe Su <james.su@gmail.com>
980
981 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
982 also.
983
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009842006-11-03 Werner Lemberg <wl@gnu.org>
985
986 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
987
David Turner40604742006-11-02 16:37:35 +00009882006-11-02 David Turner <david@freetype.org>
989
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000990 Add a few tweaks to better handle serif fonts.
991 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000992
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000993 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
994 segments that are less than 1.5 pixels high. This gets rid of
995 *many* corner cases with serifs.
996 (af_latin_align_linked_edge): Add logging message.
997 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
998 Add logging messages.
999 Handle AF_EDGE_FLAG flag specially.
1000
1001 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1002 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1003
1004 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1005 Update external declarations.
1006 (af_corner_orientation, af_corner_is_flat): Replaced by...
1007
1008 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1009 ft_corner_is_flat): These declarations.
1010
1011 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1012 Comment out. Replaced by...
1013
1014 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1015 These functions. Update all callers.
1016 (FT_Add64) [!FT_LONG64]: Simplify.
1017
1018 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1019 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1020 production of garbage by missing lots of segments.
1021
1022 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1023
1024 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1025 [AF_DEBUG]: Set _af_debug_hints.
1026
1027
1028 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1029 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1030 and ft_corner_orientation.
1031
1032
1033 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001034
Werner Lemberge88c5262006-10-24 05:46:26 +000010352006-10-24 Werner Lemberg <wl@gnu.org>
1036
1037 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1038
1039 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1040 as argument.
1041
David Turnera1861392006-10-23 16:00:59 +000010422006-10-23 Zhe Su <zsu@novell.com>
1043
Werner Lemberg715e96e2006-10-24 05:28:45 +00001044 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1045 better deal with broken Asian fonts with strange glyphs, having
1046 self-intersections and other peculiarities. The used algorithm is
1047 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001048
David Turnere140f142006-10-23 08:56:57 +000010492006-10-23 David Turner <david@freetype.org>
1050
Werner Lemberg715e96e2006-10-24 05:28:45 +00001051 Speed up the CFF font loader. With some large CFF fonts,
1052 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001053
Werner Lemberg715e96e2006-10-24 05:28:45 +00001054 * src/cff/cffload.c (cff_get_offset): Removed.
1055 (cff_new_index): Inline functionality of `cff_get_offset'.
1056 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1057 (cff_charset_done): Call `cff_charset_free_cids'.
1058 (cff_charset_load): Call `cff_charset_compute_cids'.
1059 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1060
1061 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1062 with FT_NEXT_XXX.
1063
1064
1065 Speed up the Postscript hinter, with more than 100% speed increase
1066 on my machine.
1067
1068 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1069 psh_corner_orientation): New functions.
1070 (psh_glyph_compute_inflections): Merge loops for efficiency.
1071 Use `psh_corner_orientation'.
1072 (psh_glyph_init): Use `psh_corner_is_flat'.
1073 (psh_hint_table_find_strong_point): Renamed to...
1074 (psh_hint_table_find_strong_points): This.
1075 Rewrite, adding argument to handle all points at once.
1076 Update all callers.
1077 (PSH_MAX_STRONG_INTERNAL): New macro.
1078 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001079
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010802006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1081
1082 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001083 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001084
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010852006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1086
1087 * docs/INSTALL.CROSS: New document file for cross-building.
1088
1089 * builds/unix/configure.raw: Preliminary cross-building support.
1090 Find native C compiler and pass it by CC_BUILD, and
1091 find suffix for native executable and pass it by EXEEXT_BUILD.
1092 Also suffix for target executable is passed by EXEEXT.
1093
Werner Lembergb9e6d692006-10-15 08:58:40 +00001094 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1095 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001096 CC_BUILD and EXEEXT_BUILD.
1097
Werner Lembergb9e6d692006-10-15 08:58:40 +00001098 * builds/exports.mk (APINAMES_EXE): Change the extension for
1099 apinames from the suffix for target (E) to that for building host
1100 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001101
Werner Lemberg82a07e92006-10-12 06:20:44 +000011022006-10-12 Werner Lemberg <wl@gnu.org>
1103
1104 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1105 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1106 which reference those files.
1107
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011082006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1109
Werner Lembergb9e6d692006-10-15 08:58:40 +00001110 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1111 embedded in freetype2.pc and freetype-config. Use it to record
1112 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001113
1114 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1115
1116 * builds/unix/freetype-config.in: Ditto.
1117
Werner Lemberg28e17d92006-10-11 17:27:47 +000011182006-10-11 Werner Lemberg <wl@gnu.org>
1119
1120 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1121 development.
1122
Jens Claudius336d2292006-10-03 08:53:37 +000011232006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1124
1125 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1126 argument to ft_setjmp.
1127
1128 * include/freetype/internal/ftvalid.h: Add comment that
1129 ft_validator_run must not be used.
1130
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011312006-10-01 Werner Lemberg <wl@gnu.org>
1132
1133 * src/base/ftbase.c: Undo change from 2006-09-30.
1134
1135 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1136
11372006-09-30 David Turner <david@freetype.org>
1138
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001139 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1140 s/unpatented_hinting/ignore_unpatented_hinter/.
1141 Update all callers.
1142
1143 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1144 auto-hinting shall be used or not.
1145
1146 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001147
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011482006-09-30 Werner Lemberg <wl@gnu.org>
1149
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001150 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1151 in use).
1152
1153 * src/base/ftbase.c: Include `ftlcdfil.c'.
1154
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011552006-09-29 Werner Lemberg <wl@gnu.org>
1156
1157 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1158 overlapping segments. Bug reported by Stefan Koch.
1159
David Turnerad830712006-09-27 16:20:59 +000011602006-09-28 David Turner <david@freetype.org>
1161
Werner Lemberg2c002e12006-09-29 21:31:53 +00001162 Fix a bug in the automatic unpatented hinting support which prevents
1163 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001164
Werner Lemberg2c002e12006-09-29 21:31:53 +00001165 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1166 s/force_autohint/unpatented_hinting/. Update all callers.
1167
1168 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1169
1170 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001171
David Turner8a317cf2006-09-27 07:52:48 +000011722006-09-27 David Turner <david@freetype.org>
1173
Werner Lemberg2c002e12006-09-29 21:31:53 +00001174 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001175
David Turner8a317cf2006-09-27 07:52:48 +00001176
David Turnere140f142006-10-23 08:56:57 +00001177 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001178 In a default build, the function `FT_Library_SetLcdFilter' returns
1179 `FT_Err_Unimplemented_Feature'; you need to #define
1180 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1181 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001182
Werner Lemberg2c002e12006-09-29 21:31:53 +00001183 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001184
Werner Lemberg2c002e12006-09-29 21:31:53 +00001185 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1186 typedef.
1187 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1188 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001189
Werner Lemberg2c002e12006-09-29 21:31:53 +00001190 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1191 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001192
Werner Lemberg2c002e12006-09-29 21:31:53 +00001193 Handle subpixel rendering.
1194 Simplify function.
1195 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1196 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1197
1198 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1199 pointing to <freetype/ftlcdfil.h>.
1200
1201 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1202 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1203
1204 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001205
Werner Lemberge20df4a2006-09-27 06:29:21 +000012062006-09-26 David Bustin
1207
1208 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1209 correctly. Reported as Savannah bug #17843.
1210
David Turner6f8c6222006-09-26 15:42:44 +000012112006-09-26 David Turner <david@freetype.org>
1212
Werner Lemberg110246c2006-09-26 21:55:44 +00001213 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1214 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1215 horizontal and vertical hinting for the purpose of debugging the
1216 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001217
Werner Lemberg110246c2006-09-26 21:55:44 +00001218 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1219 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001220
Werner Lemberg110246c2006-09-26 21:55:44 +00001221 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1222
1223 * include/freetype/config/ftoption.h, devel/ftoption.h
1224 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1225 we want to compile LCD-optimized rendering code (à la ClearType) or
1226 not. The macro *must* be disabled in default builds of the library
1227 for patent reasons.
1228
1229 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1230 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1231 isn't defined at compile time. This only changes the content of the
1232 rendered glyph to match the one of normal gray-level rendering,
1233 hence clients should not need to be modified.
1234
1235 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001236
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012372006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1238
1239 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1240 LWFN fails and both are available.
1241
David Turnerf3050052006-09-11 12:00:32 +000012422006-09-11 David Turner <david@freetype.org>
1243
Werner Lembergf9644552006-09-12 13:48:10 +00001244 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1245 report their English names through an Apple Roman
1246 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001247
Werner Lembergf9644552006-09-12 13:48:10 +00001248 If the font uses another name entry with language_id == English, it
1249 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001250
Werner Lembergf9644552006-09-12 13:48:10 +00001251 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1252 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001253
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012542006-09-05 Werner Lemberg <wl@gnu.org>
1255
1256 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001257 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001258 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1259 `HAN NOM B.ttf').
1260
1261 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1262
David Turner772e55d2006-09-05 09:45:15 +000012632006-09-05 David Turner <david@freetype.org>
1264
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001265 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001266
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001267 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1268 (TRaster): Remove `count_ex' and `count_ey'.
1269 (gray_find_cell): Remove 2nd and 3rd argument.
1270 (gray_alloc_cell): Merged with `gray_find_cell'.
1271 (gray_record_cell): Simplify.
1272 (gray_set_cell): Rewrite.
1273 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1274 (gray_render_span): Don't use FT_MEM_SET for small values.
1275 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1276 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1277 bitmap scanline.
1278 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001279
David Turneraa557a92006-09-04 16:42:44 +000012802006-09-04 David Turner <david@freetype.org>
1281
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001282 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1283 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001284
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012852006-09-03 Werner Lemberg <wl@gnu.org>
1286
1287 * devel/ftoption.h: Synchronize with
1288 include/freetype/config/ftoption.h.
1289
1290 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1291 variable declaration.
1292 (gray_convert_glyph): Fix compiler warnings.
1293
David Turner6d79f212006-09-01 14:09:35 +000012942006-09-01 David Turner <david@freetype.org>
1295
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001296 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1297 to recognize a few fonts that require the automatic unpatented
1298 loader.
David Turnerbd502952006-09-01 19:05:24 +00001299
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001300 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1301 rasterizer. The speed improvement is between 15% and 25%, depending
1302 on the font data.
1303
1304 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1305 (TCell): Redefine.
1306 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1307 (gray_init_cells): Updated.
1308 (gray_find_cell, gray_alloc_cell): New functions.
1309 (gray_record_cell): Rewritten to use `gray_find_cell' and
1310 `gray_alloc_cell'.
1311 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1312 QSORT_THRESHOLD):
1313 Removed.
1314 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1315 gray_dump_cells): Removed.
1316 (gray_sweep): Rewritten.
1317 (gray_convert_glyph): Rewrite code which used one of the sorting
1318 functions.
1319 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001320
Werner Lembergd898aed2006-08-29 09:50:34 +000013212006-08-29 Dr. Werner Fink <werner@suse.de>
1322
1323 * configure: Make it possible to handle configure options which
1324 have strings containing spaces.
1325
13262006-08-27 David Turner <david@freetype.org>
1327
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001328 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1329 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1330 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1331
1332 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1333 src/truetype/truetype.c, src/truetype/ttdriver.c,
1334 src/truetype/ttgload.c, src/truetype/ttgload.h,
1335 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1336 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1337 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1338
1339 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1340 member `force_autohint'.
1341
1342 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1343
1344 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1345 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001346
Jens Claudiusa787f452006-08-27 11:26:18 +000013472006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1348
1349 Fix miscellaneous compiler warnings.
1350
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001351 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1352 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001353
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001354 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1355 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1356 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001357
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001358 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1359 volatileness of argument to ft_longjmp. Spotted by Werner
1360 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001361
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001362 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1363 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001364
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001365 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1366 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001367
Werner Lembergc4c35b72006-08-27 08:03:46 +000013682006-08-27 Werner Lemberg <wl@gnu.org>
1369
1370 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1371 Reported by Jens.
1372
Jens Claudius088e44e2006-08-22 14:24:30 +000013732006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001374
Jens Claudius088e44e2006-08-22 14:24:30 +00001375 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001376 about addresses of volatile objects passed as function arguments as
1377 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001378
Werner Lembergc4c35b72006-08-27 08:03:46 +00001379 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1380 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001381
1382 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1383 argument `table' a pointer to a volatile object.
1384
1385 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1386 argument `table' a pointer to a volatile object.
1387
Jens Claudius2652bd52006-08-18 17:20:37 +000013882006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1389
1390 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1391 variable `_sfnt' as volatile since it must keep its value across
1392 a call to ft_setjmp.
1393 (gxv_validate): Same for local variables `memory' and `valid'.
1394 (classic_kern_validate): Same for local variables `memory',
1395 `ckern', and `valid'.
1396
1397 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1398 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1399 `jstf', and 'valid'.
1400
1401 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1402 local variable `cmap'.
1403
David Turner9fbfc6a2006-08-16 09:11:31 +000014042006-08-16 David Turner <david@freetype.org>
1405
Werner Lemberg12342992006-08-19 11:18:09 +00001406 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1407 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001408
Werner Lemberg12342992006-08-19 11:18:09 +00001409 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1410 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001411
David Turner33f5f242006-08-16 16:50:55 +00001412
Werner Lemberg12342992006-08-19 11:18:09 +00001413 Improvements to native TrueType hinting. This is a first try,
1414 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1415
1416 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1417 `extra_points2'.
1418
1419 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1420 `orus'.
1421
1422 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1423 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1424 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1425 handle `extra_points2'.
1426
1427 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1428 Remove compiler warning.
1429 (cur_to_arg): Remove macro.
1430 (TT_Hint_Glyph): Updated.
1431 (TT_Process_Simple_Glyph): Handle `orus'.
1432
1433 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1434 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1435 (LOC_Ins_IUP): Renamed to...
1436 (IUP_WorkerRec): This.
1437 Add `orus' member.
1438 (Shift): Renamed to...
1439 (_iup_worker_shift): This.
1440 Updated.
1441 (Interp): Renamed to...
1442 (_iup_worker_interpolate): This.
1443 Updated to handle `orus'.
1444 (Ins_IUP): Updated.
1445
1446 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1447 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001448
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014492006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1450
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001451 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001452 build ftvalid in ft2demos. This has been inadvertedly changed
1453 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001454
14552006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1456
Werner Lemberg12342992006-08-19 11:18:09 +00001457 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1458 Jens:
1459 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001460
Werner Lemberg12342992006-08-19 11:18:09 +00001461 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1462 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001463
1464 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1465
Jens Claudius9950adc2006-08-13 12:14:36 +000014662006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1467
Werner Lemberg12342992006-08-19 11:18:09 +00001468 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1469 T1_TOKEN_TYPE_KEY.
1470 (T1_FieldRec): Add `dict'.
1471 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1472 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1473 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001474
Werner Lemberg12342992006-08-19 11:18:09 +00001475 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1476 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001477
1478 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1479
1480 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001481 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1482 not T1_TOKEN_TYPE_ANY.
1483 (ps_parser_load_field): Make sure a token that should be a string or
1484 name is really a string or name.
1485 Avoid memory leak if a keyword has been already encountered and its
1486 value is overwritten.
1487 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1488 T1_FIELD_XXX.
1489 (parse_dict): Ignore keywords that occur in the wrong dictionary
1490 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001491
Werner Lemberg12342992006-08-19 11:18:09 +00001492 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1493 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001494
Werner Lemberg12342992006-08-19 11:18:09 +00001495 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1496 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001497
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014982006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1499
1500 Move creation of field `buildchar' of T1_DecoderRec out of
1501 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1502 of it.
1503
1504 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1505 and `T1_Compute_Max_Advance'.
1506
1507 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1508 Remove field `face', add `len_buildchar'.
1509
1510 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1511 field `buildchar'.
1512
1513 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1514 finisher for T1_Decoder.
1515 (cid_slot_load_glyph): Do not ignore failure when initializing the
1516 T1_Decoder.
1517
1518 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1519 Updated.
1520 (t1_decoder_init): Remove initialization of fields `buildchar' and
1521 `len_buildchar'.
1522 (t1_decoder_done): Remove deallocation of field `buildchar'.
1523
1524 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1525 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1526 T1_Decoder.
1527 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1528 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1529 case of error.
1530
1531 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1532 `buildchar' of T1_FaceRec.
1533
1534 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1535 `buildchar' of T1_FaceRec.
1536
Werner Lemberg1a380e02006-07-14 18:28:08 +000015372006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1538
1539 * freetype2/include/freetype/internal/psaux.h: New macros
1540 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1541 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1542 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1543 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1544 (T1_DecoderRec): New fields `buildchar' and `face'.
1545 (IS_PS_TOKEN): New macro.
1546
1547 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1548 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1549
1550 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1551 `default_design_vector' and `num_default_design_vector'.
1552
1553 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1554 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1555 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1556
1557 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1558 `token' argument to be NULL if we want only to count the number of
1559 tokens.
1560 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1561 want to skip the array.
1562 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1563 want to skip the array.
1564
1565 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1566 support for (partially commented out) othersubrs 19-25, 27, and 28.
1567 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1568 (t1_decoder_done): Release new field `buildchar'.
1569
1570 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1571 functions.
1572 (t1_keywords): Register them.
1573 (t1_allocate_blend): Updated.
1574 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1575 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1576 (parse_dict): Remove `keyword_flags' argument.
1577 Use new macro IS_PS_TOKEN.
1578 Changed function so that later PostScript definitions override
1579 earlier ones.
1580 (t1_init_loader): Initialize new field `keywords_encountered'.
1581 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1582 `len_buildchar'.
1583 Remove `keywords_flags'.
1584
1585 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1586 `keywords_encountered'.
1587 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1588
1589 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1590 New entries for parsing /NDV, /CDV, and /DesignVector.
1591
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015922006-07-07 Werner Lemberg <wl@gnu.org>
1593
1594 Add many checks to protect against malformed PCF files.
1595
1596 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1597 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1598
1599 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1600 data and check that tables don't overlap (using a simple
1601 bubblesort).
1602 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1603 New macros which give the size of data structures in the data
1604 stream.
1605 (pcf_get_properties): Use rough estimates to get array size limits.
1606 Assign `face->nprops' and `face->properties' earlier so that a call
1607 to PCF_Face_Done can do the clean-up in case of error.
1608 Protect against invalid string offsets.
1609 (pcf_get_metrics): Clean up code.
1610 Adjust tracing message levels.
1611 Use rough estimate to get array size limit.
1612 (pcf_get_bitmaps): Clean up code.
1613 Adjust tracing message levels.
1614 Use rough estimates to get offset limits.
1615 (pcf_get_encodings): Adjust tracing message level.
1616 (pcf_get_accel): Clean up code.
1617
Werner Lemberg8eb05252006-06-27 06:20:01 +000016182006-06-26 Werner Lemberg <wl@gnu.org>
1619
1620 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1621 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1622
Werner Lemberg24703f82006-06-26 19:12:51 +000016232006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1624
1625 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1626 (t1_decoder_parse_charstrings): Operator with
1627 opcode 15 pops its two arguments.
1628 Handle the case where the pops of an othersubr may be part of a
1629 subroutine.
1630 Handle unknown othersubrs gracefully: count their operands and let
1631 the following pop operators push the operands as the results onto
1632 the Type1 stack.
1633 Improve handling of setcurrentpoint opcode.
1634
Werner Lembergc011f4c2006-06-26 09:40:00 +000016352006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1636
1637 The Type 1 parser now skips over top-level procedures as required
1638 for a `Simplified Parser'. This makes the parser more robust as it
1639 doesn't poke around in PostScript code. Additionally, it makes the
1640 FontDirectory hackery in src/type1/t1load.c unnecessary.
1641
1642 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1643 (skip_literal_string): Add FT_Error as return value.
1644 Handle escapes better.
1645 (skip_string): Add FT_Error as return value.
1646 Don't set `parser->error' but return error code directly.
1647 (skip_procedure): New function.
1648 (ps_parser_skip_PS_token): Handle procedures.
1649 Update code.
1650 (ps_parser_to_token): Update code.
1651 (ps_parser_load_field_table): Handle bbox entries also.
1652
1653 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1654 Add commented-out code for synthetic fonts.
1655
Werner Lemberga2da05c2006-06-25 06:27:27 +000016562006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1657
1658 Fix two hinting bugs as reported in
1659 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1660
1661 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1662 `first_point' member.
1663
1664 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1665 `first_point'.
1666 (TT_Process_Composite_Glyph): Always untouch points.
1667
1668 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1669 `first_point' and `last_point' in case of composite glyphs.
1670 (Ins_IUP): Fix computation of `end_point'.
1671
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016722006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1673
Werner Lembergef3d2c22006-06-25 06:07:14 +00001674 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1675 Mac. The original patch was written by David Sachitano and Lawrence
1676 Coopet, and modified by Sean McBride for MPW compatibility. Only
1677 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001678
Werner Lembergef3d2c22006-06-25 06:07:14 +00001679 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1680 Mac OS X platforms.
1681 (OS_INLINE): Undefine before definition.
1682 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1683 FontAssociation table in FOND resource.
1684 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1685 and fontSize at each entry of FontAssociation table in FOND
1686 resource.
1687 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1688 ffStylOff of FamilyRecord header of FOND resource, the header,
1689 fontSize, fontID at each entry of FontAssociation table, and
1690 StyleMapping table.
1691 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001692
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016932006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1694
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001695 Public API of TrueTypeGX, OpenType, and classic kern table validator
1696 should return `FT_Err_Unimplemented_Feature' if validation service
1697 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001698 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001699 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1700
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001701 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1702 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1703 unavailable.
1704 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1705 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001706
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001707 * src/base/ftotval.c (FT_OpenType_Validate): Return
1708 FT_Err_Unimplemented_Feature if OpenType validation service is
1709 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001710
Werner Lembergb10e45a2006-06-08 07:32:56 +000017112006-06-08 Werner Lemberg <wl@gnu.org>
1712
1713 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1714 errors.
1715
David Turner5f1f7502006-06-07 05:11:50 +000017162006-06-07 David Turner <david@freetype.org>
1717
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001718 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1719 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1720 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001721
David Turner457b4a82006-06-06 08:14:14 +000017222006-06-06 David Turner <david@freetype.org>
1723
Werner Lemberg4836f952006-06-06 12:54:08 +00001724 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001725
Werner Lemberg4836f952006-06-06 12:54:08 +00001726 We change `ps_unicodes_init' so that it also takes a
1727 `free_glyph_name' callback to release the glyph names returned by
1728 `get_glyph_name'
1729
1730 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1731 Renamed to ...
1732 (PS_GetGlyphNameFunc): This.
1733 (PS_FreeGlyphNameFunc): New typedef.
1734 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1735
1736 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1737 argument.
1738 (cff_sid_free_glyph_name): New function.
1739 (cff_cmap_unicode_init): Updated.
1740
1741 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1742
1743 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1744 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001745
1746
David Turner09717352006-06-04 14:33:08 +000017472006-06-04 David Turner <david@freetype.org>
1748
Werner Lembergd724f202006-06-04 15:17:41 +00001749 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1750 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001751 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001752
Werner Lembergd724f202006-06-04 15:17:41 +00001753 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1754 of `face->num_glyphs' which missed the last glyph, due to
1755 the offset-by-1 computation, since the PFR format doesn't
1756 guarantee that glyph index 0 corresponds to the `missing
1757 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001758
Werner Lemberg33779662006-05-26 06:30:05 +000017592006-05-25 Werner Lemberg <wl@gnu.org>
1760
1761 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1762 `-no-undefined'. Reported by Christian Biesinger.
1763
Werner Lemberg24773d62006-05-20 08:53:13 +000017642006-05-19 Brian Weed <bw@imaginengine.com>
1765
1766 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1767 have debug information, and debug libraries use `C7 compatible'
1768 debug info.
1769
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017702006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1771
Werner Lemberga6523a62006-05-20 08:47:01 +00001772 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001773 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001774
Werner Lemberga6523a62006-05-20 08:47:01 +00001775 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1776 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001777
1778 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001779 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001780
17812006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1782
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001783 * build/unix/configure.raw: Add a fallback to disable Carbon
1784 dependency, if configured with no options on Mac OS X.
1785
17862006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1787
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001788 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001789 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001790 the second part of Savannah bug #16590.
1791
Werner Lemberg545c4e52006-05-17 22:55:04 +000017922006-05-18 Werner Lemberg <wl@gnu.org>
1793
1794 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1795 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1796
David Turnerdc3ff312006-05-17 12:59:35 +000017972006-05-17 David Turner <david@freetype.org>
1798
Werner Lemberg545c4e52006-05-17 22:55:04 +00001799 This is a major patch used to drastically improve the performance of
1800 loading glyphs. This both speeds up loading the glyph vectors
1801 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001802
Werner Lemberg545c4e52006-05-17 22:55:04 +00001803 We now use inline assembler code with GCC to implement `FT_MulFix',
1804 which is probably the most important function related to the
1805 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001806
Werner Lemberg545c4e52006-05-17 22:55:04 +00001807 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001808
1809
Werner Lemberg545c4e52006-05-17 22:55:04 +00001810 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1811 `cursor' and `limit'.
1812
1813 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1814 New functions.
1815 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1816 [TEST]: Remove.
1817
1818 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1819 code.
1820
1821 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1822 `FT_ZERO'
1823 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1824 (af_glyph_hints_reload: Rewrite recognition of weak points.
1825
1826 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1827 constant values out of the loops.
1828
1829 * src/autofit/aftypes.h: Updated.
1830
1831 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1832
1833 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1834 product to get orientation.
1835
1836 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1837 (FT_Stream_OpenGzip): Use it to handle small files directly in
1838 memory.
1839
1840 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1841 Improve performance.
1842
1843 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1844 `limit'.
1845
1846 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1847 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1848 exceedingly large values of number of contours. Speed up by
1849 reducing the number of loops.
1850
1851 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1852
1853
1854 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1855 used to detect rogue clients from 4 to 16. This is to prevent some
1856 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1857 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001858
Werner Lembergde2d90a2006-05-17 08:54:30 +000018592007-05-17 Werner Lemberg <wl@gnu.org>
1860
1861 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001862 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001863
18642006-05-16 Werner Lemberg <wl@gnu.org>
1865
1866 * docs/PROBLEMS: Updated icl issues.
1867
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001868----------------------------------------------------------------------------
1869
Werner Lemberg42b63b22007-01-21 21:01:33 +00001870Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001871David Turner, Robert Wilhelm, and Werner Lemberg.
1872
1873This file is part of the FreeType project, and may only be used, modified,
1874and distributed under the terms of the FreeType project license,
1875LICENSE.TXT. By continuing to use, modify, or distribute this file you
1876indicate that you have read the license and understand and accept it
1877fully.
1878
1879
1880Local Variables:
1881version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001882coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001883End: