blob: 1cb255f163defde933c309a252034b054143a802 [file] [log] [blame]
Werner Lemberg1b5267d2007-04-28 21:06:15 +000012007-04-28 Victor Stinner <victor.stinner@inl.fr>
2
3 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
4 `cmap'.
5
Werner Lembergcc712a22007-04-27 17:16:50 +000062007-04-27 Werner Lemberg <wl@gnu.org>
7
8 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
9 number of points in contours. Problem reported by Victor Stinner
10 <victor.stinner@haypocalc.com>.
11 (TT_Process_Simple_Glyph): Synchronize variable types.
12
Werner Lemberg45bb18f2007-04-26 06:26:35 +0000132007-04-26 Werner Lemberg <wl@gnu.org>
14
15 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
16 zero in case of error. This fixes Savannah bug #19689.
17
Werner Lembergfcc1f472007-04-10 11:51:50 +0000182007-04-10 Martin Horak <horakm@centrum.cz>
19
20 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
21 Ignore `hhea' table. This fixes Savannah bug #19261.
22
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000232007-04-09 Werner Lemberg <wl@gnu.org>
24
25 * Version 2.3.4 released.
26 =========================
27
28
29 Tag sources with `VER-2-3-4'.
30
31 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
32 version number to 2.3.4.
33
34 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
35 builds/win32/visualc/freetype.dsp,
36 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
37
38 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
39
40 * builds/unix/configure.raw (version_info): Set to 9:15:3.
41
Werner Lembergf4a52a62007-04-09 08:40:11 +0000422007-04-09 Martin Horak <horakm@centrum.cz>
43
44 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
45 memory stream to avoid a crash with the incremental memory
46 interface (Savannah bug #19260).
47
David Turner1dcb4442007-04-06 08:19:04 +0000482007-04-06 David Turner <david@freetype.org>
49
Werner Lembergc81cf612007-04-06 09:28:23 +000050 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
51 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000052
Werner Lemberg9f83e052007-04-05 02:28:23 +0000532007-04-04 Werner Lemberg <wl@gnu.org>
54
55 * Version 2.3.3 released.
56 =========================
57
58
59 Tag sources with `VER-2-3-3'.
60
61 * docs/CHANGES: Mention CVE-2007-1351.
62
David Turner7338ec22007-04-03 14:30:34 +0000632007-04-03 David Turner <david@freetype.org>
64
65 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000066 if one of the resolution values is 0, treat it as if it were the
67 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000068
David Turnere6472c12007-04-02 13:13:54 +0000692007-04-02 David Turner <david@freetype.org>
70
Werner Lemberg94f12272007-04-03 07:19:53 +000071 Add special code to detect `extra-light' fonts and do not snap their
72 stem widths too much to avoid bizarre hinting effects.
73
74 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
75 `extra_light' members.
76
77 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
78 them.
79 (af_latin_metrics_scale_dim): Set `extra_light'.
80 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000081
David Turner3f539692007-03-28 14:53:40 +0000822007-03-28 David Turner <david@freetype.org>
83
Werner Lemberg644b1ad2007-03-28 21:17:11 +000084 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000085 padding.
86
Werner Lemberga08b2172007-03-28 07:17:17 +0000872007-03-28 Werner Lemberg <wl@gnu.org>
88
89 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
90 gracefully.
91 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000092 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000093 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
94 number of code points in Unicode.
95
Werner Lemberg644b1ad2007-03-28 21:17:11 +000096 * builds/win32/visualc/index.html,
97 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +000098 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +000099 s/232/233/.
100
101 * docs/CHANGES: Mention ftdiff.
102
David Turner3b242d32007-03-26 12:03:04 +00001032007-03-26 David Turner <david@freetype.org>
104
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000105 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
106 corresponding code.
107 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000108
Werner Lemberga08b2172007-03-28 07:17:17 +0000109 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000110 computations in order to ignore single-point contours. These are
111 never rasterized and correspond in certain fonts to mark-attach
112 points that are very far from the glyph's real outline, ruining the
113 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000114
Werner Lemberga08b2172007-03-28 07:17:17 +0000115 * src/autofit/afloader.c (af_loader_load_g): In the case of
116 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
117 Otherwise code that uses them will most certainly ruin the fixed
118 advance property.
David Turner23553d62007-03-26 13:37:17 +0000119
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000120 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
121 documentation and bump version number to 2.3.3.
122
123 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
124
125 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000126
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001272007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
128
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000129 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
130 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000131 * builds/vms/ftconfig.h: Ditto.
132 * include/freetype/config/ftconfig.h: Ditto.
133
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001342007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
135
Werner Lemberg14ffe092007-03-22 06:12:43 +0000136 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
137 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000138 proposed by Sean McBride:
139 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
140
1412007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
142
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000143 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
144 setjmp, proposed by Sean McBride:
145 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
146
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001472007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
148
Werner Lembergc9f6c662007-03-21 13:30:14 +0000149 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
150 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
151 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000152
David Turner74c34eb2007-03-18 07:19:31 +00001532007-03-18 David Turner <david@freetype.org>
154
Werner Lembergc9f6c662007-03-21 13:30:14 +0000155 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
156 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000157
Werner Lembergc9f6c662007-03-21 13:30:14 +0000158 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000159
David Turner89020d92007-03-17 17:48:57 +00001602007-03-17 David Turner <david@freetype.org>
161
Werner Lembergc9f6c662007-03-21 13:30:14 +0000162 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
163 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000164
Werner Lemberg25d592a2007-03-09 07:59:35 +00001652007-03-09 Werner Lemberg <wl@gnu.org>
166
167 * Version 2.3.2 released.
168 =========================
169
170
171 Tag sources with `VER-2-3-2'.
172
173 * builds/win32/visualc/index.html,
174 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000175 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000176 s/231/232/.
177
David Turner3a51afa2007-03-08 10:50:38 +00001782007-03-08 David Turner <david@freetype.org>
179
Werner Lemberg25d592a2007-03-09 07:59:35 +0000180 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000181
Werner Lemberg25d592a2007-03-09 07:59:35 +0000182 * builds/unix/configure.raw (version_info): Set to 9:13:3.
183
184 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
185
186 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000187
Werner Lemberg1e259de2007-03-08 15:39:21 +0000188 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
189 function to work properly, over-writing user-provided buffers in
190 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000191
David Turner121cad52007-03-08 16:43:50 +0000192
Werner Lemberg3d92f082007-03-06 11:59:24 +00001932007-03-05 Werner Lemberg <wl@gnu.org>
194
195 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
196 macro for `strstr'.
197
198 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
199 `trick_names', as suggested by Ivan Nincic.
200
David Turner085bc6e2007-03-05 17:40:03 +00002012007-03-05 David Turner <david@freetype.org>
202
Werner Lembergd112cf02007-03-06 12:06:56 +0000203 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
204 case FT_Init_FreeType fails for some reason. Problem reported by
205 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000206
Werner Lembergd112cf02007-03-06 12:06:56 +0000207 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
208 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
209 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
210 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000211
Werner Lembergd112cf02007-03-06 12:06:56 +0000212 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
213 signed values, not unsigned ones. Problem reported by Johannes
214 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000215
David Turner601aefe2007-02-21 16:47:49 +00002162007-02-21 David Turner <david@freetype.org>
217
Werner Lembergde5e6862007-02-25 21:06:43 +0000218 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
219 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000220
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002212007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
222
223 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
224 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
225 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
226
Werner Lemberga0915172007-02-16 08:12:50 +00002272007-02-16 Werner Lemberg <wl@gnu.org>
228
229 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
230 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
231
David Turner2c4500e2007-02-14 15:08:47 +00002322007-02-14 David Turner <david@freetype.org>
233
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000234 It seems that the following changes fix most of the known
235 interpreter problems with my fonts, but more testing is needed,
236 though.
237
238 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
239 (TT_MulFix14): Rewrite.
240 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
241 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000242
Werner Lembergc6a14082007-02-12 22:08:15 +00002432007-02-12 Werner Lemberg <wl@gnu.org>
244
245 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
246 warnings.
247
248 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
249 (bdf_interpret_style): Ditto.
250
David Turnerc0f9c4a2007-02-12 14:55:03 +00002512007-02-12 David Turner <david@freetype.org>
252
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000253 Simplify projection and dual-projection code interface.
254
Werner Lemberg406d25f2007-02-12 22:01:18 +0000255 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
256 FT_Vector' as argument type.
257 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
258 Updated.
259 (CUR_fast_project, CUR_fast_dualproj): New macros.
260 (Project, Dual_Project, Project_x, Project_y): Updated.
261 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
262 macros.
263
264
265 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
266 adjustments for the non-light auto-hinted modes. Gets rid of
267 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000268
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000269 * src/autofit/aflatin.c (af_latin_hints_link_segments,
270 af_latin_hints_compute_edges): Slight optimization of the segment
271 linker and better handling of serif segments to get rid of broken
272 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000273
David Turnerc0f9c4a2007-02-12 14:55:03 +0000274
Werner Lemberg442bfb82007-02-12 21:44:10 +0000275 Introduce new string functions and the corresponding macros to get
276 rid of various uses of strcpy and other `evil' functions, as well as
277 to simplify a few things.
278
279 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
280 ft_mem_strcpyn): New declarations.
281 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
282 macros.
283 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
284 functions.
285
286 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
287 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
288 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
289 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
290 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
291 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
292 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
293 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000294
Werner Lemberg406d25f2007-02-12 22:01:18 +0000295 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
296
Werner Lemberg582067d2007-02-11 15:03:05 +00002972007-02-11 Werner Lemberg <wl@gnu.org>
298
299 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
300 non-spacing glyphs.
301
Werner Lemberg8f474532007-02-07 08:31:01 +00003022007-02-07 Tom Parker <palfrey@tevp.net>
303
304 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
305 pointer.
306
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003072007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
308
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000309 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
310 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000311 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000312 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
313 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
314 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
315 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000316
317 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
318 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000319 * builds/mac/ftmac.c: Ditto.
320
3212007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
322
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000323 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000324 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000325 #include <ftmac.c>.
326
3272007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
328
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000329 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
330 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
331 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
332 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
333 FT_GetFilePath_From_Mac_ATS_Name.
334 * builds/mac/ftmac.c: Ditto.
335
3362007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
337
Werner Lembergdcbb7082007-02-08 08:54:09 +0000338 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000339 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
340 for passing to FT_New_Face_From_FSSpec.
341
3422007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
343
Werner Lembergdcbb7082007-02-08 08:54:09 +0000344 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000345 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000346
347 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
348 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000349 * builds/mac/ftmac.c (OS_INLINE): Ditto.
350
Werner Lemberg313d7772007-02-01 08:10:45 +00003512007-02-01 Werner Lemberg <wl@gnu.org>
352
353 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
354 Explain why applications shouldn't use it. Found by Alexei.
355
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003562007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000357
358 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
359 message.
360
361 * src/gxvalid/gxvmort1.c
362 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
363 message.
364
Werner Lemberg53935932007-01-31 08:53:02 +00003652007-01-31 Werner Lemberg <wl@gnu.org>
366
367
368 * Version 2.3.1 released.
369 =========================
370
371
372 Tag sources with `VER-2-3-1-FINAL'.
373
374 * builds/win32/visualc/freetype.dsp,
375 builds/win32/visualc/freetype.vcproj: s/230/231/.
376 * builds/win32/visualc/index.html: s/221/231/.
377
378 * vms_make.com: Add `ftgasp'.
379
David Turnera7ee6082007-01-30 10:33:53 +00003802007-01-30 David Turner <david@freetype.org>
381
Werner Lemberg53935932007-01-31 08:53:02 +0000382 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000383
Werner Lemberg53935932007-01-31 08:53:02 +0000384 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000385
Werner Lemberg25d592a2007-03-09 07:59:35 +0000386 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000387 s/2.3.0/2.3.1/.
388
389 * builds/unix/configure.raw (version_info): Set to 9:12:3.
390
391
392 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
393 (af_loader_load_g): Disable the warper (i.e., the light hinting
394 improvements) to make a 2.3.1 bugfix release before introducing a
395 new feature. This should give us more time to tune and improve the
396 warper for the next release.
397
398 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000399
David Turnerd91eebd2007-01-26 15:05:41 +00004002007-01-25 David Turner <david@freetype.org>
401
Werner Lembergbf241762007-01-26 16:08:49 +0000402 For light auto-hinting, improve glyph advance widths and resurrect
403 normal/full hinting to its normal quality.
404
405 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
406 and `xmax_delta'.
407 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
408 and `xmax_delta'.
409
410 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
411 preprocessor conditional with if-clause, handling both light and
412 normal mode.
413
414 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
415 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000416
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004172007-01-25 Werner Lemberg <wl@gnu.org>
418
419 * docs/release: Updated -- Savannah uses a new uploading scheme.
420
David Turnera42567b2007-01-25 12:23:37 +00004212007-01-25 David Turner <david@freetype.org>
422
Werner Lembergd7855662007-01-25 13:53:56 +0000423 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000424
Werner Lembergd7855662007-01-25 13:53:56 +0000425 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
426 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
427 functions.
David Turnera42567b2007-01-25 12:23:37 +0000428
Werner Lembergd7855662007-01-25 13:53:56 +0000429 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000430
Werner Lembergb1be9e82007-01-25 11:50:00 +00004312007-01-25 Werner Lemberg <wl@gnu.org>
432
433 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000434 correctly in a sanity check. Since this function is only used to
435 load local and global functions, any charstring that called the last
436 local/global function would fail otherwise. This fixes Savannah bug
437 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000438
439 * docs/CHANGES: Document it.
440
David Turnerb6de8d12007-01-23 15:51:50 +00004412007-01-23 David Turner <david@freetype.org>
442
Werner Lembergb1be9e82007-01-25 11:50:00 +0000443 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
444 prevented compilation when disabling both the unpatented and the
445 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000446
Werner Lembergb1be9e82007-01-25 11:50:00 +0000447
448 Fix and enable the warper to improve `light' hinting mode. This is
449 not necessarily a final version, but it seems to work well.
450
451 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
452 Disable code.
453 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
454 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
455
456 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
457 (af_warper_compute_line_best): Fix array size of `scores'.
458 (af_warper_compute): Better handling of border cases.
459 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
460 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000461
Werner Lemberg011d1112007-01-21 09:36:00 +00004622007-01-21 Werner Lemberg <wl@gnu.org>
463
Werner Lemberg42b63b22007-01-21 21:01:33 +0000464 * ChangeLog: Split off older entries into...
465 * ChangeLog.22: This new file.
466
4672007-01-21 Werner Lemberg <wl@gnu.org>
468
Werner Lemberg555258f2007-01-21 09:46:37 +0000469 * docs/CHANGES: Document SHZ fix.
470
4712007-01-21 George Williams <gww@silcom.com>
472
473 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
474 points.
475
4762007-01-21 Werner Lemberg <wl@gnu.org>
477
Werner Lemberg011d1112007-01-21 09:36:00 +0000478 * src/sfnt/ttmtx.c (tt_face_get_metrics)
479 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
480
Werner Lemberg87a5a432007-01-17 12:44:39 +00004812007-01-17 Werner Lemberg <wl@gnu.org>
482
Werner Lembergb8003292007-01-17 12:56:25 +0000483
484 * Version 2.3.0 released.
485 =========================
486
487
488 Tag sources with `VER-2-3-0-FINAL'.
489
4902007-01-17 Werner Lemberg <wl@gnu.org>
491
Werner Lemberg87a5a432007-01-17 12:44:39 +0000492 * docs/release: Updated.
493
David Turner22122722007-01-16 20:06:44 +00004942007-01-16 David Turner <david@freetype.org>
495
Werner Lemberg87a5a432007-01-17 12:44:39 +0000496 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
497 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
498 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
499 warnings.
David Turner22122722007-01-16 20:06:44 +0000500
Werner Lemberg267e1d72007-01-15 07:48:09 +00005012007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
502
503 * builds/amiga/makefile, builds/amiga/makefile.os4,
504 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
505
506 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
507
Werner Lemberg8c4120d2007-01-15 06:42:40 +00005082007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
509
510 Fix various compiler warnings.
511
512 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
513 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
514 s/index/strike_index/.
515 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
516
517 * src/gxvalid/gxvmorx5.c
518 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
519
520 * src/truetype/ttinterp.c (Compute_Point_Displacement),
521 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
522 uninitialized variables.
523
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005242007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
525
526 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
527
Werner Lemberg281c1482007-01-13 22:50:51 +00005282007-01-13 Werner Lemberg <wl@gnu.org>
529
530 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
531 versions up to 0x3FF without complaining.
532
Werner Lembergac250b22007-01-13 14:01:36 +00005332007-01-13 Derek Clegg <dclegg@apple.com>
534
535 Add FT_Get_PS_Font_Info interface to CFF driver.
536
537 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
538 (CFF_FontRec): Add `font_info' field.
539
540 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
541 (cff_font_done): Free font->font_info if necessary.
542
543 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
544 (cff_service_ps_info): Register cff_ps_get_font_info.
545
Werner Lemberg23df31a2007-01-13 08:45:00 +00005462007-01-13 Werner Lemberg <wl@gnu.org>
547
548 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
549 with C++ compiler.
550
551 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
552 af_glyph_hints_dump_edges): Ditto.
553
554 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
555 `modules.cfg').
556
557 * src/sfnt/ttsbit0.h: Remove.
558
559 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
560
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005612007-01-12 David Turner <david@freetype.org>
562
563 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
564 bug in the bitmap emboldener if the pitch of the source bitmap is
565 much larger than its width.
566
567 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
568 compilation warning.
569
Werner Lemberg6d96d312007-01-12 10:30:19 +00005702007-01-12 Werner Lemberg <wl@gnu.org>
571
572 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
573 `automake' CVS module from sources.redhat.com.
574
Werner Lemberg17432b52007-01-12 09:28:44 +00005752007-01-11 Werner Lemberg <wl@gnu.org>
576
577 * src/type1/t1load.c (is_space): Removed.
578 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
579 (parse_charstrings): Use IS_PS_TOKEN.
580
581
582 * autogen.sh: Avoid bash specific syntax.
583
David Turner038ace22007-01-11 15:00:59 +00005842007-01-11 David Turner <david@freetype.org>
585
Werner Lemberg17432b52007-01-12 09:28:44 +0000586 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000587
Werner Lemberg17432b52007-01-12 09:28:44 +0000588 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000589
Werner Lemberg17432b52007-01-12 09:28:44 +0000590 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
591 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000592 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000593
Werner Lemberg17432b52007-01-12 09:28:44 +0000594 * autogen.sh: Small fix to get it working on Mac OS X properly:
595 The issue is that GNU libtool is called `glibtool' on this platform,
596 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000597
David Turner2628ea92007-01-10 13:15:56 +00005982007-01-10 David Turner <david@freetype.org>
599
Werner Lemberg17432b52007-01-12 09:28:44 +0000600 * all-sources: Tag all sources with VER-2-3-0-RC1 and
601 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000602
Werner Lemberg17432b52007-01-12 09:28:44 +0000603 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
604 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
605 version number to 2.3.0.
606
607 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
608 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000609
610 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000611 include/freetype/ftlcdfil.h: Update reference documentation with
612 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000613
Werner Lemberg17432b52007-01-12 09:28:44 +0000614 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
615 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000616
Werner Lembergbf02d392007-01-10 07:07:37 +00006172007-01-10 Derek Clegg <dclegg@apple.com>
618
619 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
620 values.
621
David Turnerf48b60e2007-01-08 15:15:32 +00006222007-01-08 David Turner <david@freetype.org>
623
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000624 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000625
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000626 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
627 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000628 corresponding to a given character pixel size.
629
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000630 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
631 `gasp' table, in order to avoid potential problems with later
632 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000633
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000634 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
635 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000636
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000637 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
638 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
639 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
640 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000641
Werner Lemberge6b6f372007-01-07 00:06:47 +00006422007-01-07 Werner Lemberg <wl@gnu.org>
643
Werner Lembergb8004d22007-01-07 09:13:38 +0000644 * src/cid/cidparse.c (cid_parser_new): Improve error message for
645 Type 11 fonts.
646 Scan for `/sfnts' token.
647
6482007-01-07 Werner Lemberg <wl@gnu.org>
649
650 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000651
Werner Lembergbe5f7972007-01-06 07:51:48 +00006522007-01-06 Werner Lemberg <wl@gnu.org>
653
654 * src/cff/cffload.c (cff_index_init): Remove unused variable.
655 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
656
David Turnera8cf42b2007-01-04 16:46:46 +00006572007-01-04 David Turner <david@freetype.org>
658
Werner Lembergf6294392007-01-06 07:47:45 +0000659 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
660 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000661
Werner Lembergf6294392007-01-06 07:47:45 +0000662
663 Do not allocate interpreter-specific tables in memory if we are not
664 going to load glyphs with the bytecode interpreter anyway.
665
666 * src/truetype/ttgload.c (tt_loader_init): Load execution context
667 only if glyph is hinted.
668 Updated.
669 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
670 and `cvs_ready'.
671 Add `tt_size_ready_bytecode' declaration.
672 * src/truetype/ttobjs.c (tt_size_done_bytecode,
673 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
674 (tt_size_init): Move most code into `tt_size_init_bytecode'.
675 (tt_size_done): Move most code into `tt_size_done_bytecode'.
676 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000677
David Turner91a34022007-01-05 14:47:08 +0000678
Werner Lembergf6294392007-01-06 07:47:45 +0000679 Don't extract the metrics table from the SFNT font file. Instead,
680 reparse it on each glyph load. The runtime difference is not
681 noticeable, and it can save a lot of heap memory when memory-mapped
682 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000683
Werner Lembergf6294392007-01-06 07:47:45 +0000684 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
685 `horz_metrics_offset' and `vert_metrics_ofset'.
686 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
687 Updated.
688
689
690 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
691
692
693 Do not load the CFF index offsets into memory, since this wastes a
694 *lot* of heap memory with large Asian CFF fonts. There is no
695 significant performance loss.
696
697 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
698 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
699 `data_size'.
700 (CFF_CharsetRec): Add field `num_glyphs'.
701
702 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
703 cff_charset_cid_to_gindex): New functions.
704 (cff_new_index): Renamed to...
705 (cff_index_init): This. Update all callers.
706 Updated -- some code has been moved to `cff_index_load_offsets'.
707 (cff_done_index): Renamed to...
708 (cff_index_done): This. Update all callers.
709 (cff_index_get_pointers, cff_index_access_element): Updated to use
710 stream offsets.
711 (cff_charset_compute_cids): Set `num_glyphs' field.
712 (cff_encoding_load): Updated.
713
714 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000715
7162007-01-04 David Turner <david@freetype.org>
717
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000718 * docs/INSTALL.UNIX: Simplify some parts, add reference to
719 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000720
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000721 * README.CVS: Add common problem description and solution
722 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000723
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000724 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000725
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000726 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000727
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000728 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000729
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000730 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
731 (TWorker): This.
732 Remove `count_table' and `memory'.
733 Make `grays' a pointer.
734 (TRaster): New structure.
735 (count_table): New static array.
736 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
737 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
738 ft_black_set_mode, ft_black_render): Updated.
739 (ft_black_init): Don't initialize `count_table'.
740 (ft_black_reset): Use the render pool. This saves about 6KB of
741 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000742
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000743 * src/smooth/ftgrays.c (TRaster): Replaced with...
744 (TWorker): This.
745 Remove `memory'.
746 (TRaster): New structure.
747
748 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
749 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
750 gray_render_span, gray_raster_render): Updated.
751 (gray_raster_reset): Use the render pool. This saves about 6KB of
752 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000753
David Turner8a6c44e2007-01-04 17:03:11 +0000754 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
755 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000756 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
757 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
758 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000759
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000760 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
761 Remove a typo that results in no hinting and a memory leak with some
762 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000763
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000764 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000765 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000766 CFF_Faces in it. We need to close all faces before destroying the
767 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000768
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007692007-01-02 Werner Lemberg <wl@gnu.org>
770
771 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
772 Remove compiler warning.
773
David Turner9207e002007-01-02 16:58:13 +00007742007-01-02 David Turner <david@freetype.org>
775
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000776 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000777
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007782006-12-31 Masatake YAMATO <jet@gyve.org>
779
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000780 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
781 function.
782 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000783 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000784 `gxv_kern_subtable_fmt0_pairs_validate'.
785
David Turner115b4422006-12-22 11:37:05 +00007862006-12-22 David Turner <david@freetype.org>
787
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000788 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
789 warnings.
David Turner115b4422006-12-22 11:37:05 +0000790
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000791 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
792 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000793
Werner Lemberg4755bf72006-12-16 08:58:44 +00007942006-12-16 Anders Kaseorg <anders@kaseorg.com>
795
796 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
797 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
798
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007992006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
800
Werner Lemberg9b774e22007-01-16 06:11:27 +0000801 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000802 sync with the modification by Jens Claudius on 2006-08-22; cf.
803 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 +0000804
8052006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
806
807 * src/base/ftmac.c: Specialized for Mac OS X only.
808 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
809 * builds/unix/configure.raw: Ditto. When explicit switches for
810 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
811 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
812
8132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
814
815 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
816 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
817 instead of src/base/ftmac.c
818 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
819 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
820 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
821 that cannot be built at present.
822
8232006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
824
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000825 * src/base/ftobjs.c: Improvement of resource fork handler for
826 POSIX, cf.
827 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000828 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
829 format or .dfont, to simulate the face index number counted by ftmac.c.
830 (IsMacResource): Return the number of scalable faces correctly.
831
Werner Lembergec5b4502006-12-10 07:51:38 +00008322006-12-10 Werner Lemberg <wl@gnu.org>
833
834 * builds/toplevel.mk (version): Protect against `distclean' target.
835
Werner Lembergb26b3142006-12-09 20:01:43 +00008362006-12-09 Werner Lemberg <wl@gnu.org>
837
838 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
839 or `type'.
840
841 * builds/freetype.mk (version): Extracted from freetype.h, using
842 GNU make's built-in string functions.
843 (refdoc): Use $(version) instead of static version number.
844
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008452006-12-08 Werner Lemberg <wl@gnu.org>
846
847 * builds/toplevel.mk (dist): Extract version number from freetype.h.
848
Werner Lemberg15c29502006-12-09 07:29:54 +00008492006-12-08 Vladimir Volovich <vvv@vsu.ru>
850
851 * src/tools/apinames (State): Remove final comma in structure -- xlc
852 v5 under AIX 4.3 doesn't like this.
853
David Turnerdbf3b432006-12-07 21:18:09 +00008542006-12-07 David Turner <david@freetype.org>
855
Werner Lemberg256a3512006-12-08 06:49:33 +0000856 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
857 to the spacing of auto-fitted glyphs. This only impacts rare
858 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000859
Werner Lemberg11171312006-12-03 09:43:40 +00008602006-12-03 Werner Lemberg <wl@gnu.org>
861
862 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
863
Werner Lemberg960ba592006-12-01 08:20:47 +00008642006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000865
Werner Lemberg960ba592006-12-01 08:20:47 +0000866 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
867 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
868 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000869
David Turner80658e52006-11-28 08:09:20 +0000870
Werner Lemberg960ba592006-12-01 08:20:47 +0000871 * include/freetype/ftxf86.h: Fix and extend comment so that it
872 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000873
Werner Lemberg960ba592006-12-01 08:20:47 +0000874 * include/freetype/ftchapters.h: Add `font_format' section.
875
876
877 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
878 to TOC in index page.
879
8802006-11-28 David Turner <david@freetype.org>
881
882 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
883 trying to render into a zero-width/height bitmap, not an error code.
884
885 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
886
887 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
888 ones instead.
889
890 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
891 variable.
David Turner80658e52006-11-28 08:09:20 +0000892
Werner Lemberg8636c292006-11-26 22:28:13 +00008932006-11-26 Pierre Hanser <hanser@club-internet.fr>
894
895 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
896
Werner Lemberg960ba592006-12-01 08:20:47 +00008972006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000898
Werner Lemberg960ba592006-12-01 08:20:47 +0000899 * src/autofit/afhints.c (af_glyph_hints_dump_points,
900 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
901 Add stubs to link the `ftgrid' test program when debugging is
902 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000903
Werner Lemberg960ba592006-12-01 08:20:47 +00009042006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000905
906 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000907 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
908
909 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
910 Emit more sensible information.
911
912 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
913
914 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
915 rounding of blue values.
916 (af_latin_hints_compute_segments): Hint segment heights.
917 (af_latin_hints_link_segments): Reduce `len_score' value.
918 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
919 value and use `height' member for comparisons.
920 (af_latin_hint_edges): Extend logging message.
921 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000922
Werner Lemberg91959bf2006-11-22 10:36:55 +00009232006-11-22 Werner Lemberg <wl@gnu.org>
924
925 Fix Savannah bug #15553.
926
927 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
928 program after a change from mono to grayscaling (and vice versa).
929 Use correct constant for comparison to get `exec->grayscale'.
930
Werner Lemberg913a3652006-11-19 09:19:17 +00009312006-11-18 Werner Lemberg <wl@gnu.org>
932
933 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000934 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000935 This patch fixes Savannah bug #18301.
936
937 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
938 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
939 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
940 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
941 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
942 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
943 (FNT_Load_Glyph): Check validity of `glyph_index'.
944
David Turner7bab6ae2006-11-13 11:25:06 +00009452006-11-13 David Turner <david@freetype.org>
946
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000947 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
948 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000949
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000950 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
951 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
952 when building the library to change the default LCD filter to be
953 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000954
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000955 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000956
David Turner8765c712006-11-10 16:49:42 +00009572006-11-10 David Turner <david@freetype.org>
958
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000959 * src/smooth/ftsmooth.c: API change for the LCD
960 filter. The FT_LcdFilter value is an enumeration describing which
961 filter to apply, with new values FT_LCD_FILTER_LIGHT and
962 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
963 algorithm which produces strong color fringes for everything
964 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000965
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000966 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
967 second parameter to an enum type.
968
969 * src/base/ftlcdfil.c (USE_LEGACY): Define.
970 (_ft_lcd_filter): Rename to...
971 (_ft_lcd_filter_fir): This.
972 Update parameters.
973 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
974 (FT_Library_Set_LcdFilter): Update parameters.
975 Handle new filter modes.
976
977 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
978 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
979 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
980 callback and update other fields.
981
982 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
983 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
984 Other minor improvements.
985
986 * src/autofit/aflatin.c: Various tiny improvements that drastically
987 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
988 (af_latin_hints_compute_edges): Fix typo.
989 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000990
David Turner4e9cc3c2006-11-09 16:31:52 +00009912006-11-09 David Turner <david@freetype.org>
992
Werner Lemberg49c77a82006-11-09 21:51:57 +0000993 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
994 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000995
Werner Lemberg5e430892006-11-07 09:35:03 +00009962006-11-07 Zhe Su <james.su@gmail.com>
997
998 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
999 also.
1000
Werner Lemberg111b5ae2006-11-03 09:40:12 +000010012006-11-03 Werner Lemberg <wl@gnu.org>
1002
1003 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1004
David Turner40604742006-11-02 16:37:35 +000010052006-11-02 David Turner <david@freetype.org>
1006
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001007 Add a few tweaks to better handle serif fonts.
1008 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001009
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001010 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1011 segments that are less than 1.5 pixels high. This gets rid of
1012 *many* corner cases with serifs.
1013 (af_latin_align_linked_edge): Add logging message.
1014 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1015 Add logging messages.
1016 Handle AF_EDGE_FLAG flag specially.
1017
1018 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1019 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1020
1021 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1022 Update external declarations.
1023 (af_corner_orientation, af_corner_is_flat): Replaced by...
1024
1025 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1026 ft_corner_is_flat): These declarations.
1027
1028 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1029 Comment out. Replaced by...
1030
1031 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1032 These functions. Update all callers.
1033 (FT_Add64) [!FT_LONG64]: Simplify.
1034
1035 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1036 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1037 production of garbage by missing lots of segments.
1038
1039 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1040
1041 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1042 [AF_DEBUG]: Set _af_debug_hints.
1043
1044
1045 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1046 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1047 and ft_corner_orientation.
1048
1049
1050 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001051
Werner Lemberge88c5262006-10-24 05:46:26 +000010522006-10-24 Werner Lemberg <wl@gnu.org>
1053
1054 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1055
1056 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1057 as argument.
1058
David Turnera1861392006-10-23 16:00:59 +000010592006-10-23 Zhe Su <zsu@novell.com>
1060
Werner Lemberg715e96e2006-10-24 05:28:45 +00001061 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1062 better deal with broken Asian fonts with strange glyphs, having
1063 self-intersections and other peculiarities. The used algorithm is
1064 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001065
David Turnere140f142006-10-23 08:56:57 +000010662006-10-23 David Turner <david@freetype.org>
1067
Werner Lemberg715e96e2006-10-24 05:28:45 +00001068 Speed up the CFF font loader. With some large CFF fonts,
1069 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001070
Werner Lemberg715e96e2006-10-24 05:28:45 +00001071 * src/cff/cffload.c (cff_get_offset): Removed.
1072 (cff_new_index): Inline functionality of `cff_get_offset'.
1073 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1074 (cff_charset_done): Call `cff_charset_free_cids'.
1075 (cff_charset_load): Call `cff_charset_compute_cids'.
1076 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1077
1078 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1079 with FT_NEXT_XXX.
1080
1081
1082 Speed up the Postscript hinter, with more than 100% speed increase
1083 on my machine.
1084
1085 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1086 psh_corner_orientation): New functions.
1087 (psh_glyph_compute_inflections): Merge loops for efficiency.
1088 Use `psh_corner_orientation'.
1089 (psh_glyph_init): Use `psh_corner_is_flat'.
1090 (psh_hint_table_find_strong_point): Renamed to...
1091 (psh_hint_table_find_strong_points): This.
1092 Rewrite, adding argument to handle all points at once.
1093 Update all callers.
1094 (PSH_MAX_STRONG_INTERNAL): New macro.
1095 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001096
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010972006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1098
1099 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001100 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001101
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000011022006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1103
1104 * docs/INSTALL.CROSS: New document file for cross-building.
1105
1106 * builds/unix/configure.raw: Preliminary cross-building support.
1107 Find native C compiler and pass it by CC_BUILD, and
1108 find suffix for native executable and pass it by EXEEXT_BUILD.
1109 Also suffix for target executable is passed by EXEEXT.
1110
Werner Lembergb9e6d692006-10-15 08:58:40 +00001111 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1112 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001113 CC_BUILD and EXEEXT_BUILD.
1114
Werner Lembergb9e6d692006-10-15 08:58:40 +00001115 * builds/exports.mk (APINAMES_EXE): Change the extension for
1116 apinames from the suffix for target (E) to that for building host
1117 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001118
Werner Lemberg82a07e92006-10-12 06:20:44 +000011192006-10-12 Werner Lemberg <wl@gnu.org>
1120
1121 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1122 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1123 which reference those files.
1124
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011252006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1126
Werner Lembergb9e6d692006-10-15 08:58:40 +00001127 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1128 embedded in freetype2.pc and freetype-config. Use it to record
1129 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001130
1131 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1132
1133 * builds/unix/freetype-config.in: Ditto.
1134
Werner Lemberg28e17d92006-10-11 17:27:47 +000011352006-10-11 Werner Lemberg <wl@gnu.org>
1136
1137 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1138 development.
1139
Jens Claudius336d2292006-10-03 08:53:37 +000011402006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1141
1142 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1143 argument to ft_setjmp.
1144
1145 * include/freetype/internal/ftvalid.h: Add comment that
1146 ft_validator_run must not be used.
1147
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011482006-10-01 Werner Lemberg <wl@gnu.org>
1149
1150 * src/base/ftbase.c: Undo change from 2006-09-30.
1151
1152 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1153
11542006-09-30 David Turner <david@freetype.org>
1155
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001156 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1157 s/unpatented_hinting/ignore_unpatented_hinter/.
1158 Update all callers.
1159
1160 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1161 auto-hinting shall be used or not.
1162
1163 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001164
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011652006-09-30 Werner Lemberg <wl@gnu.org>
1166
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001167 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1168 in use).
1169
1170 * src/base/ftbase.c: Include `ftlcdfil.c'.
1171
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011722006-09-29 Werner Lemberg <wl@gnu.org>
1173
1174 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1175 overlapping segments. Bug reported by Stefan Koch.
1176
David Turnerad830712006-09-27 16:20:59 +000011772006-09-28 David Turner <david@freetype.org>
1178
Werner Lemberg2c002e12006-09-29 21:31:53 +00001179 Fix a bug in the automatic unpatented hinting support which prevents
1180 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001181
Werner Lemberg2c002e12006-09-29 21:31:53 +00001182 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1183 s/force_autohint/unpatented_hinting/. Update all callers.
1184
1185 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1186
1187 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001188
David Turner8a317cf2006-09-27 07:52:48 +000011892006-09-27 David Turner <david@freetype.org>
1190
Werner Lemberg2c002e12006-09-29 21:31:53 +00001191 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001192
David Turner8a317cf2006-09-27 07:52:48 +00001193
David Turnere140f142006-10-23 08:56:57 +00001194 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001195 In a default build, the function `FT_Library_SetLcdFilter' returns
1196 `FT_Err_Unimplemented_Feature'; you need to #define
1197 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1198 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001199
Werner Lemberg2c002e12006-09-29 21:31:53 +00001200 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001201
Werner Lemberg2c002e12006-09-29 21:31:53 +00001202 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1203 typedef.
1204 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1205 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001206
Werner Lemberg2c002e12006-09-29 21:31:53 +00001207 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1208 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001209
Werner Lemberg2c002e12006-09-29 21:31:53 +00001210 Handle subpixel rendering.
1211 Simplify function.
1212 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1213 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1214
1215 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1216 pointing to <freetype/ftlcdfil.h>.
1217
1218 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1219 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1220
1221 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001222
Werner Lemberge20df4a2006-09-27 06:29:21 +000012232006-09-26 David Bustin
1224
1225 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1226 correctly. Reported as Savannah bug #17843.
1227
David Turner6f8c6222006-09-26 15:42:44 +000012282006-09-26 David Turner <david@freetype.org>
1229
Werner Lemberg110246c2006-09-26 21:55:44 +00001230 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1231 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1232 horizontal and vertical hinting for the purpose of debugging the
1233 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001234
Werner Lemberg110246c2006-09-26 21:55:44 +00001235 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1236 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001237
Werner Lemberg110246c2006-09-26 21:55:44 +00001238 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1239
1240 * include/freetype/config/ftoption.h, devel/ftoption.h
1241 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1242 we want to compile LCD-optimized rendering code la ClearType) or
1243 not. The macro *must* be disabled in default builds of the library
1244 for patent reasons.
1245
1246 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1247 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1248 isn't defined at compile time. This only changes the content of the
1249 rendered glyph to match the one of normal gray-level rendering,
1250 hence clients should not need to be modified.
1251
1252 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001253
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012542006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1255
1256 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1257 LWFN fails and both are available.
1258
David Turnerf3050052006-09-11 12:00:32 +000012592006-09-11 David Turner <david@freetype.org>
1260
Werner Lembergf9644552006-09-12 13:48:10 +00001261 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1262 report their English names through an Apple Roman
1263 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001264
Werner Lembergf9644552006-09-12 13:48:10 +00001265 If the font uses another name entry with language_id == English, it
1266 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001267
Werner Lembergf9644552006-09-12 13:48:10 +00001268 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1269 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001270
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012712006-09-05 Werner Lemberg <wl@gnu.org>
1272
1273 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001274 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001275 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1276 `HAN NOM B.ttf').
1277
1278 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1279
David Turner772e55d2006-09-05 09:45:15 +000012802006-09-05 David Turner <david@freetype.org>
1281
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001282 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001283
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001284 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1285 (TRaster): Remove `count_ex' and `count_ey'.
1286 (gray_find_cell): Remove 2nd and 3rd argument.
1287 (gray_alloc_cell): Merged with `gray_find_cell'.
1288 (gray_record_cell): Simplify.
1289 (gray_set_cell): Rewrite.
1290 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1291 (gray_render_span): Don't use FT_MEM_SET for small values.
1292 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1293 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1294 bitmap scanline.
1295 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001296
David Turneraa557a92006-09-04 16:42:44 +000012972006-09-04 David Turner <david@freetype.org>
1298
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001299 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1300 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001301
Werner Lemberg2d8629b2006-09-03 06:18:45 +000013022006-09-03 Werner Lemberg <wl@gnu.org>
1303
1304 * devel/ftoption.h: Synchronize with
1305 include/freetype/config/ftoption.h.
1306
1307 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1308 variable declaration.
1309 (gray_convert_glyph): Fix compiler warnings.
1310
David Turner6d79f212006-09-01 14:09:35 +000013112006-09-01 David Turner <david@freetype.org>
1312
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001313 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1314 to recognize a few fonts that require the automatic unpatented
1315 loader.
David Turnerbd502952006-09-01 19:05:24 +00001316
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001317 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1318 rasterizer. The speed improvement is between 15% and 25%, depending
1319 on the font data.
1320
1321 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1322 (TCell): Redefine.
1323 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1324 (gray_init_cells): Updated.
1325 (gray_find_cell, gray_alloc_cell): New functions.
1326 (gray_record_cell): Rewritten to use `gray_find_cell' and
1327 `gray_alloc_cell'.
1328 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1329 QSORT_THRESHOLD):
1330 Removed.
1331 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1332 gray_dump_cells): Removed.
1333 (gray_sweep): Rewritten.
1334 (gray_convert_glyph): Rewrite code which used one of the sorting
1335 functions.
1336 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001337
Werner Lembergd898aed2006-08-29 09:50:34 +000013382006-08-29 Dr. Werner Fink <werner@suse.de>
1339
1340 * configure: Make it possible to handle configure options which
1341 have strings containing spaces.
1342
13432006-08-27 David Turner <david@freetype.org>
1344
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001345 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1346 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1347 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1348
1349 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1350 src/truetype/truetype.c, src/truetype/ttdriver.c,
1351 src/truetype/ttgload.c, src/truetype/ttgload.h,
1352 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1353 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1354 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1355
1356 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1357 member `force_autohint'.
1358
1359 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1360
1361 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1362 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001363
Jens Claudiusa787f452006-08-27 11:26:18 +000013642006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1365
1366 Fix miscellaneous compiler warnings.
1367
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001368 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1369 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001370
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001371 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1372 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1373 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001374
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001375 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1376 volatileness of argument to ft_longjmp. Spotted by Werner
1377 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001378
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001379 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1380 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001381
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001382 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1383 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001384
Werner Lembergc4c35b72006-08-27 08:03:46 +000013852006-08-27 Werner Lemberg <wl@gnu.org>
1386
1387 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1388 Reported by Jens.
1389
Jens Claudius088e44e2006-08-22 14:24:30 +000013902006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001391
Jens Claudius088e44e2006-08-22 14:24:30 +00001392 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001393 about addresses of volatile objects passed as function arguments as
1394 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001395
Werner Lembergc4c35b72006-08-27 08:03:46 +00001396 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1397 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001398
1399 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1400 argument `table' a pointer to a volatile object.
1401
1402 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1403 argument `table' a pointer to a volatile object.
1404
Jens Claudius2652bd52006-08-18 17:20:37 +000014052006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1406
1407 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1408 variable `_sfnt' as volatile since it must keep its value across
1409 a call to ft_setjmp.
1410 (gxv_validate): Same for local variables `memory' and `valid'.
1411 (classic_kern_validate): Same for local variables `memory',
1412 `ckern', and `valid'.
1413
1414 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1415 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1416 `jstf', and 'valid'.
1417
1418 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1419 local variable `cmap'.
1420
David Turner9fbfc6a2006-08-16 09:11:31 +000014212006-08-16 David Turner <david@freetype.org>
1422
Werner Lemberg12342992006-08-19 11:18:09 +00001423 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1424 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001425
Werner Lemberg12342992006-08-19 11:18:09 +00001426 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1427 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001428
David Turner33f5f242006-08-16 16:50:55 +00001429
Werner Lemberg12342992006-08-19 11:18:09 +00001430 Improvements to native TrueType hinting. This is a first try,
1431 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1432
1433 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1434 `extra_points2'.
1435
1436 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1437 `orus'.
1438
1439 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1440 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1441 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1442 handle `extra_points2'.
1443
1444 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1445 Remove compiler warning.
1446 (cur_to_arg): Remove macro.
1447 (TT_Hint_Glyph): Updated.
1448 (TT_Process_Simple_Glyph): Handle `orus'.
1449
1450 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1451 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1452 (LOC_Ins_IUP): Renamed to...
1453 (IUP_WorkerRec): This.
1454 Add `orus' member.
1455 (Shift): Renamed to...
1456 (_iup_worker_shift): This.
1457 Updated.
1458 (Interp): Renamed to...
1459 (_iup_worker_interpolate): This.
1460 Updated to handle `orus'.
1461 (Ins_IUP): Updated.
1462
1463 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1464 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001465
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014662006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1467
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001468 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001469 build ftvalid in ft2demos. This has been inadvertedly changed
1470 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001471
14722006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1473
Werner Lemberg12342992006-08-19 11:18:09 +00001474 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1475 Jens:
1476 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001477
Werner Lemberg12342992006-08-19 11:18:09 +00001478 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1479 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001480
1481 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1482
Jens Claudius9950adc2006-08-13 12:14:36 +000014832006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1484
Werner Lemberg12342992006-08-19 11:18:09 +00001485 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1486 T1_TOKEN_TYPE_KEY.
1487 (T1_FieldRec): Add `dict'.
1488 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1489 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1490 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001491
Werner Lemberg12342992006-08-19 11:18:09 +00001492 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1493 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001494
1495 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1496
1497 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001498 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1499 not T1_TOKEN_TYPE_ANY.
1500 (ps_parser_load_field): Make sure a token that should be a string or
1501 name is really a string or name.
1502 Avoid memory leak if a keyword has been already encountered and its
1503 value is overwritten.
1504 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1505 T1_FIELD_XXX.
1506 (parse_dict): Ignore keywords that occur in the wrong dictionary
1507 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001508
Werner Lemberg12342992006-08-19 11:18:09 +00001509 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1510 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001511
Werner Lemberg12342992006-08-19 11:18:09 +00001512 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1513 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001514
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000015152006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1516
1517 Move creation of field `buildchar' of T1_DecoderRec out of
1518 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1519 of it.
1520
1521 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1522 and `T1_Compute_Max_Advance'.
1523
1524 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1525 Remove field `face', add `len_buildchar'.
1526
1527 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1528 field `buildchar'.
1529
1530 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1531 finisher for T1_Decoder.
1532 (cid_slot_load_glyph): Do not ignore failure when initializing the
1533 T1_Decoder.
1534
1535 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1536 Updated.
1537 (t1_decoder_init): Remove initialization of fields `buildchar' and
1538 `len_buildchar'.
1539 (t1_decoder_done): Remove deallocation of field `buildchar'.
1540
1541 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1542 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1543 T1_Decoder.
1544 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1545 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1546 case of error.
1547
1548 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1549 `buildchar' of T1_FaceRec.
1550
1551 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1552 `buildchar' of T1_FaceRec.
1553
Werner Lemberg1a380e02006-07-14 18:28:08 +000015542006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1555
1556 * freetype2/include/freetype/internal/psaux.h: New macros
1557 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1558 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1559 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1560 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1561 (T1_DecoderRec): New fields `buildchar' and `face'.
1562 (IS_PS_TOKEN): New macro.
1563
1564 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1565 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1566
1567 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1568 `default_design_vector' and `num_default_design_vector'.
1569
1570 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1571 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1572 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1573
1574 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1575 `token' argument to be NULL if we want only to count the number of
1576 tokens.
1577 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1578 want to skip the array.
1579 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1580 want to skip the array.
1581
1582 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1583 support for (partially commented out) othersubrs 19-25, 27, and 28.
1584 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1585 (t1_decoder_done): Release new field `buildchar'.
1586
1587 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1588 functions.
1589 (t1_keywords): Register them.
1590 (t1_allocate_blend): Updated.
1591 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1592 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1593 (parse_dict): Remove `keyword_flags' argument.
1594 Use new macro IS_PS_TOKEN.
1595 Changed function so that later PostScript definitions override
1596 earlier ones.
1597 (t1_init_loader): Initialize new field `keywords_encountered'.
1598 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1599 `len_buildchar'.
1600 Remove `keywords_flags'.
1601
1602 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1603 `keywords_encountered'.
1604 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1605
1606 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1607 New entries for parsing /NDV, /CDV, and /DesignVector.
1608
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000016092006-07-07 Werner Lemberg <wl@gnu.org>
1610
1611 Add many checks to protect against malformed PCF files.
1612
1613 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1614 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1615
1616 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1617 data and check that tables don't overlap (using a simple
1618 bubblesort).
1619 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1620 New macros which give the size of data structures in the data
1621 stream.
1622 (pcf_get_properties): Use rough estimates to get array size limits.
1623 Assign `face->nprops' and `face->properties' earlier so that a call
1624 to PCF_Face_Done can do the clean-up in case of error.
1625 Protect against invalid string offsets.
1626 (pcf_get_metrics): Clean up code.
1627 Adjust tracing message levels.
1628 Use rough estimate to get array size limit.
1629 (pcf_get_bitmaps): Clean up code.
1630 Adjust tracing message levels.
1631 Use rough estimates to get offset limits.
1632 (pcf_get_encodings): Adjust tracing message level.
1633 (pcf_get_accel): Clean up code.
1634
Werner Lemberg8eb05252006-06-27 06:20:01 +000016352006-06-26 Werner Lemberg <wl@gnu.org>
1636
1637 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1638 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1639
Werner Lemberg24703f82006-06-26 19:12:51 +000016402006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1641
1642 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1643 (t1_decoder_parse_charstrings): Operator with
1644 opcode 15 pops its two arguments.
1645 Handle the case where the pops of an othersubr may be part of a
1646 subroutine.
1647 Handle unknown othersubrs gracefully: count their operands and let
1648 the following pop operators push the operands as the results onto
1649 the Type1 stack.
1650 Improve handling of setcurrentpoint opcode.
1651
Werner Lembergc011f4c2006-06-26 09:40:00 +000016522006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1653
1654 The Type 1 parser now skips over top-level procedures as required
1655 for a `Simplified Parser'. This makes the parser more robust as it
1656 doesn't poke around in PostScript code. Additionally, it makes the
1657 FontDirectory hackery in src/type1/t1load.c unnecessary.
1658
1659 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1660 (skip_literal_string): Add FT_Error as return value.
1661 Handle escapes better.
1662 (skip_string): Add FT_Error as return value.
1663 Don't set `parser->error' but return error code directly.
1664 (skip_procedure): New function.
1665 (ps_parser_skip_PS_token): Handle procedures.
1666 Update code.
1667 (ps_parser_to_token): Update code.
1668 (ps_parser_load_field_table): Handle bbox entries also.
1669
1670 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1671 Add commented-out code for synthetic fonts.
1672
Werner Lemberga2da05c2006-06-25 06:27:27 +000016732006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1674
1675 Fix two hinting bugs as reported in
1676 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1677
1678 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1679 `first_point' member.
1680
1681 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1682 `first_point'.
1683 (TT_Process_Composite_Glyph): Always untouch points.
1684
1685 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1686 `first_point' and `last_point' in case of composite glyphs.
1687 (Ins_IUP): Fix computation of `end_point'.
1688
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016892006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1690
Werner Lembergef3d2c22006-06-25 06:07:14 +00001691 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1692 Mac. The original patch was written by David Sachitano and Lawrence
1693 Coopet, and modified by Sean McBride for MPW compatibility. Only
1694 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001695
Werner Lembergef3d2c22006-06-25 06:07:14 +00001696 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1697 Mac OS X platforms.
1698 (OS_INLINE): Undefine before definition.
1699 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1700 FontAssociation table in FOND resource.
1701 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1702 and fontSize at each entry of FontAssociation table in FOND
1703 resource.
1704 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1705 ffStylOff of FamilyRecord header of FOND resource, the header,
1706 fontSize, fontID at each entry of FontAssociation table, and
1707 StyleMapping table.
1708 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001709
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000017102006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1711
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001712 Public API of TrueTypeGX, OpenType, and classic kern table validator
1713 should return `FT_Err_Unimplemented_Feature' if validation service
1714 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001715 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001716 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1717
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001718 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1719 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1720 unavailable.
1721 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1722 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001723
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001724 * src/base/ftotval.c (FT_OpenType_Validate): Return
1725 FT_Err_Unimplemented_Feature if OpenType validation service is
1726 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001727
Werner Lembergb10e45a2006-06-08 07:32:56 +000017282006-06-08 Werner Lemberg <wl@gnu.org>
1729
1730 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1731 errors.
1732
David Turner5f1f7502006-06-07 05:11:50 +000017332006-06-07 David Turner <david@freetype.org>
1734
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001735 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1736 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1737 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001738
David Turner457b4a82006-06-06 08:14:14 +000017392006-06-06 David Turner <david@freetype.org>
1740
Werner Lemberg4836f952006-06-06 12:54:08 +00001741 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001742
Werner Lemberg4836f952006-06-06 12:54:08 +00001743 We change `ps_unicodes_init' so that it also takes a
1744 `free_glyph_name' callback to release the glyph names returned by
1745 `get_glyph_name'
1746
1747 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1748 Renamed to ...
1749 (PS_GetGlyphNameFunc): This.
1750 (PS_FreeGlyphNameFunc): New typedef.
1751 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1752
1753 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1754 argument.
1755 (cff_sid_free_glyph_name): New function.
1756 (cff_cmap_unicode_init): Updated.
1757
1758 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1759
1760 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1761 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001762
1763
David Turner09717352006-06-04 14:33:08 +000017642006-06-04 David Turner <david@freetype.org>
1765
Werner Lembergd724f202006-06-04 15:17:41 +00001766 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1767 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001768 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001769
Werner Lembergd724f202006-06-04 15:17:41 +00001770 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1771 of `face->num_glyphs' which missed the last glyph, due to
1772 the offset-by-1 computation, since the PFR format doesn't
1773 guarantee that glyph index 0 corresponds to the `missing
1774 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001775
Werner Lemberg33779662006-05-26 06:30:05 +000017762006-05-25 Werner Lemberg <wl@gnu.org>
1777
1778 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1779 `-no-undefined'. Reported by Christian Biesinger.
1780
Werner Lemberg24773d62006-05-20 08:53:13 +000017812006-05-19 Brian Weed <bw@imaginengine.com>
1782
1783 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1784 have debug information, and debug libraries use `C7 compatible'
1785 debug info.
1786
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017872006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1788
Werner Lemberga6523a62006-05-20 08:47:01 +00001789 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001790 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001791
Werner Lemberga6523a62006-05-20 08:47:01 +00001792 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1793 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001794
1795 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001796 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001797
17982006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1799
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001800 * build/unix/configure.raw: Add a fallback to disable Carbon
1801 dependency, if configured with no options on Mac OS X.
1802
18032006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1804
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001805 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001806 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001807 the second part of Savannah bug #16590.
1808
Werner Lemberg545c4e52006-05-17 22:55:04 +000018092006-05-18 Werner Lemberg <wl@gnu.org>
1810
1811 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1812 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1813
David Turnerdc3ff312006-05-17 12:59:35 +000018142006-05-17 David Turner <david@freetype.org>
1815
Werner Lemberg545c4e52006-05-17 22:55:04 +00001816 This is a major patch used to drastically improve the performance of
1817 loading glyphs. This both speeds up loading the glyph vectors
1818 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001819
Werner Lemberg545c4e52006-05-17 22:55:04 +00001820 We now use inline assembler code with GCC to implement `FT_MulFix',
1821 which is probably the most important function related to the
1822 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001823
Werner Lemberg545c4e52006-05-17 22:55:04 +00001824 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001825
1826
Werner Lemberg545c4e52006-05-17 22:55:04 +00001827 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1828 `cursor' and `limit'.
1829
1830 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1831 New functions.
1832 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1833 [TEST]: Remove.
1834
1835 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1836 code.
1837
1838 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1839 `FT_ZERO'
1840 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1841 (af_glyph_hints_reload: Rewrite recognition of weak points.
1842
1843 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1844 constant values out of the loops.
1845
1846 * src/autofit/aftypes.h: Updated.
1847
1848 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1849
1850 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1851 product to get orientation.
1852
1853 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1854 (FT_Stream_OpenGzip): Use it to handle small files directly in
1855 memory.
1856
1857 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1858 Improve performance.
1859
1860 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1861 `limit'.
1862
1863 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1864 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1865 exceedingly large values of number of contours. Speed up by
1866 reducing the number of loops.
1867
1868 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1869
1870
1871 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1872 used to detect rogue clients from 4 to 16. This is to prevent some
1873 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1874 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001875
Werner Lembergde2d90a2006-05-17 08:54:30 +000018762007-05-17 Werner Lemberg <wl@gnu.org>
1877
1878 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001879 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001880
18812006-05-16 Werner Lemberg <wl@gnu.org>
1882
1883 * docs/PROBLEMS: Updated icl issues.
1884
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001885----------------------------------------------------------------------------
1886
Werner Lemberg42b63b22007-01-21 21:01:33 +00001887Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001888David Turner, Robert Wilhelm, and Werner Lemberg.
1889
1890This file is part of the FreeType project, and may only be used, modified,
1891and distributed under the terms of the FreeType project license,
1892LICENSE.TXT. By continuing to use, modify, or distribute this file you
1893indicate that you have read the license and understand and accept it
1894fully.
1895
1896
1897Local Variables:
1898version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001899coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001900End: