blob: 77696326ae8cde22c39bb7a719015b880a74e2ba [file] [log] [blame]
Werner Lemberg45bb18f2007-04-26 06:26:35 +000012007-04-26 Werner Lemberg <wl@gnu.org>
2
3 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
4 zero in case of error. This fixes Savannah bug #19689.
5
Werner Lembergfcc1f472007-04-10 11:51:50 +000062007-04-10 Martin Horak <horakm@centrum.cz>
7
8 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
9 Ignore `hhea' table. This fixes Savannah bug #19261.
10
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000112007-04-09 Werner Lemberg <wl@gnu.org>
12
13 * Version 2.3.4 released.
14 =========================
15
16
17 Tag sources with `VER-2-3-4'.
18
19 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
20 version number to 2.3.4.
21
22 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
23 builds/win32/visualc/freetype.dsp,
24 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
25
26 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
27
28 * builds/unix/configure.raw (version_info): Set to 9:15:3.
29
Werner Lembergf4a52a62007-04-09 08:40:11 +0000302007-04-09 Martin Horak <horakm@centrum.cz>
31
32 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
33 memory stream to avoid a crash with the incremental memory
34 interface (Savannah bug #19260).
35
David Turner1dcb4442007-04-06 08:19:04 +0000362007-04-06 David Turner <david@freetype.org>
37
Werner Lembergc81cf612007-04-06 09:28:23 +000038 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
39 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000040
Werner Lemberg9f83e052007-04-05 02:28:23 +0000412007-04-04 Werner Lemberg <wl@gnu.org>
42
43 * Version 2.3.3 released.
44 =========================
45
46
47 Tag sources with `VER-2-3-3'.
48
49 * docs/CHANGES: Mention CVE-2007-1351.
50
David Turner7338ec22007-04-03 14:30:34 +0000512007-04-03 David Turner <david@freetype.org>
52
53 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000054 if one of the resolution values is 0, treat it as if it were the
55 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000056
David Turnere6472c12007-04-02 13:13:54 +0000572007-04-02 David Turner <david@freetype.org>
58
Werner Lemberg94f12272007-04-03 07:19:53 +000059 Add special code to detect `extra-light' fonts and do not snap their
60 stem widths too much to avoid bizarre hinting effects.
61
62 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
63 `extra_light' members.
64
65 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
66 them.
67 (af_latin_metrics_scale_dim): Set `extra_light'.
68 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000069
David Turner3f539692007-03-28 14:53:40 +0000702007-03-28 David Turner <david@freetype.org>
71
Werner Lemberg644b1ad2007-03-28 21:17:11 +000072 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000073 padding.
74
Werner Lemberga08b2172007-03-28 07:17:17 +0000752007-03-28 Werner Lemberg <wl@gnu.org>
76
77 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
78 gracefully.
79 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000080 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000081 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
82 number of code points in Unicode.
83
Werner Lemberg644b1ad2007-03-28 21:17:11 +000084 * builds/win32/visualc/index.html,
85 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +000086 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +000087 s/232/233/.
88
89 * docs/CHANGES: Mention ftdiff.
90
David Turner3b242d32007-03-26 12:03:04 +0000912007-03-26 David Turner <david@freetype.org>
92
Werner Lemberg644b1ad2007-03-28 21:17:11 +000093 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
94 corresponding code.
95 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000096
Werner Lemberga08b2172007-03-28 07:17:17 +000097 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000098 computations in order to ignore single-point contours. These are
99 never rasterized and correspond in certain fonts to mark-attach
100 points that are very far from the glyph's real outline, ruining the
101 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000102
Werner Lemberga08b2172007-03-28 07:17:17 +0000103 * src/autofit/afloader.c (af_loader_load_g): In the case of
104 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
105 Otherwise code that uses them will most certainly ruin the fixed
106 advance property.
David Turner23553d62007-03-26 13:37:17 +0000107
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000108 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
109 documentation and bump version number to 2.3.3.
110
111 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
112
113 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000114
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001152007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
116
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000117 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
118 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000119 * builds/vms/ftconfig.h: Ditto.
120 * include/freetype/config/ftconfig.h: Ditto.
121
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001222007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
123
Werner Lemberg14ffe092007-03-22 06:12:43 +0000124 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
125 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000126 proposed by Sean McBride:
127 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
128
1292007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
130
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000131 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
132 setjmp, proposed by Sean McBride:
133 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
134
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001352007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
136
Werner Lembergc9f6c662007-03-21 13:30:14 +0000137 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
138 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
139 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000140
David Turner74c34eb2007-03-18 07:19:31 +00001412007-03-18 David Turner <david@freetype.org>
142
Werner Lembergc9f6c662007-03-21 13:30:14 +0000143 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
144 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000145
Werner Lembergc9f6c662007-03-21 13:30:14 +0000146 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000147
David Turner89020d92007-03-17 17:48:57 +00001482007-03-17 David Turner <david@freetype.org>
149
Werner Lembergc9f6c662007-03-21 13:30:14 +0000150 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
151 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000152
Werner Lemberg25d592a2007-03-09 07:59:35 +00001532007-03-09 Werner Lemberg <wl@gnu.org>
154
155 * Version 2.3.2 released.
156 =========================
157
158
159 Tag sources with `VER-2-3-2'.
160
161 * builds/win32/visualc/index.html,
162 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000163 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000164 s/231/232/.
165
David Turner3a51afa2007-03-08 10:50:38 +00001662007-03-08 David Turner <david@freetype.org>
167
Werner Lemberg25d592a2007-03-09 07:59:35 +0000168 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000169
Werner Lemberg25d592a2007-03-09 07:59:35 +0000170 * builds/unix/configure.raw (version_info): Set to 9:13:3.
171
172 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
173
174 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000175
Werner Lemberg1e259de2007-03-08 15:39:21 +0000176 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
177 function to work properly, over-writing user-provided buffers in
178 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000179
David Turner121cad52007-03-08 16:43:50 +0000180
Werner Lemberg3d92f082007-03-06 11:59:24 +00001812007-03-05 Werner Lemberg <wl@gnu.org>
182
183 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
184 macro for `strstr'.
185
186 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
187 `trick_names', as suggested by Ivan Nincic.
188
David Turner085bc6e2007-03-05 17:40:03 +00001892007-03-05 David Turner <david@freetype.org>
190
Werner Lembergd112cf02007-03-06 12:06:56 +0000191 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
192 case FT_Init_FreeType fails for some reason. Problem reported by
193 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000194
Werner Lembergd112cf02007-03-06 12:06:56 +0000195 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
196 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
197 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
198 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000199
Werner Lembergd112cf02007-03-06 12:06:56 +0000200 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
201 signed values, not unsigned ones. Problem reported by Johannes
202 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000203
David Turner601aefe2007-02-21 16:47:49 +00002042007-02-21 David Turner <david@freetype.org>
205
Werner Lembergde5e6862007-02-25 21:06:43 +0000206 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
207 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000208
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002092007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
210
211 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
212 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
213 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
214
Werner Lemberga0915172007-02-16 08:12:50 +00002152007-02-16 Werner Lemberg <wl@gnu.org>
216
217 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
218 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
219
David Turner2c4500e2007-02-14 15:08:47 +00002202007-02-14 David Turner <david@freetype.org>
221
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000222 It seems that the following changes fix most of the known
223 interpreter problems with my fonts, but more testing is needed,
224 though.
225
226 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
227 (TT_MulFix14): Rewrite.
228 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
229 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000230
Werner Lembergc6a14082007-02-12 22:08:15 +00002312007-02-12 Werner Lemberg <wl@gnu.org>
232
233 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
234 warnings.
235
236 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
237 (bdf_interpret_style): Ditto.
238
David Turnerc0f9c4a2007-02-12 14:55:03 +00002392007-02-12 David Turner <david@freetype.org>
240
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000241 Simplify projection and dual-projection code interface.
242
Werner Lemberg406d25f2007-02-12 22:01:18 +0000243 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
244 FT_Vector' as argument type.
245 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
246 Updated.
247 (CUR_fast_project, CUR_fast_dualproj): New macros.
248 (Project, Dual_Project, Project_x, Project_y): Updated.
249 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
250 macros.
251
252
253 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
254 adjustments for the non-light auto-hinted modes. Gets rid of
255 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000256
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000257 * src/autofit/aflatin.c (af_latin_hints_link_segments,
258 af_latin_hints_compute_edges): Slight optimization of the segment
259 linker and better handling of serif segments to get rid of broken
260 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000261
David Turnerc0f9c4a2007-02-12 14:55:03 +0000262
Werner Lemberg442bfb82007-02-12 21:44:10 +0000263 Introduce new string functions and the corresponding macros to get
264 rid of various uses of strcpy and other `evil' functions, as well as
265 to simplify a few things.
266
267 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
268 ft_mem_strcpyn): New declarations.
269 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
270 macros.
271 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
272 functions.
273
274 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
275 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
276 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
277 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
278 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
279 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
280 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
281 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000282
Werner Lemberg406d25f2007-02-12 22:01:18 +0000283 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
284
Werner Lemberg582067d2007-02-11 15:03:05 +00002852007-02-11 Werner Lemberg <wl@gnu.org>
286
287 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
288 non-spacing glyphs.
289
Werner Lemberg8f474532007-02-07 08:31:01 +00002902007-02-07 Tom Parker <palfrey@tevp.net>
291
292 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
293 pointer.
294
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002952007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
296
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000297 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
298 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000299 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000300 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
301 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
302 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
303 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000304
305 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
306 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000307 * builds/mac/ftmac.c: Ditto.
308
3092007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
310
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000311 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000312 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000313 #include <ftmac.c>.
314
3152007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
316
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000317 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
318 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
319 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
320 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
321 FT_GetFilePath_From_Mac_ATS_Name.
322 * builds/mac/ftmac.c: Ditto.
323
3242007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
325
Werner Lembergdcbb7082007-02-08 08:54:09 +0000326 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000327 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
328 for passing to FT_New_Face_From_FSSpec.
329
3302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
331
Werner Lembergdcbb7082007-02-08 08:54:09 +0000332 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000333 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000334
335 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
336 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000337 * builds/mac/ftmac.c (OS_INLINE): Ditto.
338
Werner Lemberg313d7772007-02-01 08:10:45 +00003392007-02-01 Werner Lemberg <wl@gnu.org>
340
341 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
342 Explain why applications shouldn't use it. Found by Alexei.
343
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003442007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000345
346 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
347 message.
348
349 * src/gxvalid/gxvmort1.c
350 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
351 message.
352
Werner Lemberg53935932007-01-31 08:53:02 +00003532007-01-31 Werner Lemberg <wl@gnu.org>
354
355
356 * Version 2.3.1 released.
357 =========================
358
359
360 Tag sources with `VER-2-3-1-FINAL'.
361
362 * builds/win32/visualc/freetype.dsp,
363 builds/win32/visualc/freetype.vcproj: s/230/231/.
364 * builds/win32/visualc/index.html: s/221/231/.
365
366 * vms_make.com: Add `ftgasp'.
367
David Turnera7ee6082007-01-30 10:33:53 +00003682007-01-30 David Turner <david@freetype.org>
369
Werner Lemberg53935932007-01-31 08:53:02 +0000370 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000371
Werner Lemberg53935932007-01-31 08:53:02 +0000372 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000373
Werner Lemberg25d592a2007-03-09 07:59:35 +0000374 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000375 s/2.3.0/2.3.1/.
376
377 * builds/unix/configure.raw (version_info): Set to 9:12:3.
378
379
380 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
381 (af_loader_load_g): Disable the warper (i.e., the light hinting
382 improvements) to make a 2.3.1 bugfix release before introducing a
383 new feature. This should give us more time to tune and improve the
384 warper for the next release.
385
386 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000387
David Turnerd91eebd2007-01-26 15:05:41 +00003882007-01-25 David Turner <david@freetype.org>
389
Werner Lembergbf241762007-01-26 16:08:49 +0000390 For light auto-hinting, improve glyph advance widths and resurrect
391 normal/full hinting to its normal quality.
392
393 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
394 and `xmax_delta'.
395 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
396 and `xmax_delta'.
397
398 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
399 preprocessor conditional with if-clause, handling both light and
400 normal mode.
401
402 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
403 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000404
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004052007-01-25 Werner Lemberg <wl@gnu.org>
406
407 * docs/release: Updated -- Savannah uses a new uploading scheme.
408
David Turnera42567b2007-01-25 12:23:37 +00004092007-01-25 David Turner <david@freetype.org>
410
Werner Lembergd7855662007-01-25 13:53:56 +0000411 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000412
Werner Lembergd7855662007-01-25 13:53:56 +0000413 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
414 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
415 functions.
David Turnera42567b2007-01-25 12:23:37 +0000416
Werner Lembergd7855662007-01-25 13:53:56 +0000417 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000418
Werner Lembergb1be9e82007-01-25 11:50:00 +00004192007-01-25 Werner Lemberg <wl@gnu.org>
420
421 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000422 correctly in a sanity check. Since this function is only used to
423 load local and global functions, any charstring that called the last
424 local/global function would fail otherwise. This fixes Savannah bug
425 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000426
427 * docs/CHANGES: Document it.
428
David Turnerb6de8d12007-01-23 15:51:50 +00004292007-01-23 David Turner <david@freetype.org>
430
Werner Lembergb1be9e82007-01-25 11:50:00 +0000431 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
432 prevented compilation when disabling both the unpatented and the
433 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000434
Werner Lembergb1be9e82007-01-25 11:50:00 +0000435
436 Fix and enable the warper to improve `light' hinting mode. This is
437 not necessarily a final version, but it seems to work well.
438
439 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
440 Disable code.
441 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
442 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
443
444 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
445 (af_warper_compute_line_best): Fix array size of `scores'.
446 (af_warper_compute): Better handling of border cases.
447 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
448 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000449
Werner Lemberg011d1112007-01-21 09:36:00 +00004502007-01-21 Werner Lemberg <wl@gnu.org>
451
Werner Lemberg42b63b22007-01-21 21:01:33 +0000452 * ChangeLog: Split off older entries into...
453 * ChangeLog.22: This new file.
454
4552007-01-21 Werner Lemberg <wl@gnu.org>
456
Werner Lemberg555258f2007-01-21 09:46:37 +0000457 * docs/CHANGES: Document SHZ fix.
458
4592007-01-21 George Williams <gww@silcom.com>
460
461 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
462 points.
463
4642007-01-21 Werner Lemberg <wl@gnu.org>
465
Werner Lemberg011d1112007-01-21 09:36:00 +0000466 * src/sfnt/ttmtx.c (tt_face_get_metrics)
467 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
468
Werner Lemberg87a5a432007-01-17 12:44:39 +00004692007-01-17 Werner Lemberg <wl@gnu.org>
470
Werner Lembergb8003292007-01-17 12:56:25 +0000471
472 * Version 2.3.0 released.
473 =========================
474
475
476 Tag sources with `VER-2-3-0-FINAL'.
477
4782007-01-17 Werner Lemberg <wl@gnu.org>
479
Werner Lemberg87a5a432007-01-17 12:44:39 +0000480 * docs/release: Updated.
481
David Turner22122722007-01-16 20:06:44 +00004822007-01-16 David Turner <david@freetype.org>
483
Werner Lemberg87a5a432007-01-17 12:44:39 +0000484 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
485 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
486 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
487 warnings.
David Turner22122722007-01-16 20:06:44 +0000488
Werner Lemberg267e1d72007-01-15 07:48:09 +00004892007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
490
491 * builds/amiga/makefile, builds/amiga/makefile.os4,
492 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
493
494 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
495
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004962007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
497
498 Fix various compiler warnings.
499
500 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
501 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
502 s/index/strike_index/.
503 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
504
505 * src/gxvalid/gxvmorx5.c
506 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
507
508 * src/truetype/ttinterp.c (Compute_Point_Displacement),
509 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
510 uninitialized variables.
511
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005122007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
513
514 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
515
Werner Lemberg281c1482007-01-13 22:50:51 +00005162007-01-13 Werner Lemberg <wl@gnu.org>
517
518 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
519 versions up to 0x3FF without complaining.
520
Werner Lembergac250b22007-01-13 14:01:36 +00005212007-01-13 Derek Clegg <dclegg@apple.com>
522
523 Add FT_Get_PS_Font_Info interface to CFF driver.
524
525 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
526 (CFF_FontRec): Add `font_info' field.
527
528 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
529 (cff_font_done): Free font->font_info if necessary.
530
531 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
532 (cff_service_ps_info): Register cff_ps_get_font_info.
533
Werner Lemberg23df31a2007-01-13 08:45:00 +00005342007-01-13 Werner Lemberg <wl@gnu.org>
535
536 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
537 with C++ compiler.
538
539 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
540 af_glyph_hints_dump_edges): Ditto.
541
542 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
543 `modules.cfg').
544
545 * src/sfnt/ttsbit0.h: Remove.
546
547 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
548
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005492007-01-12 David Turner <david@freetype.org>
550
551 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
552 bug in the bitmap emboldener if the pitch of the source bitmap is
553 much larger than its width.
554
555 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
556 compilation warning.
557
Werner Lemberg6d96d312007-01-12 10:30:19 +00005582007-01-12 Werner Lemberg <wl@gnu.org>
559
560 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
561 `automake' CVS module from sources.redhat.com.
562
Werner Lemberg17432b52007-01-12 09:28:44 +00005632007-01-11 Werner Lemberg <wl@gnu.org>
564
565 * src/type1/t1load.c (is_space): Removed.
566 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
567 (parse_charstrings): Use IS_PS_TOKEN.
568
569
570 * autogen.sh: Avoid bash specific syntax.
571
David Turner038ace22007-01-11 15:00:59 +00005722007-01-11 David Turner <david@freetype.org>
573
Werner Lemberg17432b52007-01-12 09:28:44 +0000574 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000575
Werner Lemberg17432b52007-01-12 09:28:44 +0000576 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000577
Werner Lemberg17432b52007-01-12 09:28:44 +0000578 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
579 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000580 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000581
Werner Lemberg17432b52007-01-12 09:28:44 +0000582 * autogen.sh: Small fix to get it working on Mac OS X properly:
583 The issue is that GNU libtool is called `glibtool' on this platform,
584 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000585
David Turner2628ea92007-01-10 13:15:56 +00005862007-01-10 David Turner <david@freetype.org>
587
Werner Lemberg17432b52007-01-12 09:28:44 +0000588 * all-sources: Tag all sources with VER-2-3-0-RC1 and
589 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000590
Werner Lemberg17432b52007-01-12 09:28:44 +0000591 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
592 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
593 version number to 2.3.0.
594
595 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
596 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000597
598 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000599 include/freetype/ftlcdfil.h: Update reference documentation with
600 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000601
Werner Lemberg17432b52007-01-12 09:28:44 +0000602 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
603 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000604
Werner Lembergbf02d392007-01-10 07:07:37 +00006052007-01-10 Derek Clegg <dclegg@apple.com>
606
607 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
608 values.
609
David Turnerf48b60e2007-01-08 15:15:32 +00006102007-01-08 David Turner <david@freetype.org>
611
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000612 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000613
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000614 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
615 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000616 corresponding to a given character pixel size.
617
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000618 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
619 `gasp' table, in order to avoid potential problems with later
620 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000621
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000622 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
623 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000624
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000625 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
626 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
627 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
628 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000629
Werner Lemberge6b6f372007-01-07 00:06:47 +00006302007-01-07 Werner Lemberg <wl@gnu.org>
631
Werner Lembergb8004d22007-01-07 09:13:38 +0000632 * src/cid/cidparse.c (cid_parser_new): Improve error message for
633 Type 11 fonts.
634 Scan for `/sfnts' token.
635
6362007-01-07 Werner Lemberg <wl@gnu.org>
637
638 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000639
Werner Lembergbe5f7972007-01-06 07:51:48 +00006402007-01-06 Werner Lemberg <wl@gnu.org>
641
642 * src/cff/cffload.c (cff_index_init): Remove unused variable.
643 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
644
David Turnera8cf42b2007-01-04 16:46:46 +00006452007-01-04 David Turner <david@freetype.org>
646
Werner Lembergf6294392007-01-06 07:47:45 +0000647 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
648 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000649
Werner Lembergf6294392007-01-06 07:47:45 +0000650
651 Do not allocate interpreter-specific tables in memory if we are not
652 going to load glyphs with the bytecode interpreter anyway.
653
654 * src/truetype/ttgload.c (tt_loader_init): Load execution context
655 only if glyph is hinted.
656 Updated.
657 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
658 and `cvs_ready'.
659 Add `tt_size_ready_bytecode' declaration.
660 * src/truetype/ttobjs.c (tt_size_done_bytecode,
661 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
662 (tt_size_init): Move most code into `tt_size_init_bytecode'.
663 (tt_size_done): Move most code into `tt_size_done_bytecode'.
664 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000665
David Turner91a34022007-01-05 14:47:08 +0000666
Werner Lembergf6294392007-01-06 07:47:45 +0000667 Don't extract the metrics table from the SFNT font file. Instead,
668 reparse it on each glyph load. The runtime difference is not
669 noticeable, and it can save a lot of heap memory when memory-mapped
670 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000671
Werner Lembergf6294392007-01-06 07:47:45 +0000672 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
673 `horz_metrics_offset' and `vert_metrics_ofset'.
674 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
675 Updated.
676
677
678 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
679
680
681 Do not load the CFF index offsets into memory, since this wastes a
682 *lot* of heap memory with large Asian CFF fonts. There is no
683 significant performance loss.
684
685 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
686 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
687 `data_size'.
688 (CFF_CharsetRec): Add field `num_glyphs'.
689
690 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
691 cff_charset_cid_to_gindex): New functions.
692 (cff_new_index): Renamed to...
693 (cff_index_init): This. Update all callers.
694 Updated -- some code has been moved to `cff_index_load_offsets'.
695 (cff_done_index): Renamed to...
696 (cff_index_done): This. Update all callers.
697 (cff_index_get_pointers, cff_index_access_element): Updated to use
698 stream offsets.
699 (cff_charset_compute_cids): Set `num_glyphs' field.
700 (cff_encoding_load): Updated.
701
702 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000703
7042007-01-04 David Turner <david@freetype.org>
705
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000706 * docs/INSTALL.UNIX: Simplify some parts, add reference to
707 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000708
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000709 * README.CVS: Add common problem description and solution
710 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000711
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000712 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000713
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000714 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000715
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000716 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000717
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000718 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
719 (TWorker): This.
720 Remove `count_table' and `memory'.
721 Make `grays' a pointer.
722 (TRaster): New structure.
723 (count_table): New static array.
724 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
725 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
726 ft_black_set_mode, ft_black_render): Updated.
727 (ft_black_init): Don't initialize `count_table'.
728 (ft_black_reset): Use the render pool. This saves about 6KB of
729 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000730
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000731 * src/smooth/ftgrays.c (TRaster): Replaced with...
732 (TWorker): This.
733 Remove `memory'.
734 (TRaster): New structure.
735
736 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
737 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
738 gray_render_span, gray_raster_render): Updated.
739 (gray_raster_reset): Use the render pool. This saves about 6KB of
740 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000741
David Turner8a6c44e2007-01-04 17:03:11 +0000742 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
743 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000744 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
745 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
746 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000747
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000748 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
749 Remove a typo that results in no hinting and a memory leak with some
750 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000751
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000752 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000753 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000754 CFF_Faces in it. We need to close all faces before destroying the
755 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000756
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007572007-01-02 Werner Lemberg <wl@gnu.org>
758
759 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
760 Remove compiler warning.
761
David Turner9207e002007-01-02 16:58:13 +00007622007-01-02 David Turner <david@freetype.org>
763
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000764 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000765
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007662006-12-31 Masatake YAMATO <jet@gyve.org>
767
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000768 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
769 function.
770 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000771 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000772 `gxv_kern_subtable_fmt0_pairs_validate'.
773
David Turner115b4422006-12-22 11:37:05 +00007742006-12-22 David Turner <david@freetype.org>
775
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000776 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
777 warnings.
David Turner115b4422006-12-22 11:37:05 +0000778
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000779 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
780 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000781
Werner Lemberg4755bf72006-12-16 08:58:44 +00007822006-12-16 Anders Kaseorg <anders@kaseorg.com>
783
784 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
785 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
786
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007872006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
788
Werner Lemberg9b774e22007-01-16 06:11:27 +0000789 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000790 sync with the modification by Jens Claudius on 2006-08-22; cf.
791 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 +0000792
7932006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
794
795 * src/base/ftmac.c: Specialized for Mac OS X only.
796 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
797 * builds/unix/configure.raw: Ditto. When explicit switches for
798 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
799 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
800
8012006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
802
803 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
804 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
805 instead of src/base/ftmac.c
806 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
807 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
808 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
809 that cannot be built at present.
810
8112006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
812
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000813 * src/base/ftobjs.c: Improvement of resource fork handler for
814 POSIX, cf.
815 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000816 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
817 format or .dfont, to simulate the face index number counted by ftmac.c.
818 (IsMacResource): Return the number of scalable faces correctly.
819
Werner Lembergec5b4502006-12-10 07:51:38 +00008202006-12-10 Werner Lemberg <wl@gnu.org>
821
822 * builds/toplevel.mk (version): Protect against `distclean' target.
823
Werner Lembergb26b3142006-12-09 20:01:43 +00008242006-12-09 Werner Lemberg <wl@gnu.org>
825
826 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
827 or `type'.
828
829 * builds/freetype.mk (version): Extracted from freetype.h, using
830 GNU make's built-in string functions.
831 (refdoc): Use $(version) instead of static version number.
832
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008332006-12-08 Werner Lemberg <wl@gnu.org>
834
835 * builds/toplevel.mk (dist): Extract version number from freetype.h.
836
Werner Lemberg15c29502006-12-09 07:29:54 +00008372006-12-08 Vladimir Volovich <vvv@vsu.ru>
838
839 * src/tools/apinames (State): Remove final comma in structure -- xlc
840 v5 under AIX 4.3 doesn't like this.
841
David Turnerdbf3b432006-12-07 21:18:09 +00008422006-12-07 David Turner <david@freetype.org>
843
Werner Lemberg256a3512006-12-08 06:49:33 +0000844 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
845 to the spacing of auto-fitted glyphs. This only impacts rare
846 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000847
Werner Lemberg11171312006-12-03 09:43:40 +00008482006-12-03 Werner Lemberg <wl@gnu.org>
849
850 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
851
Werner Lemberg960ba592006-12-01 08:20:47 +00008522006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000853
Werner Lemberg960ba592006-12-01 08:20:47 +0000854 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
855 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
856 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000857
David Turner80658e52006-11-28 08:09:20 +0000858
Werner Lemberg960ba592006-12-01 08:20:47 +0000859 * include/freetype/ftxf86.h: Fix and extend comment so that it
860 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000861
Werner Lemberg960ba592006-12-01 08:20:47 +0000862 * include/freetype/ftchapters.h: Add `font_format' section.
863
864
865 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
866 to TOC in index page.
867
8682006-11-28 David Turner <david@freetype.org>
869
870 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
871 trying to render into a zero-width/height bitmap, not an error code.
872
873 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
874
875 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
876 ones instead.
877
878 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
879 variable.
David Turner80658e52006-11-28 08:09:20 +0000880
Werner Lemberg8636c292006-11-26 22:28:13 +00008812006-11-26 Pierre Hanser <hanser@club-internet.fr>
882
883 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
884
Werner Lemberg960ba592006-12-01 08:20:47 +00008852006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000886
Werner Lemberg960ba592006-12-01 08:20:47 +0000887 * src/autofit/afhints.c (af_glyph_hints_dump_points,
888 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
889 Add stubs to link the `ftgrid' test program when debugging is
890 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000891
Werner Lemberg960ba592006-12-01 08:20:47 +00008922006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000893
894 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000895 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
896
897 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
898 Emit more sensible information.
899
900 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
901
902 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
903 rounding of blue values.
904 (af_latin_hints_compute_segments): Hint segment heights.
905 (af_latin_hints_link_segments): Reduce `len_score' value.
906 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
907 value and use `height' member for comparisons.
908 (af_latin_hint_edges): Extend logging message.
909 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000910
Werner Lemberg91959bf2006-11-22 10:36:55 +00009112006-11-22 Werner Lemberg <wl@gnu.org>
912
913 Fix Savannah bug #15553.
914
915 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
916 program after a change from mono to grayscaling (and vice versa).
917 Use correct constant for comparison to get `exec->grayscale'.
918
Werner Lemberg913a3652006-11-19 09:19:17 +00009192006-11-18 Werner Lemberg <wl@gnu.org>
920
921 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000922 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000923 This patch fixes Savannah bug #18301.
924
925 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
926 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
927 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
928 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
929 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
930 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
931 (FNT_Load_Glyph): Check validity of `glyph_index'.
932
David Turner7bab6ae2006-11-13 11:25:06 +00009332006-11-13 David Turner <david@freetype.org>
934
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000935 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
936 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000937
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000938 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
939 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
940 when building the library to change the default LCD filter to be
941 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000942
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000943 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000944
David Turner8765c712006-11-10 16:49:42 +00009452006-11-10 David Turner <david@freetype.org>
946
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000947 * src/smooth/ftsmooth.c: API change for the LCD
948 filter. The FT_LcdFilter value is an enumeration describing which
949 filter to apply, with new values FT_LCD_FILTER_LIGHT and
950 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
951 algorithm which produces strong color fringes for everything
952 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000953
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000954 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
955 second parameter to an enum type.
956
957 * src/base/ftlcdfil.c (USE_LEGACY): Define.
958 (_ft_lcd_filter): Rename to...
959 (_ft_lcd_filter_fir): This.
960 Update parameters.
961 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
962 (FT_Library_Set_LcdFilter): Update parameters.
963 Handle new filter modes.
964
965 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
966 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
967 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
968 callback and update other fields.
969
970 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
971 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
972 Other minor improvements.
973
974 * src/autofit/aflatin.c: Various tiny improvements that drastically
975 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
976 (af_latin_hints_compute_edges): Fix typo.
977 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000978
David Turner4e9cc3c2006-11-09 16:31:52 +00009792006-11-09 David Turner <david@freetype.org>
980
Werner Lemberg49c77a82006-11-09 21:51:57 +0000981 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
982 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000983
Werner Lemberg5e430892006-11-07 09:35:03 +00009842006-11-07 Zhe Su <james.su@gmail.com>
985
986 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
987 also.
988
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009892006-11-03 Werner Lemberg <wl@gnu.org>
990
991 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
992
David Turner40604742006-11-02 16:37:35 +00009932006-11-02 David Turner <david@freetype.org>
994
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000995 Add a few tweaks to better handle serif fonts.
996 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000997
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000998 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
999 segments that are less than 1.5 pixels high. This gets rid of
1000 *many* corner cases with serifs.
1001 (af_latin_align_linked_edge): Add logging message.
1002 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1003 Add logging messages.
1004 Handle AF_EDGE_FLAG flag specially.
1005
1006 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1007 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1008
1009 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1010 Update external declarations.
1011 (af_corner_orientation, af_corner_is_flat): Replaced by...
1012
1013 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1014 ft_corner_is_flat): These declarations.
1015
1016 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1017 Comment out. Replaced by...
1018
1019 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1020 These functions. Update all callers.
1021 (FT_Add64) [!FT_LONG64]: Simplify.
1022
1023 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1024 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1025 production of garbage by missing lots of segments.
1026
1027 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1028
1029 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1030 [AF_DEBUG]: Set _af_debug_hints.
1031
1032
1033 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1034 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1035 and ft_corner_orientation.
1036
1037
1038 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001039
Werner Lemberge88c5262006-10-24 05:46:26 +000010402006-10-24 Werner Lemberg <wl@gnu.org>
1041
1042 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1043
1044 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1045 as argument.
1046
David Turnera1861392006-10-23 16:00:59 +000010472006-10-23 Zhe Su <zsu@novell.com>
1048
Werner Lemberg715e96e2006-10-24 05:28:45 +00001049 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1050 better deal with broken Asian fonts with strange glyphs, having
1051 self-intersections and other peculiarities. The used algorithm is
1052 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001053
David Turnere140f142006-10-23 08:56:57 +000010542006-10-23 David Turner <david@freetype.org>
1055
Werner Lemberg715e96e2006-10-24 05:28:45 +00001056 Speed up the CFF font loader. With some large CFF fonts,
1057 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001058
Werner Lemberg715e96e2006-10-24 05:28:45 +00001059 * src/cff/cffload.c (cff_get_offset): Removed.
1060 (cff_new_index): Inline functionality of `cff_get_offset'.
1061 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1062 (cff_charset_done): Call `cff_charset_free_cids'.
1063 (cff_charset_load): Call `cff_charset_compute_cids'.
1064 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1065
1066 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1067 with FT_NEXT_XXX.
1068
1069
1070 Speed up the Postscript hinter, with more than 100% speed increase
1071 on my machine.
1072
1073 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1074 psh_corner_orientation): New functions.
1075 (psh_glyph_compute_inflections): Merge loops for efficiency.
1076 Use `psh_corner_orientation'.
1077 (psh_glyph_init): Use `psh_corner_is_flat'.
1078 (psh_hint_table_find_strong_point): Renamed to...
1079 (psh_hint_table_find_strong_points): This.
1080 Rewrite, adding argument to handle all points at once.
1081 Update all callers.
1082 (PSH_MAX_STRONG_INTERNAL): New macro.
1083 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001084
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010852006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1086
1087 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001088 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001089
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010902006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1091
1092 * docs/INSTALL.CROSS: New document file for cross-building.
1093
1094 * builds/unix/configure.raw: Preliminary cross-building support.
1095 Find native C compiler and pass it by CC_BUILD, and
1096 find suffix for native executable and pass it by EXEEXT_BUILD.
1097 Also suffix for target executable is passed by EXEEXT.
1098
Werner Lembergb9e6d692006-10-15 08:58:40 +00001099 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1100 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001101 CC_BUILD and EXEEXT_BUILD.
1102
Werner Lembergb9e6d692006-10-15 08:58:40 +00001103 * builds/exports.mk (APINAMES_EXE): Change the extension for
1104 apinames from the suffix for target (E) to that for building host
1105 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001106
Werner Lemberg82a07e92006-10-12 06:20:44 +000011072006-10-12 Werner Lemberg <wl@gnu.org>
1108
1109 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1110 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1111 which reference those files.
1112
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011132006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1114
Werner Lembergb9e6d692006-10-15 08:58:40 +00001115 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1116 embedded in freetype2.pc and freetype-config. Use it to record
1117 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001118
1119 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1120
1121 * builds/unix/freetype-config.in: Ditto.
1122
Werner Lemberg28e17d92006-10-11 17:27:47 +000011232006-10-11 Werner Lemberg <wl@gnu.org>
1124
1125 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1126 development.
1127
Jens Claudius336d2292006-10-03 08:53:37 +000011282006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1129
1130 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1131 argument to ft_setjmp.
1132
1133 * include/freetype/internal/ftvalid.h: Add comment that
1134 ft_validator_run must not be used.
1135
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011362006-10-01 Werner Lemberg <wl@gnu.org>
1137
1138 * src/base/ftbase.c: Undo change from 2006-09-30.
1139
1140 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1141
11422006-09-30 David Turner <david@freetype.org>
1143
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001144 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1145 s/unpatented_hinting/ignore_unpatented_hinter/.
1146 Update all callers.
1147
1148 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1149 auto-hinting shall be used or not.
1150
1151 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001152
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011532006-09-30 Werner Lemberg <wl@gnu.org>
1154
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001155 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1156 in use).
1157
1158 * src/base/ftbase.c: Include `ftlcdfil.c'.
1159
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011602006-09-29 Werner Lemberg <wl@gnu.org>
1161
1162 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1163 overlapping segments. Bug reported by Stefan Koch.
1164
David Turnerad830712006-09-27 16:20:59 +000011652006-09-28 David Turner <david@freetype.org>
1166
Werner Lemberg2c002e12006-09-29 21:31:53 +00001167 Fix a bug in the automatic unpatented hinting support which prevents
1168 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001169
Werner Lemberg2c002e12006-09-29 21:31:53 +00001170 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1171 s/force_autohint/unpatented_hinting/. Update all callers.
1172
1173 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1174
1175 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001176
David Turner8a317cf2006-09-27 07:52:48 +000011772006-09-27 David Turner <david@freetype.org>
1178
Werner Lemberg2c002e12006-09-29 21:31:53 +00001179 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001180
David Turner8a317cf2006-09-27 07:52:48 +00001181
David Turnere140f142006-10-23 08:56:57 +00001182 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001183 In a default build, the function `FT_Library_SetLcdFilter' returns
1184 `FT_Err_Unimplemented_Feature'; you need to #define
1185 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1186 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001187
Werner Lemberg2c002e12006-09-29 21:31:53 +00001188 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001189
Werner Lemberg2c002e12006-09-29 21:31:53 +00001190 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1191 typedef.
1192 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1193 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001194
Werner Lemberg2c002e12006-09-29 21:31:53 +00001195 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1196 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001197
Werner Lemberg2c002e12006-09-29 21:31:53 +00001198 Handle subpixel rendering.
1199 Simplify function.
1200 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1201 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1202
1203 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1204 pointing to <freetype/ftlcdfil.h>.
1205
1206 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1207 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1208
1209 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001210
Werner Lemberge20df4a2006-09-27 06:29:21 +000012112006-09-26 David Bustin
1212
1213 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1214 correctly. Reported as Savannah bug #17843.
1215
David Turner6f8c6222006-09-26 15:42:44 +000012162006-09-26 David Turner <david@freetype.org>
1217
Werner Lemberg110246c2006-09-26 21:55:44 +00001218 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1219 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1220 horizontal and vertical hinting for the purpose of debugging the
1221 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001222
Werner Lemberg110246c2006-09-26 21:55:44 +00001223 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1224 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001225
Werner Lemberg110246c2006-09-26 21:55:44 +00001226 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1227
1228 * include/freetype/config/ftoption.h, devel/ftoption.h
1229 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1230 we want to compile LCD-optimized rendering code (à la ClearType) or
1231 not. The macro *must* be disabled in default builds of the library
1232 for patent reasons.
1233
1234 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1235 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1236 isn't defined at compile time. This only changes the content of the
1237 rendered glyph to match the one of normal gray-level rendering,
1238 hence clients should not need to be modified.
1239
1240 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001241
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012422006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1243
1244 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1245 LWFN fails and both are available.
1246
David Turnerf3050052006-09-11 12:00:32 +000012472006-09-11 David Turner <david@freetype.org>
1248
Werner Lembergf9644552006-09-12 13:48:10 +00001249 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1250 report their English names through an Apple Roman
1251 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001252
Werner Lembergf9644552006-09-12 13:48:10 +00001253 If the font uses another name entry with language_id == English, it
1254 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001255
Werner Lembergf9644552006-09-12 13:48:10 +00001256 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1257 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001258
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012592006-09-05 Werner Lemberg <wl@gnu.org>
1260
1261 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001262 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001263 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1264 `HAN NOM B.ttf').
1265
1266 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1267
David Turner772e55d2006-09-05 09:45:15 +000012682006-09-05 David Turner <david@freetype.org>
1269
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001270 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001271
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001272 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1273 (TRaster): Remove `count_ex' and `count_ey'.
1274 (gray_find_cell): Remove 2nd and 3rd argument.
1275 (gray_alloc_cell): Merged with `gray_find_cell'.
1276 (gray_record_cell): Simplify.
1277 (gray_set_cell): Rewrite.
1278 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1279 (gray_render_span): Don't use FT_MEM_SET for small values.
1280 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1281 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1282 bitmap scanline.
1283 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001284
David Turneraa557a92006-09-04 16:42:44 +000012852006-09-04 David Turner <david@freetype.org>
1286
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001287 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1288 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001289
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012902006-09-03 Werner Lemberg <wl@gnu.org>
1291
1292 * devel/ftoption.h: Synchronize with
1293 include/freetype/config/ftoption.h.
1294
1295 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1296 variable declaration.
1297 (gray_convert_glyph): Fix compiler warnings.
1298
David Turner6d79f212006-09-01 14:09:35 +000012992006-09-01 David Turner <david@freetype.org>
1300
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001301 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1302 to recognize a few fonts that require the automatic unpatented
1303 loader.
David Turnerbd502952006-09-01 19:05:24 +00001304
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001305 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1306 rasterizer. The speed improvement is between 15% and 25%, depending
1307 on the font data.
1308
1309 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1310 (TCell): Redefine.
1311 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1312 (gray_init_cells): Updated.
1313 (gray_find_cell, gray_alloc_cell): New functions.
1314 (gray_record_cell): Rewritten to use `gray_find_cell' and
1315 `gray_alloc_cell'.
1316 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1317 QSORT_THRESHOLD):
1318 Removed.
1319 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1320 gray_dump_cells): Removed.
1321 (gray_sweep): Rewritten.
1322 (gray_convert_glyph): Rewrite code which used one of the sorting
1323 functions.
1324 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001325
Werner Lembergd898aed2006-08-29 09:50:34 +000013262006-08-29 Dr. Werner Fink <werner@suse.de>
1327
1328 * configure: Make it possible to handle configure options which
1329 have strings containing spaces.
1330
13312006-08-27 David Turner <david@freetype.org>
1332
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001333 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1334 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1335 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1336
1337 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1338 src/truetype/truetype.c, src/truetype/ttdriver.c,
1339 src/truetype/ttgload.c, src/truetype/ttgload.h,
1340 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1341 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1342 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1343
1344 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1345 member `force_autohint'.
1346
1347 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1348
1349 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1350 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001351
Jens Claudiusa787f452006-08-27 11:26:18 +000013522006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1353
1354 Fix miscellaneous compiler warnings.
1355
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001356 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1357 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001358
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001359 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1360 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1361 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001362
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001363 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1364 volatileness of argument to ft_longjmp. Spotted by Werner
1365 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001366
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001367 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1368 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001369
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001370 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1371 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001372
Werner Lembergc4c35b72006-08-27 08:03:46 +000013732006-08-27 Werner Lemberg <wl@gnu.org>
1374
1375 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1376 Reported by Jens.
1377
Jens Claudius088e44e2006-08-22 14:24:30 +000013782006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001379
Jens Claudius088e44e2006-08-22 14:24:30 +00001380 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001381 about addresses of volatile objects passed as function arguments as
1382 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001383
Werner Lembergc4c35b72006-08-27 08:03:46 +00001384 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1385 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001386
1387 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1388 argument `table' a pointer to a volatile object.
1389
1390 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1391 argument `table' a pointer to a volatile object.
1392
Jens Claudius2652bd52006-08-18 17:20:37 +000013932006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1394
1395 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1396 variable `_sfnt' as volatile since it must keep its value across
1397 a call to ft_setjmp.
1398 (gxv_validate): Same for local variables `memory' and `valid'.
1399 (classic_kern_validate): Same for local variables `memory',
1400 `ckern', and `valid'.
1401
1402 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1403 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1404 `jstf', and 'valid'.
1405
1406 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1407 local variable `cmap'.
1408
David Turner9fbfc6a2006-08-16 09:11:31 +000014092006-08-16 David Turner <david@freetype.org>
1410
Werner Lemberg12342992006-08-19 11:18:09 +00001411 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1412 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001413
Werner Lemberg12342992006-08-19 11:18:09 +00001414 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1415 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001416
David Turner33f5f242006-08-16 16:50:55 +00001417
Werner Lemberg12342992006-08-19 11:18:09 +00001418 Improvements to native TrueType hinting. This is a first try,
1419 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1420
1421 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1422 `extra_points2'.
1423
1424 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1425 `orus'.
1426
1427 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1428 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1429 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1430 handle `extra_points2'.
1431
1432 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1433 Remove compiler warning.
1434 (cur_to_arg): Remove macro.
1435 (TT_Hint_Glyph): Updated.
1436 (TT_Process_Simple_Glyph): Handle `orus'.
1437
1438 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1439 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1440 (LOC_Ins_IUP): Renamed to...
1441 (IUP_WorkerRec): This.
1442 Add `orus' member.
1443 (Shift): Renamed to...
1444 (_iup_worker_shift): This.
1445 Updated.
1446 (Interp): Renamed to...
1447 (_iup_worker_interpolate): This.
1448 Updated to handle `orus'.
1449 (Ins_IUP): Updated.
1450
1451 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1452 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001453
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014542006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1455
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001456 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001457 build ftvalid in ft2demos. This has been inadvertedly changed
1458 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001459
14602006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1461
Werner Lemberg12342992006-08-19 11:18:09 +00001462 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1463 Jens:
1464 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001465
Werner Lemberg12342992006-08-19 11:18:09 +00001466 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1467 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001468
1469 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1470
Jens Claudius9950adc2006-08-13 12:14:36 +000014712006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1472
Werner Lemberg12342992006-08-19 11:18:09 +00001473 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1474 T1_TOKEN_TYPE_KEY.
1475 (T1_FieldRec): Add `dict'.
1476 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1477 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1478 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001479
Werner Lemberg12342992006-08-19 11:18:09 +00001480 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1481 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001482
1483 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1484
1485 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001486 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1487 not T1_TOKEN_TYPE_ANY.
1488 (ps_parser_load_field): Make sure a token that should be a string or
1489 name is really a string or name.
1490 Avoid memory leak if a keyword has been already encountered and its
1491 value is overwritten.
1492 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1493 T1_FIELD_XXX.
1494 (parse_dict): Ignore keywords that occur in the wrong dictionary
1495 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001496
Werner Lemberg12342992006-08-19 11:18:09 +00001497 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1498 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001499
Werner Lemberg12342992006-08-19 11:18:09 +00001500 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1501 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001502
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000015032006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1504
1505 Move creation of field `buildchar' of T1_DecoderRec out of
1506 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1507 of it.
1508
1509 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1510 and `T1_Compute_Max_Advance'.
1511
1512 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1513 Remove field `face', add `len_buildchar'.
1514
1515 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1516 field `buildchar'.
1517
1518 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1519 finisher for T1_Decoder.
1520 (cid_slot_load_glyph): Do not ignore failure when initializing the
1521 T1_Decoder.
1522
1523 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1524 Updated.
1525 (t1_decoder_init): Remove initialization of fields `buildchar' and
1526 `len_buildchar'.
1527 (t1_decoder_done): Remove deallocation of field `buildchar'.
1528
1529 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1530 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1531 T1_Decoder.
1532 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1533 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1534 case of error.
1535
1536 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1537 `buildchar' of T1_FaceRec.
1538
1539 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1540 `buildchar' of T1_FaceRec.
1541
Werner Lemberg1a380e02006-07-14 18:28:08 +000015422006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1543
1544 * freetype2/include/freetype/internal/psaux.h: New macros
1545 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1546 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1547 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1548 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1549 (T1_DecoderRec): New fields `buildchar' and `face'.
1550 (IS_PS_TOKEN): New macro.
1551
1552 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1553 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1554
1555 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1556 `default_design_vector' and `num_default_design_vector'.
1557
1558 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1559 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1560 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1561
1562 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1563 `token' argument to be NULL if we want only to count the number of
1564 tokens.
1565 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1566 want to skip the array.
1567 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1568 want to skip the array.
1569
1570 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1571 support for (partially commented out) othersubrs 19-25, 27, and 28.
1572 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1573 (t1_decoder_done): Release new field `buildchar'.
1574
1575 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1576 functions.
1577 (t1_keywords): Register them.
1578 (t1_allocate_blend): Updated.
1579 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1580 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1581 (parse_dict): Remove `keyword_flags' argument.
1582 Use new macro IS_PS_TOKEN.
1583 Changed function so that later PostScript definitions override
1584 earlier ones.
1585 (t1_init_loader): Initialize new field `keywords_encountered'.
1586 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1587 `len_buildchar'.
1588 Remove `keywords_flags'.
1589
1590 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1591 `keywords_encountered'.
1592 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1593
1594 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1595 New entries for parsing /NDV, /CDV, and /DesignVector.
1596
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015972006-07-07 Werner Lemberg <wl@gnu.org>
1598
1599 Add many checks to protect against malformed PCF files.
1600
1601 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1602 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1603
1604 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1605 data and check that tables don't overlap (using a simple
1606 bubblesort).
1607 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1608 New macros which give the size of data structures in the data
1609 stream.
1610 (pcf_get_properties): Use rough estimates to get array size limits.
1611 Assign `face->nprops' and `face->properties' earlier so that a call
1612 to PCF_Face_Done can do the clean-up in case of error.
1613 Protect against invalid string offsets.
1614 (pcf_get_metrics): Clean up code.
1615 Adjust tracing message levels.
1616 Use rough estimate to get array size limit.
1617 (pcf_get_bitmaps): Clean up code.
1618 Adjust tracing message levels.
1619 Use rough estimates to get offset limits.
1620 (pcf_get_encodings): Adjust tracing message level.
1621 (pcf_get_accel): Clean up code.
1622
Werner Lemberg8eb05252006-06-27 06:20:01 +000016232006-06-26 Werner Lemberg <wl@gnu.org>
1624
1625 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1626 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1627
Werner Lemberg24703f82006-06-26 19:12:51 +000016282006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1629
1630 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1631 (t1_decoder_parse_charstrings): Operator with
1632 opcode 15 pops its two arguments.
1633 Handle the case where the pops of an othersubr may be part of a
1634 subroutine.
1635 Handle unknown othersubrs gracefully: count their operands and let
1636 the following pop operators push the operands as the results onto
1637 the Type1 stack.
1638 Improve handling of setcurrentpoint opcode.
1639
Werner Lembergc011f4c2006-06-26 09:40:00 +000016402006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1641
1642 The Type 1 parser now skips over top-level procedures as required
1643 for a `Simplified Parser'. This makes the parser more robust as it
1644 doesn't poke around in PostScript code. Additionally, it makes the
1645 FontDirectory hackery in src/type1/t1load.c unnecessary.
1646
1647 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1648 (skip_literal_string): Add FT_Error as return value.
1649 Handle escapes better.
1650 (skip_string): Add FT_Error as return value.
1651 Don't set `parser->error' but return error code directly.
1652 (skip_procedure): New function.
1653 (ps_parser_skip_PS_token): Handle procedures.
1654 Update code.
1655 (ps_parser_to_token): Update code.
1656 (ps_parser_load_field_table): Handle bbox entries also.
1657
1658 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1659 Add commented-out code for synthetic fonts.
1660
Werner Lemberga2da05c2006-06-25 06:27:27 +000016612006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1662
1663 Fix two hinting bugs as reported in
1664 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1665
1666 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1667 `first_point' member.
1668
1669 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1670 `first_point'.
1671 (TT_Process_Composite_Glyph): Always untouch points.
1672
1673 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1674 `first_point' and `last_point' in case of composite glyphs.
1675 (Ins_IUP): Fix computation of `end_point'.
1676
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016772006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1678
Werner Lembergef3d2c22006-06-25 06:07:14 +00001679 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1680 Mac. The original patch was written by David Sachitano and Lawrence
1681 Coopet, and modified by Sean McBride for MPW compatibility. Only
1682 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001683
Werner Lembergef3d2c22006-06-25 06:07:14 +00001684 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1685 Mac OS X platforms.
1686 (OS_INLINE): Undefine before definition.
1687 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1688 FontAssociation table in FOND resource.
1689 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1690 and fontSize at each entry of FontAssociation table in FOND
1691 resource.
1692 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1693 ffStylOff of FamilyRecord header of FOND resource, the header,
1694 fontSize, fontID at each entry of FontAssociation table, and
1695 StyleMapping table.
1696 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001697
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016982006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1699
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001700 Public API of TrueTypeGX, OpenType, and classic kern table validator
1701 should return `FT_Err_Unimplemented_Feature' if validation service
1702 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001703 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001704 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1705
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001706 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1707 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1708 unavailable.
1709 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1710 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001711
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001712 * src/base/ftotval.c (FT_OpenType_Validate): Return
1713 FT_Err_Unimplemented_Feature if OpenType validation service is
1714 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001715
Werner Lembergb10e45a2006-06-08 07:32:56 +000017162006-06-08 Werner Lemberg <wl@gnu.org>
1717
1718 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1719 errors.
1720
David Turner5f1f7502006-06-07 05:11:50 +000017212006-06-07 David Turner <david@freetype.org>
1722
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001723 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1724 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1725 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001726
David Turner457b4a82006-06-06 08:14:14 +000017272006-06-06 David Turner <david@freetype.org>
1728
Werner Lemberg4836f952006-06-06 12:54:08 +00001729 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001730
Werner Lemberg4836f952006-06-06 12:54:08 +00001731 We change `ps_unicodes_init' so that it also takes a
1732 `free_glyph_name' callback to release the glyph names returned by
1733 `get_glyph_name'
1734
1735 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1736 Renamed to ...
1737 (PS_GetGlyphNameFunc): This.
1738 (PS_FreeGlyphNameFunc): New typedef.
1739 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1740
1741 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1742 argument.
1743 (cff_sid_free_glyph_name): New function.
1744 (cff_cmap_unicode_init): Updated.
1745
1746 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1747
1748 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1749 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001750
1751
David Turner09717352006-06-04 14:33:08 +000017522006-06-04 David Turner <david@freetype.org>
1753
Werner Lembergd724f202006-06-04 15:17:41 +00001754 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1755 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001756 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001757
Werner Lembergd724f202006-06-04 15:17:41 +00001758 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1759 of `face->num_glyphs' which missed the last glyph, due to
1760 the offset-by-1 computation, since the PFR format doesn't
1761 guarantee that glyph index 0 corresponds to the `missing
1762 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001763
Werner Lemberg33779662006-05-26 06:30:05 +000017642006-05-25 Werner Lemberg <wl@gnu.org>
1765
1766 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1767 `-no-undefined'. Reported by Christian Biesinger.
1768
Werner Lemberg24773d62006-05-20 08:53:13 +000017692006-05-19 Brian Weed <bw@imaginengine.com>
1770
1771 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1772 have debug information, and debug libraries use `C7 compatible'
1773 debug info.
1774
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017752006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1776
Werner Lemberga6523a62006-05-20 08:47:01 +00001777 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001778 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001779
Werner Lemberga6523a62006-05-20 08:47:01 +00001780 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1781 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001782
1783 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001784 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001785
17862006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1787
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001788 * build/unix/configure.raw: Add a fallback to disable Carbon
1789 dependency, if configured with no options on Mac OS X.
1790
17912006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1792
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001793 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001794 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001795 the second part of Savannah bug #16590.
1796
Werner Lemberg545c4e52006-05-17 22:55:04 +000017972006-05-18 Werner Lemberg <wl@gnu.org>
1798
1799 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1800 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1801
David Turnerdc3ff312006-05-17 12:59:35 +000018022006-05-17 David Turner <david@freetype.org>
1803
Werner Lemberg545c4e52006-05-17 22:55:04 +00001804 This is a major patch used to drastically improve the performance of
1805 loading glyphs. This both speeds up loading the glyph vectors
1806 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001807
Werner Lemberg545c4e52006-05-17 22:55:04 +00001808 We now use inline assembler code with GCC to implement `FT_MulFix',
1809 which is probably the most important function related to the
1810 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001811
Werner Lemberg545c4e52006-05-17 22:55:04 +00001812 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001813
1814
Werner Lemberg545c4e52006-05-17 22:55:04 +00001815 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1816 `cursor' and `limit'.
1817
1818 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1819 New functions.
1820 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1821 [TEST]: Remove.
1822
1823 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1824 code.
1825
1826 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1827 `FT_ZERO'
1828 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1829 (af_glyph_hints_reload: Rewrite recognition of weak points.
1830
1831 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1832 constant values out of the loops.
1833
1834 * src/autofit/aftypes.h: Updated.
1835
1836 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1837
1838 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1839 product to get orientation.
1840
1841 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1842 (FT_Stream_OpenGzip): Use it to handle small files directly in
1843 memory.
1844
1845 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1846 Improve performance.
1847
1848 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1849 `limit'.
1850
1851 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1852 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1853 exceedingly large values of number of contours. Speed up by
1854 reducing the number of loops.
1855
1856 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1857
1858
1859 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1860 used to detect rogue clients from 4 to 16. This is to prevent some
1861 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1862 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001863
Werner Lembergde2d90a2006-05-17 08:54:30 +000018642007-05-17 Werner Lemberg <wl@gnu.org>
1865
1866 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001867 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001868
18692006-05-16 Werner Lemberg <wl@gnu.org>
1870
1871 * docs/PROBLEMS: Updated icl issues.
1872
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001873----------------------------------------------------------------------------
1874
Werner Lemberg42b63b22007-01-21 21:01:33 +00001875Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001876David Turner, Robert Wilhelm, and Werner Lemberg.
1877
1878This file is part of the FreeType project, and may only be used, modified,
1879and distributed under the terms of the FreeType project license,
1880LICENSE.TXT. By continuing to use, modify, or distribute this file you
1881indicate that you have read the license and understand and accept it
1882fully.
1883
1884
1885Local Variables:
1886version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001887coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001888End: