blob: aedeb3a60599233d33081e06181877d606b8d07c [file] [log] [blame]
Werner Lembergcc712a22007-04-27 17:16:50 +000012007-04-27 Werner Lemberg <wl@gnu.org>
2
3 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
4 number of points in contours. Problem reported by Victor Stinner
5 <victor.stinner@haypocalc.com>.
6 (TT_Process_Simple_Glyph): Synchronize variable types.
7
Werner Lemberg45bb18f2007-04-26 06:26:35 +000082007-04-26 Werner Lemberg <wl@gnu.org>
9
10 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
11 zero in case of error. This fixes Savannah bug #19689.
12
Werner Lembergfcc1f472007-04-10 11:51:50 +0000132007-04-10 Martin Horak <horakm@centrum.cz>
14
15 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
16 Ignore `hhea' table. This fixes Savannah bug #19261.
17
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000182007-04-09 Werner Lemberg <wl@gnu.org>
19
20 * Version 2.3.4 released.
21 =========================
22
23
24 Tag sources with `VER-2-3-4'.
25
26 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
27 version number to 2.3.4.
28
29 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
30 builds/win32/visualc/freetype.dsp,
31 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
32
33 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
34
35 * builds/unix/configure.raw (version_info): Set to 9:15:3.
36
Werner Lembergf4a52a62007-04-09 08:40:11 +0000372007-04-09 Martin Horak <horakm@centrum.cz>
38
39 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
40 memory stream to avoid a crash with the incremental memory
41 interface (Savannah bug #19260).
42
David Turner1dcb4442007-04-06 08:19:04 +0000432007-04-06 David Turner <david@freetype.org>
44
Werner Lembergc81cf612007-04-06 09:28:23 +000045 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
46 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000047
Werner Lemberg9f83e052007-04-05 02:28:23 +0000482007-04-04 Werner Lemberg <wl@gnu.org>
49
50 * Version 2.3.3 released.
51 =========================
52
53
54 Tag sources with `VER-2-3-3'.
55
56 * docs/CHANGES: Mention CVE-2007-1351.
57
David Turner7338ec22007-04-03 14:30:34 +0000582007-04-03 David Turner <david@freetype.org>
59
60 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000061 if one of the resolution values is 0, treat it as if it were the
62 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000063
David Turnere6472c12007-04-02 13:13:54 +0000642007-04-02 David Turner <david@freetype.org>
65
Werner Lemberg94f12272007-04-03 07:19:53 +000066 Add special code to detect `extra-light' fonts and do not snap their
67 stem widths too much to avoid bizarre hinting effects.
68
69 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
70 `extra_light' members.
71
72 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
73 them.
74 (af_latin_metrics_scale_dim): Set `extra_light'.
75 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000076
David Turner3f539692007-03-28 14:53:40 +0000772007-03-28 David Turner <david@freetype.org>
78
Werner Lemberg644b1ad2007-03-28 21:17:11 +000079 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000080 padding.
81
Werner Lemberga08b2172007-03-28 07:17:17 +0000822007-03-28 Werner Lemberg <wl@gnu.org>
83
84 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
85 gracefully.
86 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000087 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000088 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
89 number of code points in Unicode.
90
Werner Lemberg644b1ad2007-03-28 21:17:11 +000091 * builds/win32/visualc/index.html,
92 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +000093 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +000094 s/232/233/.
95
96 * docs/CHANGES: Mention ftdiff.
97
David Turner3b242d32007-03-26 12:03:04 +0000982007-03-26 David Turner <david@freetype.org>
99
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000100 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
101 corresponding code.
102 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000103
Werner Lemberga08b2172007-03-28 07:17:17 +0000104 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000105 computations in order to ignore single-point contours. These are
106 never rasterized and correspond in certain fonts to mark-attach
107 points that are very far from the glyph's real outline, ruining the
108 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000109
Werner Lemberga08b2172007-03-28 07:17:17 +0000110 * src/autofit/afloader.c (af_loader_load_g): In the case of
111 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
112 Otherwise code that uses them will most certainly ruin the fixed
113 advance property.
David Turner23553d62007-03-26 13:37:17 +0000114
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000115 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
116 documentation and bump version number to 2.3.3.
117
118 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
119
120 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000121
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001222007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
123
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000124 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
125 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000126 * builds/vms/ftconfig.h: Ditto.
127 * include/freetype/config/ftconfig.h: Ditto.
128
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001292007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
130
Werner Lemberg14ffe092007-03-22 06:12:43 +0000131 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
132 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000133 proposed by Sean McBride:
134 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
135
1362007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
137
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000138 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
139 setjmp, proposed by Sean McBride:
140 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
141
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001422007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
143
Werner Lembergc9f6c662007-03-21 13:30:14 +0000144 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
145 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
146 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000147
David Turner74c34eb2007-03-18 07:19:31 +00001482007-03-18 David Turner <david@freetype.org>
149
Werner Lembergc9f6c662007-03-21 13:30:14 +0000150 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
151 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000152
Werner Lembergc9f6c662007-03-21 13:30:14 +0000153 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000154
David Turner89020d92007-03-17 17:48:57 +00001552007-03-17 David Turner <david@freetype.org>
156
Werner Lembergc9f6c662007-03-21 13:30:14 +0000157 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
158 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000159
Werner Lemberg25d592a2007-03-09 07:59:35 +00001602007-03-09 Werner Lemberg <wl@gnu.org>
161
162 * Version 2.3.2 released.
163 =========================
164
165
166 Tag sources with `VER-2-3-2'.
167
168 * builds/win32/visualc/index.html,
169 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000170 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000171 s/231/232/.
172
David Turner3a51afa2007-03-08 10:50:38 +00001732007-03-08 David Turner <david@freetype.org>
174
Werner Lemberg25d592a2007-03-09 07:59:35 +0000175 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000176
Werner Lemberg25d592a2007-03-09 07:59:35 +0000177 * builds/unix/configure.raw (version_info): Set to 9:13:3.
178
179 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
180
181 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000182
Werner Lemberg1e259de2007-03-08 15:39:21 +0000183 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
184 function to work properly, over-writing user-provided buffers in
185 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000186
David Turner121cad52007-03-08 16:43:50 +0000187
Werner Lemberg3d92f082007-03-06 11:59:24 +00001882007-03-05 Werner Lemberg <wl@gnu.org>
189
190 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
191 macro for `strstr'.
192
193 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
194 `trick_names', as suggested by Ivan Nincic.
195
David Turner085bc6e2007-03-05 17:40:03 +00001962007-03-05 David Turner <david@freetype.org>
197
Werner Lembergd112cf02007-03-06 12:06:56 +0000198 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
199 case FT_Init_FreeType fails for some reason. Problem reported by
200 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000201
Werner Lembergd112cf02007-03-06 12:06:56 +0000202 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
203 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
204 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
205 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000206
Werner Lembergd112cf02007-03-06 12:06:56 +0000207 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
208 signed values, not unsigned ones. Problem reported by Johannes
209 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000210
David Turner601aefe2007-02-21 16:47:49 +00002112007-02-21 David Turner <david@freetype.org>
212
Werner Lembergde5e6862007-02-25 21:06:43 +0000213 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
214 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000215
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002162007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
217
218 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
219 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
220 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
221
Werner Lemberga0915172007-02-16 08:12:50 +00002222007-02-16 Werner Lemberg <wl@gnu.org>
223
224 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
225 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
226
David Turner2c4500e2007-02-14 15:08:47 +00002272007-02-14 David Turner <david@freetype.org>
228
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000229 It seems that the following changes fix most of the known
230 interpreter problems with my fonts, but more testing is needed,
231 though.
232
233 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
234 (TT_MulFix14): Rewrite.
235 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
236 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000237
Werner Lembergc6a14082007-02-12 22:08:15 +00002382007-02-12 Werner Lemberg <wl@gnu.org>
239
240 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
241 warnings.
242
243 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
244 (bdf_interpret_style): Ditto.
245
David Turnerc0f9c4a2007-02-12 14:55:03 +00002462007-02-12 David Turner <david@freetype.org>
247
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000248 Simplify projection and dual-projection code interface.
249
Werner Lemberg406d25f2007-02-12 22:01:18 +0000250 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
251 FT_Vector' as argument type.
252 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
253 Updated.
254 (CUR_fast_project, CUR_fast_dualproj): New macros.
255 (Project, Dual_Project, Project_x, Project_y): Updated.
256 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
257 macros.
258
259
260 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
261 adjustments for the non-light auto-hinted modes. Gets rid of
262 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000263
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000264 * src/autofit/aflatin.c (af_latin_hints_link_segments,
265 af_latin_hints_compute_edges): Slight optimization of the segment
266 linker and better handling of serif segments to get rid of broken
267 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000268
David Turnerc0f9c4a2007-02-12 14:55:03 +0000269
Werner Lemberg442bfb82007-02-12 21:44:10 +0000270 Introduce new string functions and the corresponding macros to get
271 rid of various uses of strcpy and other `evil' functions, as well as
272 to simplify a few things.
273
274 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
275 ft_mem_strcpyn): New declarations.
276 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
277 macros.
278 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
279 functions.
280
281 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
282 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
283 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
284 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
285 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
286 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
287 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
288 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000289
Werner Lemberg406d25f2007-02-12 22:01:18 +0000290 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
291
Werner Lemberg582067d2007-02-11 15:03:05 +00002922007-02-11 Werner Lemberg <wl@gnu.org>
293
294 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
295 non-spacing glyphs.
296
Werner Lemberg8f474532007-02-07 08:31:01 +00002972007-02-07 Tom Parker <palfrey@tevp.net>
298
299 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
300 pointer.
301
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003022007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
303
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000304 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
305 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000306 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000307 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
308 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
309 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
310 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000311
312 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
313 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000314 * builds/mac/ftmac.c: Ditto.
315
3162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
317
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000318 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000319 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000320 #include <ftmac.c>.
321
3222007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
323
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000324 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
325 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
326 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
327 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
328 FT_GetFilePath_From_Mac_ATS_Name.
329 * builds/mac/ftmac.c: Ditto.
330
3312007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
332
Werner Lembergdcbb7082007-02-08 08:54:09 +0000333 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000334 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
335 for passing to FT_New_Face_From_FSSpec.
336
3372007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
338
Werner Lembergdcbb7082007-02-08 08:54:09 +0000339 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000340 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000341
342 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
343 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000344 * builds/mac/ftmac.c (OS_INLINE): Ditto.
345
Werner Lemberg313d7772007-02-01 08:10:45 +00003462007-02-01 Werner Lemberg <wl@gnu.org>
347
348 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
349 Explain why applications shouldn't use it. Found by Alexei.
350
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003512007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000352
353 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
354 message.
355
356 * src/gxvalid/gxvmort1.c
357 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
358 message.
359
Werner Lemberg53935932007-01-31 08:53:02 +00003602007-01-31 Werner Lemberg <wl@gnu.org>
361
362
363 * Version 2.3.1 released.
364 =========================
365
366
367 Tag sources with `VER-2-3-1-FINAL'.
368
369 * builds/win32/visualc/freetype.dsp,
370 builds/win32/visualc/freetype.vcproj: s/230/231/.
371 * builds/win32/visualc/index.html: s/221/231/.
372
373 * vms_make.com: Add `ftgasp'.
374
David Turnera7ee6082007-01-30 10:33:53 +00003752007-01-30 David Turner <david@freetype.org>
376
Werner Lemberg53935932007-01-31 08:53:02 +0000377 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000378
Werner Lemberg53935932007-01-31 08:53:02 +0000379 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000380
Werner Lemberg25d592a2007-03-09 07:59:35 +0000381 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000382 s/2.3.0/2.3.1/.
383
384 * builds/unix/configure.raw (version_info): Set to 9:12:3.
385
386
387 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
388 (af_loader_load_g): Disable the warper (i.e., the light hinting
389 improvements) to make a 2.3.1 bugfix release before introducing a
390 new feature. This should give us more time to tune and improve the
391 warper for the next release.
392
393 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000394
David Turnerd91eebd2007-01-26 15:05:41 +00003952007-01-25 David Turner <david@freetype.org>
396
Werner Lembergbf241762007-01-26 16:08:49 +0000397 For light auto-hinting, improve glyph advance widths and resurrect
398 normal/full hinting to its normal quality.
399
400 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
401 and `xmax_delta'.
402 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
403 and `xmax_delta'.
404
405 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
406 preprocessor conditional with if-clause, handling both light and
407 normal mode.
408
409 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
410 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000411
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004122007-01-25 Werner Lemberg <wl@gnu.org>
413
414 * docs/release: Updated -- Savannah uses a new uploading scheme.
415
David Turnera42567b2007-01-25 12:23:37 +00004162007-01-25 David Turner <david@freetype.org>
417
Werner Lembergd7855662007-01-25 13:53:56 +0000418 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000419
Werner Lembergd7855662007-01-25 13:53:56 +0000420 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
421 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
422 functions.
David Turnera42567b2007-01-25 12:23:37 +0000423
Werner Lembergd7855662007-01-25 13:53:56 +0000424 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000425
Werner Lembergb1be9e82007-01-25 11:50:00 +00004262007-01-25 Werner Lemberg <wl@gnu.org>
427
428 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000429 correctly in a sanity check. Since this function is only used to
430 load local and global functions, any charstring that called the last
431 local/global function would fail otherwise. This fixes Savannah bug
432 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000433
434 * docs/CHANGES: Document it.
435
David Turnerb6de8d12007-01-23 15:51:50 +00004362007-01-23 David Turner <david@freetype.org>
437
Werner Lembergb1be9e82007-01-25 11:50:00 +0000438 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
439 prevented compilation when disabling both the unpatented and the
440 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000441
Werner Lembergb1be9e82007-01-25 11:50:00 +0000442
443 Fix and enable the warper to improve `light' hinting mode. This is
444 not necessarily a final version, but it seems to work well.
445
446 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
447 Disable code.
448 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
449 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
450
451 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
452 (af_warper_compute_line_best): Fix array size of `scores'.
453 (af_warper_compute): Better handling of border cases.
454 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
455 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000456
Werner Lemberg011d1112007-01-21 09:36:00 +00004572007-01-21 Werner Lemberg <wl@gnu.org>
458
Werner Lemberg42b63b22007-01-21 21:01:33 +0000459 * ChangeLog: Split off older entries into...
460 * ChangeLog.22: This new file.
461
4622007-01-21 Werner Lemberg <wl@gnu.org>
463
Werner Lemberg555258f2007-01-21 09:46:37 +0000464 * docs/CHANGES: Document SHZ fix.
465
4662007-01-21 George Williams <gww@silcom.com>
467
468 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
469 points.
470
4712007-01-21 Werner Lemberg <wl@gnu.org>
472
Werner Lemberg011d1112007-01-21 09:36:00 +0000473 * src/sfnt/ttmtx.c (tt_face_get_metrics)
474 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
475
Werner Lemberg87a5a432007-01-17 12:44:39 +00004762007-01-17 Werner Lemberg <wl@gnu.org>
477
Werner Lembergb8003292007-01-17 12:56:25 +0000478
479 * Version 2.3.0 released.
480 =========================
481
482
483 Tag sources with `VER-2-3-0-FINAL'.
484
4852007-01-17 Werner Lemberg <wl@gnu.org>
486
Werner Lemberg87a5a432007-01-17 12:44:39 +0000487 * docs/release: Updated.
488
David Turner22122722007-01-16 20:06:44 +00004892007-01-16 David Turner <david@freetype.org>
490
Werner Lemberg87a5a432007-01-17 12:44:39 +0000491 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
492 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
493 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
494 warnings.
David Turner22122722007-01-16 20:06:44 +0000495
Werner Lemberg267e1d72007-01-15 07:48:09 +00004962007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
497
498 * builds/amiga/makefile, builds/amiga/makefile.os4,
499 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
500
501 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
502
Werner Lemberg8c4120d2007-01-15 06:42:40 +00005032007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
504
505 Fix various compiler warnings.
506
507 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
508 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
509 s/index/strike_index/.
510 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
511
512 * src/gxvalid/gxvmorx5.c
513 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
514
515 * src/truetype/ttinterp.c (Compute_Point_Displacement),
516 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
517 uninitialized variables.
518
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005192007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
520
521 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
522
Werner Lemberg281c1482007-01-13 22:50:51 +00005232007-01-13 Werner Lemberg <wl@gnu.org>
524
525 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
526 versions up to 0x3FF without complaining.
527
Werner Lembergac250b22007-01-13 14:01:36 +00005282007-01-13 Derek Clegg <dclegg@apple.com>
529
530 Add FT_Get_PS_Font_Info interface to CFF driver.
531
532 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
533 (CFF_FontRec): Add `font_info' field.
534
535 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
536 (cff_font_done): Free font->font_info if necessary.
537
538 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
539 (cff_service_ps_info): Register cff_ps_get_font_info.
540
Werner Lemberg23df31a2007-01-13 08:45:00 +00005412007-01-13 Werner Lemberg <wl@gnu.org>
542
543 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
544 with C++ compiler.
545
546 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
547 af_glyph_hints_dump_edges): Ditto.
548
549 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
550 `modules.cfg').
551
552 * src/sfnt/ttsbit0.h: Remove.
553
554 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
555
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005562007-01-12 David Turner <david@freetype.org>
557
558 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
559 bug in the bitmap emboldener if the pitch of the source bitmap is
560 much larger than its width.
561
562 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
563 compilation warning.
564
Werner Lemberg6d96d312007-01-12 10:30:19 +00005652007-01-12 Werner Lemberg <wl@gnu.org>
566
567 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
568 `automake' CVS module from sources.redhat.com.
569
Werner Lemberg17432b52007-01-12 09:28:44 +00005702007-01-11 Werner Lemberg <wl@gnu.org>
571
572 * src/type1/t1load.c (is_space): Removed.
573 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
574 (parse_charstrings): Use IS_PS_TOKEN.
575
576
577 * autogen.sh: Avoid bash specific syntax.
578
David Turner038ace22007-01-11 15:00:59 +00005792007-01-11 David Turner <david@freetype.org>
580
Werner Lemberg17432b52007-01-12 09:28:44 +0000581 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000582
Werner Lemberg17432b52007-01-12 09:28:44 +0000583 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000584
Werner Lemberg17432b52007-01-12 09:28:44 +0000585 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
586 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000587 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000588
Werner Lemberg17432b52007-01-12 09:28:44 +0000589 * autogen.sh: Small fix to get it working on Mac OS X properly:
590 The issue is that GNU libtool is called `glibtool' on this platform,
591 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000592
David Turner2628ea92007-01-10 13:15:56 +00005932007-01-10 David Turner <david@freetype.org>
594
Werner Lemberg17432b52007-01-12 09:28:44 +0000595 * all-sources: Tag all sources with VER-2-3-0-RC1 and
596 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000597
Werner Lemberg17432b52007-01-12 09:28:44 +0000598 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
599 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
600 version number to 2.3.0.
601
602 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
603 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000604
605 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000606 include/freetype/ftlcdfil.h: Update reference documentation with
607 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000608
Werner Lemberg17432b52007-01-12 09:28:44 +0000609 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
610 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000611
Werner Lembergbf02d392007-01-10 07:07:37 +00006122007-01-10 Derek Clegg <dclegg@apple.com>
613
614 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
615 values.
616
David Turnerf48b60e2007-01-08 15:15:32 +00006172007-01-08 David Turner <david@freetype.org>
618
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000619 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000620
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000621 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
622 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000623 corresponding to a given character pixel size.
624
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000625 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
626 `gasp' table, in order to avoid potential problems with later
627 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000628
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000629 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
630 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000631
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000632 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
633 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
634 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
635 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000636
Werner Lemberge6b6f372007-01-07 00:06:47 +00006372007-01-07 Werner Lemberg <wl@gnu.org>
638
Werner Lembergb8004d22007-01-07 09:13:38 +0000639 * src/cid/cidparse.c (cid_parser_new): Improve error message for
640 Type 11 fonts.
641 Scan for `/sfnts' token.
642
6432007-01-07 Werner Lemberg <wl@gnu.org>
644
645 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000646
Werner Lembergbe5f7972007-01-06 07:51:48 +00006472007-01-06 Werner Lemberg <wl@gnu.org>
648
649 * src/cff/cffload.c (cff_index_init): Remove unused variable.
650 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
651
David Turnera8cf42b2007-01-04 16:46:46 +00006522007-01-04 David Turner <david@freetype.org>
653
Werner Lembergf6294392007-01-06 07:47:45 +0000654 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
655 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000656
Werner Lembergf6294392007-01-06 07:47:45 +0000657
658 Do not allocate interpreter-specific tables in memory if we are not
659 going to load glyphs with the bytecode interpreter anyway.
660
661 * src/truetype/ttgload.c (tt_loader_init): Load execution context
662 only if glyph is hinted.
663 Updated.
664 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
665 and `cvs_ready'.
666 Add `tt_size_ready_bytecode' declaration.
667 * src/truetype/ttobjs.c (tt_size_done_bytecode,
668 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
669 (tt_size_init): Move most code into `tt_size_init_bytecode'.
670 (tt_size_done): Move most code into `tt_size_done_bytecode'.
671 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000672
David Turner91a34022007-01-05 14:47:08 +0000673
Werner Lembergf6294392007-01-06 07:47:45 +0000674 Don't extract the metrics table from the SFNT font file. Instead,
675 reparse it on each glyph load. The runtime difference is not
676 noticeable, and it can save a lot of heap memory when memory-mapped
677 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000678
Werner Lembergf6294392007-01-06 07:47:45 +0000679 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
680 `horz_metrics_offset' and `vert_metrics_ofset'.
681 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
682 Updated.
683
684
685 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
686
687
688 Do not load the CFF index offsets into memory, since this wastes a
689 *lot* of heap memory with large Asian CFF fonts. There is no
690 significant performance loss.
691
692 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
693 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
694 `data_size'.
695 (CFF_CharsetRec): Add field `num_glyphs'.
696
697 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
698 cff_charset_cid_to_gindex): New functions.
699 (cff_new_index): Renamed to...
700 (cff_index_init): This. Update all callers.
701 Updated -- some code has been moved to `cff_index_load_offsets'.
702 (cff_done_index): Renamed to...
703 (cff_index_done): This. Update all callers.
704 (cff_index_get_pointers, cff_index_access_element): Updated to use
705 stream offsets.
706 (cff_charset_compute_cids): Set `num_glyphs' field.
707 (cff_encoding_load): Updated.
708
709 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000710
7112007-01-04 David Turner <david@freetype.org>
712
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000713 * docs/INSTALL.UNIX: Simplify some parts, add reference to
714 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000715
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000716 * README.CVS: Add common problem description and solution
717 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000718
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000719 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000720
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000721 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000722
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000723 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000724
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000725 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
726 (TWorker): This.
727 Remove `count_table' and `memory'.
728 Make `grays' a pointer.
729 (TRaster): New structure.
730 (count_table): New static array.
731 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
732 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
733 ft_black_set_mode, ft_black_render): Updated.
734 (ft_black_init): Don't initialize `count_table'.
735 (ft_black_reset): Use the render pool. This saves about 6KB of
736 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000737
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000738 * src/smooth/ftgrays.c (TRaster): Replaced with...
739 (TWorker): This.
740 Remove `memory'.
741 (TRaster): New structure.
742
743 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
744 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
745 gray_render_span, gray_raster_render): Updated.
746 (gray_raster_reset): Use the render pool. This saves about 6KB of
747 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000748
David Turner8a6c44e2007-01-04 17:03:11 +0000749 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
750 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000751 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
752 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
753 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000754
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000755 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
756 Remove a typo that results in no hinting and a memory leak with some
757 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000758
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000759 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000760 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000761 CFF_Faces in it. We need to close all faces before destroying the
762 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000763
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007642007-01-02 Werner Lemberg <wl@gnu.org>
765
766 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
767 Remove compiler warning.
768
David Turner9207e002007-01-02 16:58:13 +00007692007-01-02 David Turner <david@freetype.org>
770
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000771 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000772
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007732006-12-31 Masatake YAMATO <jet@gyve.org>
774
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000775 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
776 function.
777 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000778 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000779 `gxv_kern_subtable_fmt0_pairs_validate'.
780
David Turner115b4422006-12-22 11:37:05 +00007812006-12-22 David Turner <david@freetype.org>
782
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000783 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
784 warnings.
David Turner115b4422006-12-22 11:37:05 +0000785
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000786 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
787 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000788
Werner Lemberg4755bf72006-12-16 08:58:44 +00007892006-12-16 Anders Kaseorg <anders@kaseorg.com>
790
791 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
792 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
793
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007942006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
795
Werner Lemberg9b774e22007-01-16 06:11:27 +0000796 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000797 sync with the modification by Jens Claudius on 2006-08-22; cf.
798 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 +0000799
8002006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
801
802 * src/base/ftmac.c: Specialized for Mac OS X only.
803 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
804 * builds/unix/configure.raw: Ditto. When explicit switches for
805 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
806 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
807
8082006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
809
810 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
811 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
812 instead of src/base/ftmac.c
813 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
814 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
815 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
816 that cannot be built at present.
817
8182006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
819
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000820 * src/base/ftobjs.c: Improvement of resource fork handler for
821 POSIX, cf.
822 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000823 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
824 format or .dfont, to simulate the face index number counted by ftmac.c.
825 (IsMacResource): Return the number of scalable faces correctly.
826
Werner Lembergec5b4502006-12-10 07:51:38 +00008272006-12-10 Werner Lemberg <wl@gnu.org>
828
829 * builds/toplevel.mk (version): Protect against `distclean' target.
830
Werner Lembergb26b3142006-12-09 20:01:43 +00008312006-12-09 Werner Lemberg <wl@gnu.org>
832
833 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
834 or `type'.
835
836 * builds/freetype.mk (version): Extracted from freetype.h, using
837 GNU make's built-in string functions.
838 (refdoc): Use $(version) instead of static version number.
839
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008402006-12-08 Werner Lemberg <wl@gnu.org>
841
842 * builds/toplevel.mk (dist): Extract version number from freetype.h.
843
Werner Lemberg15c29502006-12-09 07:29:54 +00008442006-12-08 Vladimir Volovich <vvv@vsu.ru>
845
846 * src/tools/apinames (State): Remove final comma in structure -- xlc
847 v5 under AIX 4.3 doesn't like this.
848
David Turnerdbf3b432006-12-07 21:18:09 +00008492006-12-07 David Turner <david@freetype.org>
850
Werner Lemberg256a3512006-12-08 06:49:33 +0000851 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
852 to the spacing of auto-fitted glyphs. This only impacts rare
853 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000854
Werner Lemberg11171312006-12-03 09:43:40 +00008552006-12-03 Werner Lemberg <wl@gnu.org>
856
857 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
858
Werner Lemberg960ba592006-12-01 08:20:47 +00008592006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000860
Werner Lemberg960ba592006-12-01 08:20:47 +0000861 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
862 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
863 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000864
David Turner80658e52006-11-28 08:09:20 +0000865
Werner Lemberg960ba592006-12-01 08:20:47 +0000866 * include/freetype/ftxf86.h: Fix and extend comment so that it
867 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000868
Werner Lemberg960ba592006-12-01 08:20:47 +0000869 * include/freetype/ftchapters.h: Add `font_format' section.
870
871
872 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
873 to TOC in index page.
874
8752006-11-28 David Turner <david@freetype.org>
876
877 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
878 trying to render into a zero-width/height bitmap, not an error code.
879
880 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
881
882 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
883 ones instead.
884
885 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
886 variable.
David Turner80658e52006-11-28 08:09:20 +0000887
Werner Lemberg8636c292006-11-26 22:28:13 +00008882006-11-26 Pierre Hanser <hanser@club-internet.fr>
889
890 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
891
Werner Lemberg960ba592006-12-01 08:20:47 +00008922006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000893
Werner Lemberg960ba592006-12-01 08:20:47 +0000894 * src/autofit/afhints.c (af_glyph_hints_dump_points,
895 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
896 Add stubs to link the `ftgrid' test program when debugging is
897 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000898
Werner Lemberg960ba592006-12-01 08:20:47 +00008992006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000900
901 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000902 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
903
904 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
905 Emit more sensible information.
906
907 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
908
909 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
910 rounding of blue values.
911 (af_latin_hints_compute_segments): Hint segment heights.
912 (af_latin_hints_link_segments): Reduce `len_score' value.
913 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
914 value and use `height' member for comparisons.
915 (af_latin_hint_edges): Extend logging message.
916 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000917
Werner Lemberg91959bf2006-11-22 10:36:55 +00009182006-11-22 Werner Lemberg <wl@gnu.org>
919
920 Fix Savannah bug #15553.
921
922 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
923 program after a change from mono to grayscaling (and vice versa).
924 Use correct constant for comparison to get `exec->grayscale'.
925
Werner Lemberg913a3652006-11-19 09:19:17 +00009262006-11-18 Werner Lemberg <wl@gnu.org>
927
928 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000929 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000930 This patch fixes Savannah bug #18301.
931
932 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
933 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
934 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
935 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
936 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
937 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
938 (FNT_Load_Glyph): Check validity of `glyph_index'.
939
David Turner7bab6ae2006-11-13 11:25:06 +00009402006-11-13 David Turner <david@freetype.org>
941
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000942 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
943 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000944
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000945 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
946 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
947 when building the library to change the default LCD filter to be
948 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000949
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000950 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000951
David Turner8765c712006-11-10 16:49:42 +00009522006-11-10 David Turner <david@freetype.org>
953
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000954 * src/smooth/ftsmooth.c: API change for the LCD
955 filter. The FT_LcdFilter value is an enumeration describing which
956 filter to apply, with new values FT_LCD_FILTER_LIGHT and
957 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
958 algorithm which produces strong color fringes for everything
959 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000960
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000961 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
962 second parameter to an enum type.
963
964 * src/base/ftlcdfil.c (USE_LEGACY): Define.
965 (_ft_lcd_filter): Rename to...
966 (_ft_lcd_filter_fir): This.
967 Update parameters.
968 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
969 (FT_Library_Set_LcdFilter): Update parameters.
970 Handle new filter modes.
971
972 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
973 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
974 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
975 callback and update other fields.
976
977 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
978 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
979 Other minor improvements.
980
981 * src/autofit/aflatin.c: Various tiny improvements that drastically
982 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
983 (af_latin_hints_compute_edges): Fix typo.
984 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000985
David Turner4e9cc3c2006-11-09 16:31:52 +00009862006-11-09 David Turner <david@freetype.org>
987
Werner Lemberg49c77a82006-11-09 21:51:57 +0000988 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
989 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000990
Werner Lemberg5e430892006-11-07 09:35:03 +00009912006-11-07 Zhe Su <james.su@gmail.com>
992
993 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
994 also.
995
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009962006-11-03 Werner Lemberg <wl@gnu.org>
997
998 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
999
David Turner40604742006-11-02 16:37:35 +000010002006-11-02 David Turner <david@freetype.org>
1001
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001002 Add a few tweaks to better handle serif fonts.
1003 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001004
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001005 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1006 segments that are less than 1.5 pixels high. This gets rid of
1007 *many* corner cases with serifs.
1008 (af_latin_align_linked_edge): Add logging message.
1009 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1010 Add logging messages.
1011 Handle AF_EDGE_FLAG flag specially.
1012
1013 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1014 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1015
1016 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1017 Update external declarations.
1018 (af_corner_orientation, af_corner_is_flat): Replaced by...
1019
1020 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1021 ft_corner_is_flat): These declarations.
1022
1023 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1024 Comment out. Replaced by...
1025
1026 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1027 These functions. Update all callers.
1028 (FT_Add64) [!FT_LONG64]: Simplify.
1029
1030 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1031 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1032 production of garbage by missing lots of segments.
1033
1034 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1035
1036 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1037 [AF_DEBUG]: Set _af_debug_hints.
1038
1039
1040 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1041 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1042 and ft_corner_orientation.
1043
1044
1045 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001046
Werner Lemberge88c5262006-10-24 05:46:26 +000010472006-10-24 Werner Lemberg <wl@gnu.org>
1048
1049 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1050
1051 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1052 as argument.
1053
David Turnera1861392006-10-23 16:00:59 +000010542006-10-23 Zhe Su <zsu@novell.com>
1055
Werner Lemberg715e96e2006-10-24 05:28:45 +00001056 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1057 better deal with broken Asian fonts with strange glyphs, having
1058 self-intersections and other peculiarities. The used algorithm is
1059 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001060
David Turnere140f142006-10-23 08:56:57 +000010612006-10-23 David Turner <david@freetype.org>
1062
Werner Lemberg715e96e2006-10-24 05:28:45 +00001063 Speed up the CFF font loader. With some large CFF fonts,
1064 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001065
Werner Lemberg715e96e2006-10-24 05:28:45 +00001066 * src/cff/cffload.c (cff_get_offset): Removed.
1067 (cff_new_index): Inline functionality of `cff_get_offset'.
1068 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1069 (cff_charset_done): Call `cff_charset_free_cids'.
1070 (cff_charset_load): Call `cff_charset_compute_cids'.
1071 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1072
1073 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1074 with FT_NEXT_XXX.
1075
1076
1077 Speed up the Postscript hinter, with more than 100% speed increase
1078 on my machine.
1079
1080 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1081 psh_corner_orientation): New functions.
1082 (psh_glyph_compute_inflections): Merge loops for efficiency.
1083 Use `psh_corner_orientation'.
1084 (psh_glyph_init): Use `psh_corner_is_flat'.
1085 (psh_hint_table_find_strong_point): Renamed to...
1086 (psh_hint_table_find_strong_points): This.
1087 Rewrite, adding argument to handle all points at once.
1088 Update all callers.
1089 (PSH_MAX_STRONG_INTERNAL): New macro.
1090 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001091
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010922006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1093
1094 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001095 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001096
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010972006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1098
1099 * docs/INSTALL.CROSS: New document file for cross-building.
1100
1101 * builds/unix/configure.raw: Preliminary cross-building support.
1102 Find native C compiler and pass it by CC_BUILD, and
1103 find suffix for native executable and pass it by EXEEXT_BUILD.
1104 Also suffix for target executable is passed by EXEEXT.
1105
Werner Lembergb9e6d692006-10-15 08:58:40 +00001106 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1107 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001108 CC_BUILD and EXEEXT_BUILD.
1109
Werner Lembergb9e6d692006-10-15 08:58:40 +00001110 * builds/exports.mk (APINAMES_EXE): Change the extension for
1111 apinames from the suffix for target (E) to that for building host
1112 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001113
Werner Lemberg82a07e92006-10-12 06:20:44 +000011142006-10-12 Werner Lemberg <wl@gnu.org>
1115
1116 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1117 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1118 which reference those files.
1119
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011202006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1121
Werner Lembergb9e6d692006-10-15 08:58:40 +00001122 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1123 embedded in freetype2.pc and freetype-config. Use it to record
1124 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001125
1126 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1127
1128 * builds/unix/freetype-config.in: Ditto.
1129
Werner Lemberg28e17d92006-10-11 17:27:47 +000011302006-10-11 Werner Lemberg <wl@gnu.org>
1131
1132 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1133 development.
1134
Jens Claudius336d2292006-10-03 08:53:37 +000011352006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1136
1137 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1138 argument to ft_setjmp.
1139
1140 * include/freetype/internal/ftvalid.h: Add comment that
1141 ft_validator_run must not be used.
1142
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011432006-10-01 Werner Lemberg <wl@gnu.org>
1144
1145 * src/base/ftbase.c: Undo change from 2006-09-30.
1146
1147 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1148
11492006-09-30 David Turner <david@freetype.org>
1150
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001151 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1152 s/unpatented_hinting/ignore_unpatented_hinter/.
1153 Update all callers.
1154
1155 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1156 auto-hinting shall be used or not.
1157
1158 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001159
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011602006-09-30 Werner Lemberg <wl@gnu.org>
1161
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001162 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1163 in use).
1164
1165 * src/base/ftbase.c: Include `ftlcdfil.c'.
1166
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011672006-09-29 Werner Lemberg <wl@gnu.org>
1168
1169 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1170 overlapping segments. Bug reported by Stefan Koch.
1171
David Turnerad830712006-09-27 16:20:59 +000011722006-09-28 David Turner <david@freetype.org>
1173
Werner Lemberg2c002e12006-09-29 21:31:53 +00001174 Fix a bug in the automatic unpatented hinting support which prevents
1175 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001176
Werner Lemberg2c002e12006-09-29 21:31:53 +00001177 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1178 s/force_autohint/unpatented_hinting/. Update all callers.
1179
1180 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1181
1182 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001183
David Turner8a317cf2006-09-27 07:52:48 +000011842006-09-27 David Turner <david@freetype.org>
1185
Werner Lemberg2c002e12006-09-29 21:31:53 +00001186 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001187
David Turner8a317cf2006-09-27 07:52:48 +00001188
David Turnere140f142006-10-23 08:56:57 +00001189 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001190 In a default build, the function `FT_Library_SetLcdFilter' returns
1191 `FT_Err_Unimplemented_Feature'; you need to #define
1192 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1193 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001194
Werner Lemberg2c002e12006-09-29 21:31:53 +00001195 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001196
Werner Lemberg2c002e12006-09-29 21:31:53 +00001197 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1198 typedef.
1199 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1200 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001201
Werner Lemberg2c002e12006-09-29 21:31:53 +00001202 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1203 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001204
Werner Lemberg2c002e12006-09-29 21:31:53 +00001205 Handle subpixel rendering.
1206 Simplify function.
1207 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1208 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1209
1210 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1211 pointing to <freetype/ftlcdfil.h>.
1212
1213 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1214 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1215
1216 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001217
Werner Lemberge20df4a2006-09-27 06:29:21 +000012182006-09-26 David Bustin
1219
1220 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1221 correctly. Reported as Savannah bug #17843.
1222
David Turner6f8c6222006-09-26 15:42:44 +000012232006-09-26 David Turner <david@freetype.org>
1224
Werner Lemberg110246c2006-09-26 21:55:44 +00001225 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1226 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1227 horizontal and vertical hinting for the purpose of debugging the
1228 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001229
Werner Lemberg110246c2006-09-26 21:55:44 +00001230 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1231 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001232
Werner Lemberg110246c2006-09-26 21:55:44 +00001233 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1234
1235 * include/freetype/config/ftoption.h, devel/ftoption.h
1236 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1237 we want to compile LCD-optimized rendering code (à la ClearType) or
1238 not. The macro *must* be disabled in default builds of the library
1239 for patent reasons.
1240
1241 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1242 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1243 isn't defined at compile time. This only changes the content of the
1244 rendered glyph to match the one of normal gray-level rendering,
1245 hence clients should not need to be modified.
1246
1247 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001248
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012492006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1250
1251 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1252 LWFN fails and both are available.
1253
David Turnerf3050052006-09-11 12:00:32 +000012542006-09-11 David Turner <david@freetype.org>
1255
Werner Lembergf9644552006-09-12 13:48:10 +00001256 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1257 report their English names through an Apple Roman
1258 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001259
Werner Lembergf9644552006-09-12 13:48:10 +00001260 If the font uses another name entry with language_id == English, it
1261 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001262
Werner Lembergf9644552006-09-12 13:48:10 +00001263 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1264 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001265
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012662006-09-05 Werner Lemberg <wl@gnu.org>
1267
1268 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001269 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001270 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1271 `HAN NOM B.ttf').
1272
1273 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1274
David Turner772e55d2006-09-05 09:45:15 +000012752006-09-05 David Turner <david@freetype.org>
1276
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001277 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001278
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001279 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1280 (TRaster): Remove `count_ex' and `count_ey'.
1281 (gray_find_cell): Remove 2nd and 3rd argument.
1282 (gray_alloc_cell): Merged with `gray_find_cell'.
1283 (gray_record_cell): Simplify.
1284 (gray_set_cell): Rewrite.
1285 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1286 (gray_render_span): Don't use FT_MEM_SET for small values.
1287 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1288 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1289 bitmap scanline.
1290 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001291
David Turneraa557a92006-09-04 16:42:44 +000012922006-09-04 David Turner <david@freetype.org>
1293
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001294 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1295 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001296
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012972006-09-03 Werner Lemberg <wl@gnu.org>
1298
1299 * devel/ftoption.h: Synchronize with
1300 include/freetype/config/ftoption.h.
1301
1302 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1303 variable declaration.
1304 (gray_convert_glyph): Fix compiler warnings.
1305
David Turner6d79f212006-09-01 14:09:35 +000013062006-09-01 David Turner <david@freetype.org>
1307
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001308 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1309 to recognize a few fonts that require the automatic unpatented
1310 loader.
David Turnerbd502952006-09-01 19:05:24 +00001311
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001312 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1313 rasterizer. The speed improvement is between 15% and 25%, depending
1314 on the font data.
1315
1316 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1317 (TCell): Redefine.
1318 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1319 (gray_init_cells): Updated.
1320 (gray_find_cell, gray_alloc_cell): New functions.
1321 (gray_record_cell): Rewritten to use `gray_find_cell' and
1322 `gray_alloc_cell'.
1323 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1324 QSORT_THRESHOLD):
1325 Removed.
1326 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1327 gray_dump_cells): Removed.
1328 (gray_sweep): Rewritten.
1329 (gray_convert_glyph): Rewrite code which used one of the sorting
1330 functions.
1331 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001332
Werner Lembergd898aed2006-08-29 09:50:34 +000013332006-08-29 Dr. Werner Fink <werner@suse.de>
1334
1335 * configure: Make it possible to handle configure options which
1336 have strings containing spaces.
1337
13382006-08-27 David Turner <david@freetype.org>
1339
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001340 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1341 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1342 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1343
1344 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1345 src/truetype/truetype.c, src/truetype/ttdriver.c,
1346 src/truetype/ttgload.c, src/truetype/ttgload.h,
1347 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1348 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1349 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1350
1351 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1352 member `force_autohint'.
1353
1354 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1355
1356 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1357 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001358
Jens Claudiusa787f452006-08-27 11:26:18 +000013592006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1360
1361 Fix miscellaneous compiler warnings.
1362
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001363 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1364 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001365
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001366 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1367 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1368 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001369
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001370 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1371 volatileness of argument to ft_longjmp. Spotted by Werner
1372 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001373
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001374 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1375 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001376
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001377 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1378 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001379
Werner Lembergc4c35b72006-08-27 08:03:46 +000013802006-08-27 Werner Lemberg <wl@gnu.org>
1381
1382 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1383 Reported by Jens.
1384
Jens Claudius088e44e2006-08-22 14:24:30 +000013852006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001386
Jens Claudius088e44e2006-08-22 14:24:30 +00001387 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001388 about addresses of volatile objects passed as function arguments as
1389 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001390
Werner Lembergc4c35b72006-08-27 08:03:46 +00001391 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1392 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001393
1394 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1395 argument `table' a pointer to a volatile object.
1396
1397 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1398 argument `table' a pointer to a volatile object.
1399
Jens Claudius2652bd52006-08-18 17:20:37 +000014002006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1401
1402 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1403 variable `_sfnt' as volatile since it must keep its value across
1404 a call to ft_setjmp.
1405 (gxv_validate): Same for local variables `memory' and `valid'.
1406 (classic_kern_validate): Same for local variables `memory',
1407 `ckern', and `valid'.
1408
1409 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1410 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1411 `jstf', and 'valid'.
1412
1413 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1414 local variable `cmap'.
1415
David Turner9fbfc6a2006-08-16 09:11:31 +000014162006-08-16 David Turner <david@freetype.org>
1417
Werner Lemberg12342992006-08-19 11:18:09 +00001418 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1419 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001420
Werner Lemberg12342992006-08-19 11:18:09 +00001421 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1422 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001423
David Turner33f5f242006-08-16 16:50:55 +00001424
Werner Lemberg12342992006-08-19 11:18:09 +00001425 Improvements to native TrueType hinting. This is a first try,
1426 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1427
1428 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1429 `extra_points2'.
1430
1431 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1432 `orus'.
1433
1434 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1435 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1436 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1437 handle `extra_points2'.
1438
1439 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1440 Remove compiler warning.
1441 (cur_to_arg): Remove macro.
1442 (TT_Hint_Glyph): Updated.
1443 (TT_Process_Simple_Glyph): Handle `orus'.
1444
1445 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1446 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1447 (LOC_Ins_IUP): Renamed to...
1448 (IUP_WorkerRec): This.
1449 Add `orus' member.
1450 (Shift): Renamed to...
1451 (_iup_worker_shift): This.
1452 Updated.
1453 (Interp): Renamed to...
1454 (_iup_worker_interpolate): This.
1455 Updated to handle `orus'.
1456 (Ins_IUP): Updated.
1457
1458 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1459 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001460
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014612006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1462
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001463 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001464 build ftvalid in ft2demos. This has been inadvertedly changed
1465 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001466
14672006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1468
Werner Lemberg12342992006-08-19 11:18:09 +00001469 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1470 Jens:
1471 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001472
Werner Lemberg12342992006-08-19 11:18:09 +00001473 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1474 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001475
1476 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1477
Jens Claudius9950adc2006-08-13 12:14:36 +000014782006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1479
Werner Lemberg12342992006-08-19 11:18:09 +00001480 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1481 T1_TOKEN_TYPE_KEY.
1482 (T1_FieldRec): Add `dict'.
1483 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1484 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1485 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001486
Werner Lemberg12342992006-08-19 11:18:09 +00001487 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1488 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001489
1490 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1491
1492 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001493 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1494 not T1_TOKEN_TYPE_ANY.
1495 (ps_parser_load_field): Make sure a token that should be a string or
1496 name is really a string or name.
1497 Avoid memory leak if a keyword has been already encountered and its
1498 value is overwritten.
1499 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1500 T1_FIELD_XXX.
1501 (parse_dict): Ignore keywords that occur in the wrong dictionary
1502 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001503
Werner Lemberg12342992006-08-19 11:18:09 +00001504 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1505 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001506
Werner Lemberg12342992006-08-19 11:18:09 +00001507 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1508 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001509
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000015102006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1511
1512 Move creation of field `buildchar' of T1_DecoderRec out of
1513 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1514 of it.
1515
1516 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1517 and `T1_Compute_Max_Advance'.
1518
1519 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1520 Remove field `face', add `len_buildchar'.
1521
1522 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1523 field `buildchar'.
1524
1525 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1526 finisher for T1_Decoder.
1527 (cid_slot_load_glyph): Do not ignore failure when initializing the
1528 T1_Decoder.
1529
1530 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1531 Updated.
1532 (t1_decoder_init): Remove initialization of fields `buildchar' and
1533 `len_buildchar'.
1534 (t1_decoder_done): Remove deallocation of field `buildchar'.
1535
1536 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1537 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1538 T1_Decoder.
1539 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1540 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1541 case of error.
1542
1543 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1544 `buildchar' of T1_FaceRec.
1545
1546 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1547 `buildchar' of T1_FaceRec.
1548
Werner Lemberg1a380e02006-07-14 18:28:08 +000015492006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1550
1551 * freetype2/include/freetype/internal/psaux.h: New macros
1552 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1553 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1554 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1555 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1556 (T1_DecoderRec): New fields `buildchar' and `face'.
1557 (IS_PS_TOKEN): New macro.
1558
1559 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1560 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1561
1562 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1563 `default_design_vector' and `num_default_design_vector'.
1564
1565 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1566 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1567 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1568
1569 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1570 `token' argument to be NULL if we want only to count the number of
1571 tokens.
1572 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1573 want to skip the array.
1574 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1575 want to skip the array.
1576
1577 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1578 support for (partially commented out) othersubrs 19-25, 27, and 28.
1579 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1580 (t1_decoder_done): Release new field `buildchar'.
1581
1582 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1583 functions.
1584 (t1_keywords): Register them.
1585 (t1_allocate_blend): Updated.
1586 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1587 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1588 (parse_dict): Remove `keyword_flags' argument.
1589 Use new macro IS_PS_TOKEN.
1590 Changed function so that later PostScript definitions override
1591 earlier ones.
1592 (t1_init_loader): Initialize new field `keywords_encountered'.
1593 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1594 `len_buildchar'.
1595 Remove `keywords_flags'.
1596
1597 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1598 `keywords_encountered'.
1599 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1600
1601 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1602 New entries for parsing /NDV, /CDV, and /DesignVector.
1603
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000016042006-07-07 Werner Lemberg <wl@gnu.org>
1605
1606 Add many checks to protect against malformed PCF files.
1607
1608 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1609 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1610
1611 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1612 data and check that tables don't overlap (using a simple
1613 bubblesort).
1614 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1615 New macros which give the size of data structures in the data
1616 stream.
1617 (pcf_get_properties): Use rough estimates to get array size limits.
1618 Assign `face->nprops' and `face->properties' earlier so that a call
1619 to PCF_Face_Done can do the clean-up in case of error.
1620 Protect against invalid string offsets.
1621 (pcf_get_metrics): Clean up code.
1622 Adjust tracing message levels.
1623 Use rough estimate to get array size limit.
1624 (pcf_get_bitmaps): Clean up code.
1625 Adjust tracing message levels.
1626 Use rough estimates to get offset limits.
1627 (pcf_get_encodings): Adjust tracing message level.
1628 (pcf_get_accel): Clean up code.
1629
Werner Lemberg8eb05252006-06-27 06:20:01 +000016302006-06-26 Werner Lemberg <wl@gnu.org>
1631
1632 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1633 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1634
Werner Lemberg24703f82006-06-26 19:12:51 +000016352006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1636
1637 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1638 (t1_decoder_parse_charstrings): Operator with
1639 opcode 15 pops its two arguments.
1640 Handle the case where the pops of an othersubr may be part of a
1641 subroutine.
1642 Handle unknown othersubrs gracefully: count their operands and let
1643 the following pop operators push the operands as the results onto
1644 the Type1 stack.
1645 Improve handling of setcurrentpoint opcode.
1646
Werner Lembergc011f4c2006-06-26 09:40:00 +000016472006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1648
1649 The Type 1 parser now skips over top-level procedures as required
1650 for a `Simplified Parser'. This makes the parser more robust as it
1651 doesn't poke around in PostScript code. Additionally, it makes the
1652 FontDirectory hackery in src/type1/t1load.c unnecessary.
1653
1654 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1655 (skip_literal_string): Add FT_Error as return value.
1656 Handle escapes better.
1657 (skip_string): Add FT_Error as return value.
1658 Don't set `parser->error' but return error code directly.
1659 (skip_procedure): New function.
1660 (ps_parser_skip_PS_token): Handle procedures.
1661 Update code.
1662 (ps_parser_to_token): Update code.
1663 (ps_parser_load_field_table): Handle bbox entries also.
1664
1665 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1666 Add commented-out code for synthetic fonts.
1667
Werner Lemberga2da05c2006-06-25 06:27:27 +000016682006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1669
1670 Fix two hinting bugs as reported in
1671 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1672
1673 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1674 `first_point' member.
1675
1676 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1677 `first_point'.
1678 (TT_Process_Composite_Glyph): Always untouch points.
1679
1680 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1681 `first_point' and `last_point' in case of composite glyphs.
1682 (Ins_IUP): Fix computation of `end_point'.
1683
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016842006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1685
Werner Lembergef3d2c22006-06-25 06:07:14 +00001686 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1687 Mac. The original patch was written by David Sachitano and Lawrence
1688 Coopet, and modified by Sean McBride for MPW compatibility. Only
1689 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001690
Werner Lembergef3d2c22006-06-25 06:07:14 +00001691 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1692 Mac OS X platforms.
1693 (OS_INLINE): Undefine before definition.
1694 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1695 FontAssociation table in FOND resource.
1696 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1697 and fontSize at each entry of FontAssociation table in FOND
1698 resource.
1699 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1700 ffStylOff of FamilyRecord header of FOND resource, the header,
1701 fontSize, fontID at each entry of FontAssociation table, and
1702 StyleMapping table.
1703 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001704
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000017052006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1706
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001707 Public API of TrueTypeGX, OpenType, and classic kern table validator
1708 should return `FT_Err_Unimplemented_Feature' if validation service
1709 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001710 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001711 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1712
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001713 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1714 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1715 unavailable.
1716 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1717 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001718
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001719 * src/base/ftotval.c (FT_OpenType_Validate): Return
1720 FT_Err_Unimplemented_Feature if OpenType validation service is
1721 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001722
Werner Lembergb10e45a2006-06-08 07:32:56 +000017232006-06-08 Werner Lemberg <wl@gnu.org>
1724
1725 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1726 errors.
1727
David Turner5f1f7502006-06-07 05:11:50 +000017282006-06-07 David Turner <david@freetype.org>
1729
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001730 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1731 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1732 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001733
David Turner457b4a82006-06-06 08:14:14 +000017342006-06-06 David Turner <david@freetype.org>
1735
Werner Lemberg4836f952006-06-06 12:54:08 +00001736 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001737
Werner Lemberg4836f952006-06-06 12:54:08 +00001738 We change `ps_unicodes_init' so that it also takes a
1739 `free_glyph_name' callback to release the glyph names returned by
1740 `get_glyph_name'
1741
1742 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1743 Renamed to ...
1744 (PS_GetGlyphNameFunc): This.
1745 (PS_FreeGlyphNameFunc): New typedef.
1746 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1747
1748 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1749 argument.
1750 (cff_sid_free_glyph_name): New function.
1751 (cff_cmap_unicode_init): Updated.
1752
1753 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1754
1755 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1756 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001757
1758
David Turner09717352006-06-04 14:33:08 +000017592006-06-04 David Turner <david@freetype.org>
1760
Werner Lembergd724f202006-06-04 15:17:41 +00001761 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1762 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001763 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001764
Werner Lembergd724f202006-06-04 15:17:41 +00001765 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1766 of `face->num_glyphs' which missed the last glyph, due to
1767 the offset-by-1 computation, since the PFR format doesn't
1768 guarantee that glyph index 0 corresponds to the `missing
1769 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001770
Werner Lemberg33779662006-05-26 06:30:05 +000017712006-05-25 Werner Lemberg <wl@gnu.org>
1772
1773 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1774 `-no-undefined'. Reported by Christian Biesinger.
1775
Werner Lemberg24773d62006-05-20 08:53:13 +000017762006-05-19 Brian Weed <bw@imaginengine.com>
1777
1778 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1779 have debug information, and debug libraries use `C7 compatible'
1780 debug info.
1781
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017822006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1783
Werner Lemberga6523a62006-05-20 08:47:01 +00001784 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001785 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001786
Werner Lemberga6523a62006-05-20 08:47:01 +00001787 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1788 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001789
1790 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001791 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001792
17932006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1794
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001795 * build/unix/configure.raw: Add a fallback to disable Carbon
1796 dependency, if configured with no options on Mac OS X.
1797
17982006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1799
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001800 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001801 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001802 the second part of Savannah bug #16590.
1803
Werner Lemberg545c4e52006-05-17 22:55:04 +000018042006-05-18 Werner Lemberg <wl@gnu.org>
1805
1806 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1807 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1808
David Turnerdc3ff312006-05-17 12:59:35 +000018092006-05-17 David Turner <david@freetype.org>
1810
Werner Lemberg545c4e52006-05-17 22:55:04 +00001811 This is a major patch used to drastically improve the performance of
1812 loading glyphs. This both speeds up loading the glyph vectors
1813 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001814
Werner Lemberg545c4e52006-05-17 22:55:04 +00001815 We now use inline assembler code with GCC to implement `FT_MulFix',
1816 which is probably the most important function related to the
1817 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001818
Werner Lemberg545c4e52006-05-17 22:55:04 +00001819 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001820
1821
Werner Lemberg545c4e52006-05-17 22:55:04 +00001822 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1823 `cursor' and `limit'.
1824
1825 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1826 New functions.
1827 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1828 [TEST]: Remove.
1829
1830 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1831 code.
1832
1833 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1834 `FT_ZERO'
1835 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1836 (af_glyph_hints_reload: Rewrite recognition of weak points.
1837
1838 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1839 constant values out of the loops.
1840
1841 * src/autofit/aftypes.h: Updated.
1842
1843 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1844
1845 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1846 product to get orientation.
1847
1848 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1849 (FT_Stream_OpenGzip): Use it to handle small files directly in
1850 memory.
1851
1852 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1853 Improve performance.
1854
1855 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1856 `limit'.
1857
1858 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1859 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1860 exceedingly large values of number of contours. Speed up by
1861 reducing the number of loops.
1862
1863 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1864
1865
1866 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1867 used to detect rogue clients from 4 to 16. This is to prevent some
1868 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1869 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001870
Werner Lembergde2d90a2006-05-17 08:54:30 +000018712007-05-17 Werner Lemberg <wl@gnu.org>
1872
1873 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001874 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001875
18762006-05-16 Werner Lemberg <wl@gnu.org>
1877
1878 * docs/PROBLEMS: Updated icl issues.
1879
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001880----------------------------------------------------------------------------
1881
Werner Lemberg42b63b22007-01-21 21:01:33 +00001882Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001883David Turner, Robert Wilhelm, and Werner Lemberg.
1884
1885This file is part of the FreeType project, and may only be used, modified,
1886and distributed under the terms of the FreeType project license,
1887LICENSE.TXT. By continuing to use, modify, or distribute this file you
1888indicate that you have read the license and understand and accept it
1889fully.
1890
1891
1892Local Variables:
1893version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001894coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001895End: