blob: 0b65e89c472ccf8234d897741005152c862d453f [file] [log] [blame]
Werner Lemberg106eaf12007-05-03 07:07:47 +000012007-05-03 Werner Lemberg <wl@gnu.org>
2
3 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
4 * include/freetype/freetype.h (FT_Set_Char_Size): Update
5 documentation.
6
Werner Lemberg1b5267d2007-04-28 21:06:15 +000072007-04-28 Victor Stinner <victor.stinner@inl.fr>
8
9 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
10 `cmap'.
11
Werner Lembergcc712a22007-04-27 17:16:50 +0000122007-04-27 Werner Lemberg <wl@gnu.org>
13
14 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
15 number of points in contours. Problem reported by Victor Stinner
16 <victor.stinner@haypocalc.com>.
17 (TT_Process_Simple_Glyph): Synchronize variable types.
18
Werner Lemberg45bb18f2007-04-26 06:26:35 +0000192007-04-26 Werner Lemberg <wl@gnu.org>
20
21 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
22 zero in case of error. This fixes Savannah bug #19689.
23
Werner Lembergfcc1f472007-04-10 11:51:50 +0000242007-04-10 Martin Horak <horakm@centrum.cz>
25
26 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
27 Ignore `hhea' table. This fixes Savannah bug #19261.
28
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000292007-04-09 Werner Lemberg <wl@gnu.org>
30
31 * Version 2.3.4 released.
32 =========================
33
34
35 Tag sources with `VER-2-3-4'.
36
37 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
38 version number to 2.3.4.
39
40 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
41 builds/win32/visualc/freetype.dsp,
42 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
43
44 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
45
46 * builds/unix/configure.raw (version_info): Set to 9:15:3.
47
Werner Lembergf4a52a62007-04-09 08:40:11 +0000482007-04-09 Martin Horak <horakm@centrum.cz>
49
50 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
51 memory stream to avoid a crash with the incremental memory
52 interface (Savannah bug #19260).
53
David Turner1dcb4442007-04-06 08:19:04 +0000542007-04-06 David Turner <david@freetype.org>
55
Werner Lembergc81cf612007-04-06 09:28:23 +000056 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
57 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000058
Werner Lemberg9f83e052007-04-05 02:28:23 +0000592007-04-04 Werner Lemberg <wl@gnu.org>
60
61 * Version 2.3.3 released.
62 =========================
63
64
65 Tag sources with `VER-2-3-3'.
66
67 * docs/CHANGES: Mention CVE-2007-1351.
68
David Turner7338ec22007-04-03 14:30:34 +0000692007-04-03 David Turner <david@freetype.org>
70
71 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000072 if one of the resolution values is 0, treat it as if it were the
73 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000074
David Turnere6472c12007-04-02 13:13:54 +0000752007-04-02 David Turner <david@freetype.org>
76
Werner Lemberg94f12272007-04-03 07:19:53 +000077 Add special code to detect `extra-light' fonts and do not snap their
78 stem widths too much to avoid bizarre hinting effects.
79
80 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
81 `extra_light' members.
82
83 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
84 them.
85 (af_latin_metrics_scale_dim): Set `extra_light'.
86 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000087
David Turner3f539692007-03-28 14:53:40 +0000882007-03-28 David Turner <david@freetype.org>
89
Werner Lemberg644b1ad2007-03-28 21:17:11 +000090 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000091 padding.
92
Werner Lemberga08b2172007-03-28 07:17:17 +0000932007-03-28 Werner Lemberg <wl@gnu.org>
94
95 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
96 gracefully.
97 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000098 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000099 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
100 number of code points in Unicode.
101
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000102 * builds/win32/visualc/index.html,
103 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000104 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000105 s/232/233/.
106
107 * docs/CHANGES: Mention ftdiff.
108
David Turner3b242d32007-03-26 12:03:04 +00001092007-03-26 David Turner <david@freetype.org>
110
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000111 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
112 corresponding code.
113 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000114
Werner Lemberga08b2172007-03-28 07:17:17 +0000115 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000116 computations in order to ignore single-point contours. These are
117 never rasterized and correspond in certain fonts to mark-attach
118 points that are very far from the glyph's real outline, ruining the
119 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000120
Werner Lemberga08b2172007-03-28 07:17:17 +0000121 * src/autofit/afloader.c (af_loader_load_g): In the case of
122 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
123 Otherwise code that uses them will most certainly ruin the fixed
124 advance property.
David Turner23553d62007-03-26 13:37:17 +0000125
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000126 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
127 documentation and bump version number to 2.3.3.
128
129 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
130
131 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000132
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001332007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
134
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000135 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
136 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000137 * builds/vms/ftconfig.h: Ditto.
138 * include/freetype/config/ftconfig.h: Ditto.
139
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001402007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
141
Werner Lemberg14ffe092007-03-22 06:12:43 +0000142 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
143 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000144 proposed by Sean McBride:
145 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
146
1472007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
148
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000149 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
150 setjmp, proposed by Sean McBride:
151 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
152
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001532007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
154
Werner Lembergc9f6c662007-03-21 13:30:14 +0000155 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
156 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
157 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000158
David Turner74c34eb2007-03-18 07:19:31 +00001592007-03-18 David Turner <david@freetype.org>
160
Werner Lembergc9f6c662007-03-21 13:30:14 +0000161 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
162 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000163
Werner Lembergc9f6c662007-03-21 13:30:14 +0000164 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000165
David Turner89020d92007-03-17 17:48:57 +00001662007-03-17 David Turner <david@freetype.org>
167
Werner Lembergc9f6c662007-03-21 13:30:14 +0000168 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
169 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000170
Werner Lemberg25d592a2007-03-09 07:59:35 +00001712007-03-09 Werner Lemberg <wl@gnu.org>
172
173 * Version 2.3.2 released.
174 =========================
175
176
177 Tag sources with `VER-2-3-2'.
178
179 * builds/win32/visualc/index.html,
180 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000181 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000182 s/231/232/.
183
David Turner3a51afa2007-03-08 10:50:38 +00001842007-03-08 David Turner <david@freetype.org>
185
Werner Lemberg25d592a2007-03-09 07:59:35 +0000186 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000187
Werner Lemberg25d592a2007-03-09 07:59:35 +0000188 * builds/unix/configure.raw (version_info): Set to 9:13:3.
189
190 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
191
192 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000193
Werner Lemberg1e259de2007-03-08 15:39:21 +0000194 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
195 function to work properly, over-writing user-provided buffers in
196 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000197
David Turner121cad52007-03-08 16:43:50 +0000198
Werner Lemberg3d92f082007-03-06 11:59:24 +00001992007-03-05 Werner Lemberg <wl@gnu.org>
200
201 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
202 macro for `strstr'.
203
204 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
205 `trick_names', as suggested by Ivan Nincic.
206
David Turner085bc6e2007-03-05 17:40:03 +00002072007-03-05 David Turner <david@freetype.org>
208
Werner Lembergd112cf02007-03-06 12:06:56 +0000209 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
210 case FT_Init_FreeType fails for some reason. Problem reported by
211 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000212
Werner Lembergd112cf02007-03-06 12:06:56 +0000213 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
214 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
215 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
216 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000217
Werner Lembergd112cf02007-03-06 12:06:56 +0000218 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
219 signed values, not unsigned ones. Problem reported by Johannes
220 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000221
David Turner601aefe2007-02-21 16:47:49 +00002222007-02-21 David Turner <david@freetype.org>
223
Werner Lembergde5e6862007-02-25 21:06:43 +0000224 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
225 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000226
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002272007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
228
229 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
230 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
231 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
232
Werner Lemberga0915172007-02-16 08:12:50 +00002332007-02-16 Werner Lemberg <wl@gnu.org>
234
235 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
236 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
237
David Turner2c4500e2007-02-14 15:08:47 +00002382007-02-14 David Turner <david@freetype.org>
239
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000240 It seems that the following changes fix most of the known
241 interpreter problems with my fonts, but more testing is needed,
242 though.
243
244 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
245 (TT_MulFix14): Rewrite.
246 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
247 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000248
Werner Lembergc6a14082007-02-12 22:08:15 +00002492007-02-12 Werner Lemberg <wl@gnu.org>
250
251 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
252 warnings.
253
254 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
255 (bdf_interpret_style): Ditto.
256
David Turnerc0f9c4a2007-02-12 14:55:03 +00002572007-02-12 David Turner <david@freetype.org>
258
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000259 Simplify projection and dual-projection code interface.
260
Werner Lemberg406d25f2007-02-12 22:01:18 +0000261 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
262 FT_Vector' as argument type.
263 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
264 Updated.
265 (CUR_fast_project, CUR_fast_dualproj): New macros.
266 (Project, Dual_Project, Project_x, Project_y): Updated.
267 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
268 macros.
269
270
271 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
272 adjustments for the non-light auto-hinted modes. Gets rid of
273 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000274
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000275 * src/autofit/aflatin.c (af_latin_hints_link_segments,
276 af_latin_hints_compute_edges): Slight optimization of the segment
277 linker and better handling of serif segments to get rid of broken
278 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000279
David Turnerc0f9c4a2007-02-12 14:55:03 +0000280
Werner Lemberg442bfb82007-02-12 21:44:10 +0000281 Introduce new string functions and the corresponding macros to get
282 rid of various uses of strcpy and other `evil' functions, as well as
283 to simplify a few things.
284
285 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
286 ft_mem_strcpyn): New declarations.
287 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
288 macros.
289 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
290 functions.
291
292 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
293 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
294 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
295 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
296 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
297 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
298 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
299 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000300
Werner Lemberg406d25f2007-02-12 22:01:18 +0000301 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
302
Werner Lemberg582067d2007-02-11 15:03:05 +00003032007-02-11 Werner Lemberg <wl@gnu.org>
304
305 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
306 non-spacing glyphs.
307
Werner Lemberg8f474532007-02-07 08:31:01 +00003082007-02-07 Tom Parker <palfrey@tevp.net>
309
310 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
311 pointer.
312
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003132007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
314
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000315 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
316 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000317 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000318 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
319 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
320 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
321 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000322
323 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
324 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000325 * builds/mac/ftmac.c: Ditto.
326
3272007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
328
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000329 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000330 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000331 #include <ftmac.c>.
332
3332007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
334
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000335 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
336 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
337 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
338 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
339 FT_GetFilePath_From_Mac_ATS_Name.
340 * builds/mac/ftmac.c: Ditto.
341
3422007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
343
Werner Lembergdcbb7082007-02-08 08:54:09 +0000344 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000345 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
346 for passing to FT_New_Face_From_FSSpec.
347
3482007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
349
Werner Lembergdcbb7082007-02-08 08:54:09 +0000350 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000351 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000352
353 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
354 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000355 * builds/mac/ftmac.c (OS_INLINE): Ditto.
356
Werner Lemberg313d7772007-02-01 08:10:45 +00003572007-02-01 Werner Lemberg <wl@gnu.org>
358
359 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
360 Explain why applications shouldn't use it. Found by Alexei.
361
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003622007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000363
364 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
365 message.
366
367 * src/gxvalid/gxvmort1.c
368 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
369 message.
370
Werner Lemberg53935932007-01-31 08:53:02 +00003712007-01-31 Werner Lemberg <wl@gnu.org>
372
373
374 * Version 2.3.1 released.
375 =========================
376
377
378 Tag sources with `VER-2-3-1-FINAL'.
379
380 * builds/win32/visualc/freetype.dsp,
381 builds/win32/visualc/freetype.vcproj: s/230/231/.
382 * builds/win32/visualc/index.html: s/221/231/.
383
384 * vms_make.com: Add `ftgasp'.
385
David Turnera7ee6082007-01-30 10:33:53 +00003862007-01-30 David Turner <david@freetype.org>
387
Werner Lemberg53935932007-01-31 08:53:02 +0000388 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000389
Werner Lemberg53935932007-01-31 08:53:02 +0000390 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000391
Werner Lemberg25d592a2007-03-09 07:59:35 +0000392 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000393 s/2.3.0/2.3.1/.
394
395 * builds/unix/configure.raw (version_info): Set to 9:12:3.
396
397
398 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
399 (af_loader_load_g): Disable the warper (i.e., the light hinting
400 improvements) to make a 2.3.1 bugfix release before introducing a
401 new feature. This should give us more time to tune and improve the
402 warper for the next release.
403
404 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000405
David Turnerd91eebd2007-01-26 15:05:41 +00004062007-01-25 David Turner <david@freetype.org>
407
Werner Lembergbf241762007-01-26 16:08:49 +0000408 For light auto-hinting, improve glyph advance widths and resurrect
409 normal/full hinting to its normal quality.
410
411 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
412 and `xmax_delta'.
413 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
414 and `xmax_delta'.
415
416 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
417 preprocessor conditional with if-clause, handling both light and
418 normal mode.
419
420 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
421 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000422
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004232007-01-25 Werner Lemberg <wl@gnu.org>
424
425 * docs/release: Updated -- Savannah uses a new uploading scheme.
426
David Turnera42567b2007-01-25 12:23:37 +00004272007-01-25 David Turner <david@freetype.org>
428
Werner Lembergd7855662007-01-25 13:53:56 +0000429 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000430
Werner Lembergd7855662007-01-25 13:53:56 +0000431 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
432 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
433 functions.
David Turnera42567b2007-01-25 12:23:37 +0000434
Werner Lembergd7855662007-01-25 13:53:56 +0000435 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000436
Werner Lembergb1be9e82007-01-25 11:50:00 +00004372007-01-25 Werner Lemberg <wl@gnu.org>
438
439 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000440 correctly in a sanity check. Since this function is only used to
441 load local and global functions, any charstring that called the last
442 local/global function would fail otherwise. This fixes Savannah bug
443 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000444
445 * docs/CHANGES: Document it.
446
David Turnerb6de8d12007-01-23 15:51:50 +00004472007-01-23 David Turner <david@freetype.org>
448
Werner Lembergb1be9e82007-01-25 11:50:00 +0000449 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
450 prevented compilation when disabling both the unpatented and the
451 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000452
Werner Lembergb1be9e82007-01-25 11:50:00 +0000453
454 Fix and enable the warper to improve `light' hinting mode. This is
455 not necessarily a final version, but it seems to work well.
456
457 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
458 Disable code.
459 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
460 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
461
462 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
463 (af_warper_compute_line_best): Fix array size of `scores'.
464 (af_warper_compute): Better handling of border cases.
465 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
466 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000467
Werner Lemberg011d1112007-01-21 09:36:00 +00004682007-01-21 Werner Lemberg <wl@gnu.org>
469
Werner Lemberg42b63b22007-01-21 21:01:33 +0000470 * ChangeLog: Split off older entries into...
471 * ChangeLog.22: This new file.
472
4732007-01-21 Werner Lemberg <wl@gnu.org>
474
Werner Lemberg555258f2007-01-21 09:46:37 +0000475 * docs/CHANGES: Document SHZ fix.
476
4772007-01-21 George Williams <gww@silcom.com>
478
479 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
480 points.
481
4822007-01-21 Werner Lemberg <wl@gnu.org>
483
Werner Lemberg011d1112007-01-21 09:36:00 +0000484 * src/sfnt/ttmtx.c (tt_face_get_metrics)
485 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
486
Werner Lemberg87a5a432007-01-17 12:44:39 +00004872007-01-17 Werner Lemberg <wl@gnu.org>
488
Werner Lembergb8003292007-01-17 12:56:25 +0000489
490 * Version 2.3.0 released.
491 =========================
492
493
494 Tag sources with `VER-2-3-0-FINAL'.
495
4962007-01-17 Werner Lemberg <wl@gnu.org>
497
Werner Lemberg87a5a432007-01-17 12:44:39 +0000498 * docs/release: Updated.
499
David Turner22122722007-01-16 20:06:44 +00005002007-01-16 David Turner <david@freetype.org>
501
Werner Lemberg87a5a432007-01-17 12:44:39 +0000502 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
503 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
504 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
505 warnings.
David Turner22122722007-01-16 20:06:44 +0000506
Werner Lemberg267e1d72007-01-15 07:48:09 +00005072007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
508
509 * builds/amiga/makefile, builds/amiga/makefile.os4,
510 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
511
512 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
513
Werner Lemberg8c4120d2007-01-15 06:42:40 +00005142007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
515
516 Fix various compiler warnings.
517
518 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
519 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
520 s/index/strike_index/.
521 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
522
523 * src/gxvalid/gxvmorx5.c
524 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
525
526 * src/truetype/ttinterp.c (Compute_Point_Displacement),
527 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
528 uninitialized variables.
529
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005302007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
531
532 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
533
Werner Lemberg281c1482007-01-13 22:50:51 +00005342007-01-13 Werner Lemberg <wl@gnu.org>
535
536 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
537 versions up to 0x3FF without complaining.
538
Werner Lembergac250b22007-01-13 14:01:36 +00005392007-01-13 Derek Clegg <dclegg@apple.com>
540
541 Add FT_Get_PS_Font_Info interface to CFF driver.
542
543 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
544 (CFF_FontRec): Add `font_info' field.
545
546 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
547 (cff_font_done): Free font->font_info if necessary.
548
549 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
550 (cff_service_ps_info): Register cff_ps_get_font_info.
551
Werner Lemberg23df31a2007-01-13 08:45:00 +00005522007-01-13 Werner Lemberg <wl@gnu.org>
553
554 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
555 with C++ compiler.
556
557 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
558 af_glyph_hints_dump_edges): Ditto.
559
560 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
561 `modules.cfg').
562
563 * src/sfnt/ttsbit0.h: Remove.
564
565 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
566
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005672007-01-12 David Turner <david@freetype.org>
568
569 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
570 bug in the bitmap emboldener if the pitch of the source bitmap is
571 much larger than its width.
572
573 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
574 compilation warning.
575
Werner Lemberg6d96d312007-01-12 10:30:19 +00005762007-01-12 Werner Lemberg <wl@gnu.org>
577
578 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
579 `automake' CVS module from sources.redhat.com.
580
Werner Lemberg17432b52007-01-12 09:28:44 +00005812007-01-11 Werner Lemberg <wl@gnu.org>
582
583 * src/type1/t1load.c (is_space): Removed.
584 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
585 (parse_charstrings): Use IS_PS_TOKEN.
586
587
588 * autogen.sh: Avoid bash specific syntax.
589
David Turner038ace22007-01-11 15:00:59 +00005902007-01-11 David Turner <david@freetype.org>
591
Werner Lemberg17432b52007-01-12 09:28:44 +0000592 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000593
Werner Lemberg17432b52007-01-12 09:28:44 +0000594 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000595
Werner Lemberg17432b52007-01-12 09:28:44 +0000596 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
597 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000598 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000599
Werner Lemberg17432b52007-01-12 09:28:44 +0000600 * autogen.sh: Small fix to get it working on Mac OS X properly:
601 The issue is that GNU libtool is called `glibtool' on this platform,
602 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000603
David Turner2628ea92007-01-10 13:15:56 +00006042007-01-10 David Turner <david@freetype.org>
605
Werner Lemberg17432b52007-01-12 09:28:44 +0000606 * all-sources: Tag all sources with VER-2-3-0-RC1 and
607 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000608
Werner Lemberg17432b52007-01-12 09:28:44 +0000609 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
610 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
611 version number to 2.3.0.
612
613 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
614 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000615
616 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000617 include/freetype/ftlcdfil.h: Update reference documentation with
618 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000619
Werner Lemberg17432b52007-01-12 09:28:44 +0000620 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
621 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000622
Werner Lembergbf02d392007-01-10 07:07:37 +00006232007-01-10 Derek Clegg <dclegg@apple.com>
624
625 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
626 values.
627
David Turnerf48b60e2007-01-08 15:15:32 +00006282007-01-08 David Turner <david@freetype.org>
629
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000630 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000631
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000632 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
633 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000634 corresponding to a given character pixel size.
635
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000636 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
637 `gasp' table, in order to avoid potential problems with later
638 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000639
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000640 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
641 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000642
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000643 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
644 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
645 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
646 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000647
Werner Lemberge6b6f372007-01-07 00:06:47 +00006482007-01-07 Werner Lemberg <wl@gnu.org>
649
Werner Lembergb8004d22007-01-07 09:13:38 +0000650 * src/cid/cidparse.c (cid_parser_new): Improve error message for
651 Type 11 fonts.
652 Scan for `/sfnts' token.
653
6542007-01-07 Werner Lemberg <wl@gnu.org>
655
656 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000657
Werner Lembergbe5f7972007-01-06 07:51:48 +00006582007-01-06 Werner Lemberg <wl@gnu.org>
659
660 * src/cff/cffload.c (cff_index_init): Remove unused variable.
661 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
662
David Turnera8cf42b2007-01-04 16:46:46 +00006632007-01-04 David Turner <david@freetype.org>
664
Werner Lembergf6294392007-01-06 07:47:45 +0000665 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
666 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000667
Werner Lembergf6294392007-01-06 07:47:45 +0000668
669 Do not allocate interpreter-specific tables in memory if we are not
670 going to load glyphs with the bytecode interpreter anyway.
671
672 * src/truetype/ttgload.c (tt_loader_init): Load execution context
673 only if glyph is hinted.
674 Updated.
675 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
676 and `cvs_ready'.
677 Add `tt_size_ready_bytecode' declaration.
678 * src/truetype/ttobjs.c (tt_size_done_bytecode,
679 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
680 (tt_size_init): Move most code into `tt_size_init_bytecode'.
681 (tt_size_done): Move most code into `tt_size_done_bytecode'.
682 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000683
David Turner91a34022007-01-05 14:47:08 +0000684
Werner Lembergf6294392007-01-06 07:47:45 +0000685 Don't extract the metrics table from the SFNT font file. Instead,
686 reparse it on each glyph load. The runtime difference is not
687 noticeable, and it can save a lot of heap memory when memory-mapped
688 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000689
Werner Lembergf6294392007-01-06 07:47:45 +0000690 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
691 `horz_metrics_offset' and `vert_metrics_ofset'.
692 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
693 Updated.
694
695
696 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
697
698
699 Do not load the CFF index offsets into memory, since this wastes a
700 *lot* of heap memory with large Asian CFF fonts. There is no
701 significant performance loss.
702
703 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
704 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
705 `data_size'.
706 (CFF_CharsetRec): Add field `num_glyphs'.
707
708 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
709 cff_charset_cid_to_gindex): New functions.
710 (cff_new_index): Renamed to...
711 (cff_index_init): This. Update all callers.
712 Updated -- some code has been moved to `cff_index_load_offsets'.
713 (cff_done_index): Renamed to...
714 (cff_index_done): This. Update all callers.
715 (cff_index_get_pointers, cff_index_access_element): Updated to use
716 stream offsets.
717 (cff_charset_compute_cids): Set `num_glyphs' field.
718 (cff_encoding_load): Updated.
719
720 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000721
7222007-01-04 David Turner <david@freetype.org>
723
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000724 * docs/INSTALL.UNIX: Simplify some parts, add reference to
725 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000726
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000727 * README.CVS: Add common problem description and solution
728 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000729
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000730 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000731
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000732 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000733
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000734 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000735
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000736 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
737 (TWorker): This.
738 Remove `count_table' and `memory'.
739 Make `grays' a pointer.
740 (TRaster): New structure.
741 (count_table): New static array.
742 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
743 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
744 ft_black_set_mode, ft_black_render): Updated.
745 (ft_black_init): Don't initialize `count_table'.
746 (ft_black_reset): Use the render pool. This saves about 6KB of
747 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000748
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000749 * src/smooth/ftgrays.c (TRaster): Replaced with...
750 (TWorker): This.
751 Remove `memory'.
752 (TRaster): New structure.
753
754 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
755 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
756 gray_render_span, gray_raster_render): Updated.
757 (gray_raster_reset): Use the render pool. This saves about 6KB of
758 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000759
David Turner8a6c44e2007-01-04 17:03:11 +0000760 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
761 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000762 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
763 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
764 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000765
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000766 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
767 Remove a typo that results in no hinting and a memory leak with some
768 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000769
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000770 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000771 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000772 CFF_Faces in it. We need to close all faces before destroying the
773 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000774
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007752007-01-02 Werner Lemberg <wl@gnu.org>
776
777 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
778 Remove compiler warning.
779
David Turner9207e002007-01-02 16:58:13 +00007802007-01-02 David Turner <david@freetype.org>
781
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000782 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000783
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007842006-12-31 Masatake YAMATO <jet@gyve.org>
785
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000786 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
787 function.
788 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000789 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000790 `gxv_kern_subtable_fmt0_pairs_validate'.
791
David Turner115b4422006-12-22 11:37:05 +00007922006-12-22 David Turner <david@freetype.org>
793
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000794 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
795 warnings.
David Turner115b4422006-12-22 11:37:05 +0000796
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000797 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
798 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000799
Werner Lemberg4755bf72006-12-16 08:58:44 +00008002006-12-16 Anders Kaseorg <anders@kaseorg.com>
801
802 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
803 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
804
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00008052006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
806
Werner Lemberg9b774e22007-01-16 06:11:27 +0000807 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000808 sync with the modification by Jens Claudius on 2006-08-22; cf.
809 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 +0000810
8112006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
812
813 * src/base/ftmac.c: Specialized for Mac OS X only.
814 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
815 * builds/unix/configure.raw: Ditto. When explicit switches for
816 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
817 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
818
8192006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
820
821 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
822 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
823 instead of src/base/ftmac.c
824 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
825 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
826 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
827 that cannot be built at present.
828
8292006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
830
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000831 * src/base/ftobjs.c: Improvement of resource fork handler for
832 POSIX, cf.
833 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000834 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
835 format or .dfont, to simulate the face index number counted by ftmac.c.
836 (IsMacResource): Return the number of scalable faces correctly.
837
Werner Lembergec5b4502006-12-10 07:51:38 +00008382006-12-10 Werner Lemberg <wl@gnu.org>
839
840 * builds/toplevel.mk (version): Protect against `distclean' target.
841
Werner Lembergb26b3142006-12-09 20:01:43 +00008422006-12-09 Werner Lemberg <wl@gnu.org>
843
844 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
845 or `type'.
846
847 * builds/freetype.mk (version): Extracted from freetype.h, using
848 GNU make's built-in string functions.
849 (refdoc): Use $(version) instead of static version number.
850
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008512006-12-08 Werner Lemberg <wl@gnu.org>
852
853 * builds/toplevel.mk (dist): Extract version number from freetype.h.
854
Werner Lemberg15c29502006-12-09 07:29:54 +00008552006-12-08 Vladimir Volovich <vvv@vsu.ru>
856
857 * src/tools/apinames (State): Remove final comma in structure -- xlc
858 v5 under AIX 4.3 doesn't like this.
859
David Turnerdbf3b432006-12-07 21:18:09 +00008602006-12-07 David Turner <david@freetype.org>
861
Werner Lemberg256a3512006-12-08 06:49:33 +0000862 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
863 to the spacing of auto-fitted glyphs. This only impacts rare
864 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000865
Werner Lemberg11171312006-12-03 09:43:40 +00008662006-12-03 Werner Lemberg <wl@gnu.org>
867
868 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
869
Werner Lemberg960ba592006-12-01 08:20:47 +00008702006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000871
Werner Lemberg960ba592006-12-01 08:20:47 +0000872 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
873 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
874 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000875
David Turner80658e52006-11-28 08:09:20 +0000876
Werner Lemberg960ba592006-12-01 08:20:47 +0000877 * include/freetype/ftxf86.h: Fix and extend comment so that it
878 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000879
Werner Lemberg960ba592006-12-01 08:20:47 +0000880 * include/freetype/ftchapters.h: Add `font_format' section.
881
882
883 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
884 to TOC in index page.
885
8862006-11-28 David Turner <david@freetype.org>
887
888 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
889 trying to render into a zero-width/height bitmap, not an error code.
890
891 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
892
893 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
894 ones instead.
895
896 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
897 variable.
David Turner80658e52006-11-28 08:09:20 +0000898
Werner Lemberg8636c292006-11-26 22:28:13 +00008992006-11-26 Pierre Hanser <hanser@club-internet.fr>
900
901 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
902
Werner Lemberg960ba592006-12-01 08:20:47 +00009032006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000904
Werner Lemberg960ba592006-12-01 08:20:47 +0000905 * src/autofit/afhints.c (af_glyph_hints_dump_points,
906 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
907 Add stubs to link the `ftgrid' test program when debugging is
908 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000909
Werner Lemberg960ba592006-12-01 08:20:47 +00009102006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000911
912 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000913 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
914
915 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
916 Emit more sensible information.
917
918 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
919
920 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
921 rounding of blue values.
922 (af_latin_hints_compute_segments): Hint segment heights.
923 (af_latin_hints_link_segments): Reduce `len_score' value.
924 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
925 value and use `height' member for comparisons.
926 (af_latin_hint_edges): Extend logging message.
927 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000928
Werner Lemberg91959bf2006-11-22 10:36:55 +00009292006-11-22 Werner Lemberg <wl@gnu.org>
930
931 Fix Savannah bug #15553.
932
933 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
934 program after a change from mono to grayscaling (and vice versa).
935 Use correct constant for comparison to get `exec->grayscale'.
936
Werner Lemberg913a3652006-11-19 09:19:17 +00009372006-11-18 Werner Lemberg <wl@gnu.org>
938
939 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000940 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000941 This patch fixes Savannah bug #18301.
942
943 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
944 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
945 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
946 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
947 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
948 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
949 (FNT_Load_Glyph): Check validity of `glyph_index'.
950
David Turner7bab6ae2006-11-13 11:25:06 +00009512006-11-13 David Turner <david@freetype.org>
952
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000953 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
954 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000955
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000956 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
957 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
958 when building the library to change the default LCD filter to be
959 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000960
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000961 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000962
David Turner8765c712006-11-10 16:49:42 +00009632006-11-10 David Turner <david@freetype.org>
964
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000965 * src/smooth/ftsmooth.c: API change for the LCD
966 filter. The FT_LcdFilter value is an enumeration describing which
967 filter to apply, with new values FT_LCD_FILTER_LIGHT and
968 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
969 algorithm which produces strong color fringes for everything
970 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000971
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000972 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
973 second parameter to an enum type.
974
975 * src/base/ftlcdfil.c (USE_LEGACY): Define.
976 (_ft_lcd_filter): Rename to...
977 (_ft_lcd_filter_fir): This.
978 Update parameters.
979 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
980 (FT_Library_Set_LcdFilter): Update parameters.
981 Handle new filter modes.
982
983 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
984 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
985 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
986 callback and update other fields.
987
988 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
989 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
990 Other minor improvements.
991
992 * src/autofit/aflatin.c: Various tiny improvements that drastically
993 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
994 (af_latin_hints_compute_edges): Fix typo.
995 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000996
David Turner4e9cc3c2006-11-09 16:31:52 +00009972006-11-09 David Turner <david@freetype.org>
998
Werner Lemberg49c77a82006-11-09 21:51:57 +0000999 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1000 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001001
Werner Lemberg5e430892006-11-07 09:35:03 +000010022006-11-07 Zhe Su <james.su@gmail.com>
1003
1004 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1005 also.
1006
Werner Lemberg111b5ae2006-11-03 09:40:12 +000010072006-11-03 Werner Lemberg <wl@gnu.org>
1008
1009 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1010
David Turner40604742006-11-02 16:37:35 +000010112006-11-02 David Turner <david@freetype.org>
1012
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001013 Add a few tweaks to better handle serif fonts.
1014 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001015
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001016 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1017 segments that are less than 1.5 pixels high. This gets rid of
1018 *many* corner cases with serifs.
1019 (af_latin_align_linked_edge): Add logging message.
1020 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1021 Add logging messages.
1022 Handle AF_EDGE_FLAG flag specially.
1023
1024 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1025 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1026
1027 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1028 Update external declarations.
1029 (af_corner_orientation, af_corner_is_flat): Replaced by...
1030
1031 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1032 ft_corner_is_flat): These declarations.
1033
1034 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1035 Comment out. Replaced by...
1036
1037 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1038 These functions. Update all callers.
1039 (FT_Add64) [!FT_LONG64]: Simplify.
1040
1041 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1042 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1043 production of garbage by missing lots of segments.
1044
1045 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1046
1047 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1048 [AF_DEBUG]: Set _af_debug_hints.
1049
1050
1051 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1052 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1053 and ft_corner_orientation.
1054
1055
1056 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001057
Werner Lemberge88c5262006-10-24 05:46:26 +000010582006-10-24 Werner Lemberg <wl@gnu.org>
1059
1060 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1061
1062 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1063 as argument.
1064
David Turnera1861392006-10-23 16:00:59 +000010652006-10-23 Zhe Su <zsu@novell.com>
1066
Werner Lemberg715e96e2006-10-24 05:28:45 +00001067 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1068 better deal with broken Asian fonts with strange glyphs, having
1069 self-intersections and other peculiarities. The used algorithm is
1070 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001071
David Turnere140f142006-10-23 08:56:57 +000010722006-10-23 David Turner <david@freetype.org>
1073
Werner Lemberg715e96e2006-10-24 05:28:45 +00001074 Speed up the CFF font loader. With some large CFF fonts,
1075 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001076
Werner Lemberg715e96e2006-10-24 05:28:45 +00001077 * src/cff/cffload.c (cff_get_offset): Removed.
1078 (cff_new_index): Inline functionality of `cff_get_offset'.
1079 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1080 (cff_charset_done): Call `cff_charset_free_cids'.
1081 (cff_charset_load): Call `cff_charset_compute_cids'.
1082 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1083
1084 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1085 with FT_NEXT_XXX.
1086
1087
1088 Speed up the Postscript hinter, with more than 100% speed increase
1089 on my machine.
1090
1091 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1092 psh_corner_orientation): New functions.
1093 (psh_glyph_compute_inflections): Merge loops for efficiency.
1094 Use `psh_corner_orientation'.
1095 (psh_glyph_init): Use `psh_corner_is_flat'.
1096 (psh_hint_table_find_strong_point): Renamed to...
1097 (psh_hint_table_find_strong_points): This.
1098 Rewrite, adding argument to handle all points at once.
1099 Update all callers.
1100 (PSH_MAX_STRONG_INTERNAL): New macro.
1101 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001102
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000011032006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1104
1105 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001106 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001107
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000011082006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1109
1110 * docs/INSTALL.CROSS: New document file for cross-building.
1111
1112 * builds/unix/configure.raw: Preliminary cross-building support.
1113 Find native C compiler and pass it by CC_BUILD, and
1114 find suffix for native executable and pass it by EXEEXT_BUILD.
1115 Also suffix for target executable is passed by EXEEXT.
1116
Werner Lembergb9e6d692006-10-15 08:58:40 +00001117 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1118 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001119 CC_BUILD and EXEEXT_BUILD.
1120
Werner Lembergb9e6d692006-10-15 08:58:40 +00001121 * builds/exports.mk (APINAMES_EXE): Change the extension for
1122 apinames from the suffix for target (E) to that for building host
1123 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001124
Werner Lemberg82a07e92006-10-12 06:20:44 +000011252006-10-12 Werner Lemberg <wl@gnu.org>
1126
1127 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1128 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1129 which reference those files.
1130
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011312006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1132
Werner Lembergb9e6d692006-10-15 08:58:40 +00001133 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1134 embedded in freetype2.pc and freetype-config. Use it to record
1135 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001136
1137 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1138
1139 * builds/unix/freetype-config.in: Ditto.
1140
Werner Lemberg28e17d92006-10-11 17:27:47 +000011412006-10-11 Werner Lemberg <wl@gnu.org>
1142
1143 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1144 development.
1145
Jens Claudius336d2292006-10-03 08:53:37 +000011462006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1147
1148 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1149 argument to ft_setjmp.
1150
1151 * include/freetype/internal/ftvalid.h: Add comment that
1152 ft_validator_run must not be used.
1153
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011542006-10-01 Werner Lemberg <wl@gnu.org>
1155
1156 * src/base/ftbase.c: Undo change from 2006-09-30.
1157
1158 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1159
11602006-09-30 David Turner <david@freetype.org>
1161
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001162 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1163 s/unpatented_hinting/ignore_unpatented_hinter/.
1164 Update all callers.
1165
1166 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1167 auto-hinting shall be used or not.
1168
1169 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001170
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011712006-09-30 Werner Lemberg <wl@gnu.org>
1172
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001173 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1174 in use).
1175
1176 * src/base/ftbase.c: Include `ftlcdfil.c'.
1177
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011782006-09-29 Werner Lemberg <wl@gnu.org>
1179
1180 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1181 overlapping segments. Bug reported by Stefan Koch.
1182
David Turnerad830712006-09-27 16:20:59 +000011832006-09-28 David Turner <david@freetype.org>
1184
Werner Lemberg2c002e12006-09-29 21:31:53 +00001185 Fix a bug in the automatic unpatented hinting support which prevents
1186 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001187
Werner Lemberg2c002e12006-09-29 21:31:53 +00001188 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1189 s/force_autohint/unpatented_hinting/. Update all callers.
1190
1191 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1192
1193 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001194
David Turner8a317cf2006-09-27 07:52:48 +000011952006-09-27 David Turner <david@freetype.org>
1196
Werner Lemberg2c002e12006-09-29 21:31:53 +00001197 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001198
David Turner8a317cf2006-09-27 07:52:48 +00001199
David Turnere140f142006-10-23 08:56:57 +00001200 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001201 In a default build, the function `FT_Library_SetLcdFilter' returns
1202 `FT_Err_Unimplemented_Feature'; you need to #define
1203 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1204 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001205
Werner Lemberg2c002e12006-09-29 21:31:53 +00001206 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001207
Werner Lemberg2c002e12006-09-29 21:31:53 +00001208 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1209 typedef.
1210 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1211 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001212
Werner Lemberg2c002e12006-09-29 21:31:53 +00001213 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1214 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001215
Werner Lemberg2c002e12006-09-29 21:31:53 +00001216 Handle subpixel rendering.
1217 Simplify function.
1218 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1219 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1220
1221 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1222 pointing to <freetype/ftlcdfil.h>.
1223
1224 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1225 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1226
1227 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001228
Werner Lemberge20df4a2006-09-27 06:29:21 +000012292006-09-26 David Bustin
1230
1231 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1232 correctly. Reported as Savannah bug #17843.
1233
David Turner6f8c6222006-09-26 15:42:44 +000012342006-09-26 David Turner <david@freetype.org>
1235
Werner Lemberg110246c2006-09-26 21:55:44 +00001236 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1237 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1238 horizontal and vertical hinting for the purpose of debugging the
1239 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001240
Werner Lemberg110246c2006-09-26 21:55:44 +00001241 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1242 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001243
Werner Lemberg110246c2006-09-26 21:55:44 +00001244 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1245
1246 * include/freetype/config/ftoption.h, devel/ftoption.h
1247 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1248 we want to compile LCD-optimized rendering code la ClearType) or
1249 not. The macro *must* be disabled in default builds of the library
1250 for patent reasons.
1251
1252 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1253 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1254 isn't defined at compile time. This only changes the content of the
1255 rendered glyph to match the one of normal gray-level rendering,
1256 hence clients should not need to be modified.
1257
1258 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001259
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012602006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1261
1262 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1263 LWFN fails and both are available.
1264
David Turnerf3050052006-09-11 12:00:32 +000012652006-09-11 David Turner <david@freetype.org>
1266
Werner Lembergf9644552006-09-12 13:48:10 +00001267 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1268 report their English names through an Apple Roman
1269 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001270
Werner Lembergf9644552006-09-12 13:48:10 +00001271 If the font uses another name entry with language_id == English, it
1272 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001273
Werner Lembergf9644552006-09-12 13:48:10 +00001274 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1275 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001276
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012772006-09-05 Werner Lemberg <wl@gnu.org>
1278
1279 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001280 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001281 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1282 `HAN NOM B.ttf').
1283
1284 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1285
David Turner772e55d2006-09-05 09:45:15 +000012862006-09-05 David Turner <david@freetype.org>
1287
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001288 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001289
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001290 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1291 (TRaster): Remove `count_ex' and `count_ey'.
1292 (gray_find_cell): Remove 2nd and 3rd argument.
1293 (gray_alloc_cell): Merged with `gray_find_cell'.
1294 (gray_record_cell): Simplify.
1295 (gray_set_cell): Rewrite.
1296 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1297 (gray_render_span): Don't use FT_MEM_SET for small values.
1298 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1299 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1300 bitmap scanline.
1301 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001302
David Turneraa557a92006-09-04 16:42:44 +000013032006-09-04 David Turner <david@freetype.org>
1304
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001305 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1306 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001307
Werner Lemberg2d8629b2006-09-03 06:18:45 +000013082006-09-03 Werner Lemberg <wl@gnu.org>
1309
1310 * devel/ftoption.h: Synchronize with
1311 include/freetype/config/ftoption.h.
1312
1313 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1314 variable declaration.
1315 (gray_convert_glyph): Fix compiler warnings.
1316
David Turner6d79f212006-09-01 14:09:35 +000013172006-09-01 David Turner <david@freetype.org>
1318
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001319 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1320 to recognize a few fonts that require the automatic unpatented
1321 loader.
David Turnerbd502952006-09-01 19:05:24 +00001322
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001323 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1324 rasterizer. The speed improvement is between 15% and 25%, depending
1325 on the font data.
1326
1327 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1328 (TCell): Redefine.
1329 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1330 (gray_init_cells): Updated.
1331 (gray_find_cell, gray_alloc_cell): New functions.
1332 (gray_record_cell): Rewritten to use `gray_find_cell' and
1333 `gray_alloc_cell'.
1334 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1335 QSORT_THRESHOLD):
1336 Removed.
1337 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1338 gray_dump_cells): Removed.
1339 (gray_sweep): Rewritten.
1340 (gray_convert_glyph): Rewrite code which used one of the sorting
1341 functions.
1342 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001343
Werner Lembergd898aed2006-08-29 09:50:34 +000013442006-08-29 Dr. Werner Fink <werner@suse.de>
1345
1346 * configure: Make it possible to handle configure options which
1347 have strings containing spaces.
1348
13492006-08-27 David Turner <david@freetype.org>
1350
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001351 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1352 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1353 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1354
1355 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1356 src/truetype/truetype.c, src/truetype/ttdriver.c,
1357 src/truetype/ttgload.c, src/truetype/ttgload.h,
1358 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1359 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1360 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1361
1362 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1363 member `force_autohint'.
1364
1365 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1366
1367 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1368 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001369
Jens Claudiusa787f452006-08-27 11:26:18 +000013702006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1371
1372 Fix miscellaneous compiler warnings.
1373
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001374 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1375 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001376
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001377 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1378 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1379 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001380
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001381 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1382 volatileness of argument to ft_longjmp. Spotted by Werner
1383 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001384
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001385 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1386 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001387
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001388 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1389 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001390
Werner Lembergc4c35b72006-08-27 08:03:46 +000013912006-08-27 Werner Lemberg <wl@gnu.org>
1392
1393 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1394 Reported by Jens.
1395
Jens Claudius088e44e2006-08-22 14:24:30 +000013962006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001397
Jens Claudius088e44e2006-08-22 14:24:30 +00001398 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001399 about addresses of volatile objects passed as function arguments as
1400 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001401
Werner Lembergc4c35b72006-08-27 08:03:46 +00001402 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1403 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001404
1405 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1406 argument `table' a pointer to a volatile object.
1407
1408 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1409 argument `table' a pointer to a volatile object.
1410
Jens Claudius2652bd52006-08-18 17:20:37 +000014112006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1412
1413 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1414 variable `_sfnt' as volatile since it must keep its value across
1415 a call to ft_setjmp.
1416 (gxv_validate): Same for local variables `memory' and `valid'.
1417 (classic_kern_validate): Same for local variables `memory',
1418 `ckern', and `valid'.
1419
1420 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1421 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1422 `jstf', and 'valid'.
1423
1424 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1425 local variable `cmap'.
1426
David Turner9fbfc6a2006-08-16 09:11:31 +000014272006-08-16 David Turner <david@freetype.org>
1428
Werner Lemberg12342992006-08-19 11:18:09 +00001429 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1430 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001431
Werner Lemberg12342992006-08-19 11:18:09 +00001432 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1433 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001434
David Turner33f5f242006-08-16 16:50:55 +00001435
Werner Lemberg12342992006-08-19 11:18:09 +00001436 Improvements to native TrueType hinting. This is a first try,
1437 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1438
1439 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1440 `extra_points2'.
1441
1442 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1443 `orus'.
1444
1445 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1446 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1447 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1448 handle `extra_points2'.
1449
1450 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1451 Remove compiler warning.
1452 (cur_to_arg): Remove macro.
1453 (TT_Hint_Glyph): Updated.
1454 (TT_Process_Simple_Glyph): Handle `orus'.
1455
1456 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1457 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1458 (LOC_Ins_IUP): Renamed to...
1459 (IUP_WorkerRec): This.
1460 Add `orus' member.
1461 (Shift): Renamed to...
1462 (_iup_worker_shift): This.
1463 Updated.
1464 (Interp): Renamed to...
1465 (_iup_worker_interpolate): This.
1466 Updated to handle `orus'.
1467 (Ins_IUP): Updated.
1468
1469 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1470 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001471
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014722006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1473
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001474 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001475 build ftvalid in ft2demos. This has been inadvertedly changed
1476 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001477
14782006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1479
Werner Lemberg12342992006-08-19 11:18:09 +00001480 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1481 Jens:
1482 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001483
Werner Lemberg12342992006-08-19 11:18:09 +00001484 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1485 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001486
1487 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1488
Jens Claudius9950adc2006-08-13 12:14:36 +000014892006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1490
Werner Lemberg12342992006-08-19 11:18:09 +00001491 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1492 T1_TOKEN_TYPE_KEY.
1493 (T1_FieldRec): Add `dict'.
1494 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1495 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1496 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001497
Werner Lemberg12342992006-08-19 11:18:09 +00001498 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1499 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001500
1501 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1502
1503 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001504 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1505 not T1_TOKEN_TYPE_ANY.
1506 (ps_parser_load_field): Make sure a token that should be a string or
1507 name is really a string or name.
1508 Avoid memory leak if a keyword has been already encountered and its
1509 value is overwritten.
1510 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1511 T1_FIELD_XXX.
1512 (parse_dict): Ignore keywords that occur in the wrong dictionary
1513 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001514
Werner Lemberg12342992006-08-19 11:18:09 +00001515 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1516 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001517
Werner Lemberg12342992006-08-19 11:18:09 +00001518 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1519 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001520
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000015212006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1522
1523 Move creation of field `buildchar' of T1_DecoderRec out of
1524 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1525 of it.
1526
1527 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1528 and `T1_Compute_Max_Advance'.
1529
1530 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1531 Remove field `face', add `len_buildchar'.
1532
1533 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1534 field `buildchar'.
1535
1536 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1537 finisher for T1_Decoder.
1538 (cid_slot_load_glyph): Do not ignore failure when initializing the
1539 T1_Decoder.
1540
1541 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1542 Updated.
1543 (t1_decoder_init): Remove initialization of fields `buildchar' and
1544 `len_buildchar'.
1545 (t1_decoder_done): Remove deallocation of field `buildchar'.
1546
1547 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1548 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1549 T1_Decoder.
1550 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1551 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1552 case of error.
1553
1554 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1555 `buildchar' of T1_FaceRec.
1556
1557 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1558 `buildchar' of T1_FaceRec.
1559
Werner Lemberg1a380e02006-07-14 18:28:08 +000015602006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1561
1562 * freetype2/include/freetype/internal/psaux.h: New macros
1563 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1564 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1565 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1566 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1567 (T1_DecoderRec): New fields `buildchar' and `face'.
1568 (IS_PS_TOKEN): New macro.
1569
1570 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1571 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1572
1573 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1574 `default_design_vector' and `num_default_design_vector'.
1575
1576 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1577 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1578 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1579
1580 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1581 `token' argument to be NULL if we want only to count the number of
1582 tokens.
1583 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1584 want to skip the array.
1585 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1586 want to skip the array.
1587
1588 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1589 support for (partially commented out) othersubrs 19-25, 27, and 28.
1590 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1591 (t1_decoder_done): Release new field `buildchar'.
1592
1593 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1594 functions.
1595 (t1_keywords): Register them.
1596 (t1_allocate_blend): Updated.
1597 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1598 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1599 (parse_dict): Remove `keyword_flags' argument.
1600 Use new macro IS_PS_TOKEN.
1601 Changed function so that later PostScript definitions override
1602 earlier ones.
1603 (t1_init_loader): Initialize new field `keywords_encountered'.
1604 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1605 `len_buildchar'.
1606 Remove `keywords_flags'.
1607
1608 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1609 `keywords_encountered'.
1610 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1611
1612 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1613 New entries for parsing /NDV, /CDV, and /DesignVector.
1614
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000016152006-07-07 Werner Lemberg <wl@gnu.org>
1616
1617 Add many checks to protect against malformed PCF files.
1618
1619 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1620 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1621
1622 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1623 data and check that tables don't overlap (using a simple
1624 bubblesort).
1625 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1626 New macros which give the size of data structures in the data
1627 stream.
1628 (pcf_get_properties): Use rough estimates to get array size limits.
1629 Assign `face->nprops' and `face->properties' earlier so that a call
1630 to PCF_Face_Done can do the clean-up in case of error.
1631 Protect against invalid string offsets.
1632 (pcf_get_metrics): Clean up code.
1633 Adjust tracing message levels.
1634 Use rough estimate to get array size limit.
1635 (pcf_get_bitmaps): Clean up code.
1636 Adjust tracing message levels.
1637 Use rough estimates to get offset limits.
1638 (pcf_get_encodings): Adjust tracing message level.
1639 (pcf_get_accel): Clean up code.
1640
Werner Lemberg8eb05252006-06-27 06:20:01 +000016412006-06-26 Werner Lemberg <wl@gnu.org>
1642
1643 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1644 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1645
Werner Lemberg24703f82006-06-26 19:12:51 +000016462006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1647
1648 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1649 (t1_decoder_parse_charstrings): Operator with
1650 opcode 15 pops its two arguments.
1651 Handle the case where the pops of an othersubr may be part of a
1652 subroutine.
1653 Handle unknown othersubrs gracefully: count their operands and let
1654 the following pop operators push the operands as the results onto
1655 the Type1 stack.
1656 Improve handling of setcurrentpoint opcode.
1657
Werner Lembergc011f4c2006-06-26 09:40:00 +000016582006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1659
1660 The Type 1 parser now skips over top-level procedures as required
1661 for a `Simplified Parser'. This makes the parser more robust as it
1662 doesn't poke around in PostScript code. Additionally, it makes the
1663 FontDirectory hackery in src/type1/t1load.c unnecessary.
1664
1665 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1666 (skip_literal_string): Add FT_Error as return value.
1667 Handle escapes better.
1668 (skip_string): Add FT_Error as return value.
1669 Don't set `parser->error' but return error code directly.
1670 (skip_procedure): New function.
1671 (ps_parser_skip_PS_token): Handle procedures.
1672 Update code.
1673 (ps_parser_to_token): Update code.
1674 (ps_parser_load_field_table): Handle bbox entries also.
1675
1676 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1677 Add commented-out code for synthetic fonts.
1678
Werner Lemberga2da05c2006-06-25 06:27:27 +000016792006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1680
1681 Fix two hinting bugs as reported in
1682 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1683
1684 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1685 `first_point' member.
1686
1687 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1688 `first_point'.
1689 (TT_Process_Composite_Glyph): Always untouch points.
1690
1691 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1692 `first_point' and `last_point' in case of composite glyphs.
1693 (Ins_IUP): Fix computation of `end_point'.
1694
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016952006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1696
Werner Lembergef3d2c22006-06-25 06:07:14 +00001697 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1698 Mac. The original patch was written by David Sachitano and Lawrence
1699 Coopet, and modified by Sean McBride for MPW compatibility. Only
1700 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001701
Werner Lembergef3d2c22006-06-25 06:07:14 +00001702 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1703 Mac OS X platforms.
1704 (OS_INLINE): Undefine before definition.
1705 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1706 FontAssociation table in FOND resource.
1707 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1708 and fontSize at each entry of FontAssociation table in FOND
1709 resource.
1710 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1711 ffStylOff of FamilyRecord header of FOND resource, the header,
1712 fontSize, fontID at each entry of FontAssociation table, and
1713 StyleMapping table.
1714 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001715
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000017162006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1717
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001718 Public API of TrueTypeGX, OpenType, and classic kern table validator
1719 should return `FT_Err_Unimplemented_Feature' if validation service
1720 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001721 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001722 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1723
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001724 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1725 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1726 unavailable.
1727 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1728 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001729
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001730 * src/base/ftotval.c (FT_OpenType_Validate): Return
1731 FT_Err_Unimplemented_Feature if OpenType validation service is
1732 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001733
Werner Lembergb10e45a2006-06-08 07:32:56 +000017342006-06-08 Werner Lemberg <wl@gnu.org>
1735
1736 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1737 errors.
1738
David Turner5f1f7502006-06-07 05:11:50 +000017392006-06-07 David Turner <david@freetype.org>
1740
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001741 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1742 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1743 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001744
David Turner457b4a82006-06-06 08:14:14 +000017452006-06-06 David Turner <david@freetype.org>
1746
Werner Lemberg4836f952006-06-06 12:54:08 +00001747 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001748
Werner Lemberg4836f952006-06-06 12:54:08 +00001749 We change `ps_unicodes_init' so that it also takes a
1750 `free_glyph_name' callback to release the glyph names returned by
1751 `get_glyph_name'
1752
1753 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1754 Renamed to ...
1755 (PS_GetGlyphNameFunc): This.
1756 (PS_FreeGlyphNameFunc): New typedef.
1757 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1758
1759 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1760 argument.
1761 (cff_sid_free_glyph_name): New function.
1762 (cff_cmap_unicode_init): Updated.
1763
1764 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1765
1766 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1767 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001768
1769
David Turner09717352006-06-04 14:33:08 +000017702006-06-04 David Turner <david@freetype.org>
1771
Werner Lembergd724f202006-06-04 15:17:41 +00001772 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1773 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001774 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001775
Werner Lembergd724f202006-06-04 15:17:41 +00001776 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1777 of `face->num_glyphs' which missed the last glyph, due to
1778 the offset-by-1 computation, since the PFR format doesn't
1779 guarantee that glyph index 0 corresponds to the `missing
1780 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001781
Werner Lemberg33779662006-05-26 06:30:05 +000017822006-05-25 Werner Lemberg <wl@gnu.org>
1783
1784 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1785 `-no-undefined'. Reported by Christian Biesinger.
1786
Werner Lemberg24773d62006-05-20 08:53:13 +000017872006-05-19 Brian Weed <bw@imaginengine.com>
1788
1789 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1790 have debug information, and debug libraries use `C7 compatible'
1791 debug info.
1792
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017932006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1794
Werner Lemberga6523a62006-05-20 08:47:01 +00001795 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001796 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001797
Werner Lemberga6523a62006-05-20 08:47:01 +00001798 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1799 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001800
1801 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001802 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001803
18042006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1805
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001806 * build/unix/configure.raw: Add a fallback to disable Carbon
1807 dependency, if configured with no options on Mac OS X.
1808
18092006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1810
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001811 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001812 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001813 the second part of Savannah bug #16590.
1814
Werner Lemberg545c4e52006-05-17 22:55:04 +000018152006-05-18 Werner Lemberg <wl@gnu.org>
1816
1817 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1818 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1819
David Turnerdc3ff312006-05-17 12:59:35 +000018202006-05-17 David Turner <david@freetype.org>
1821
Werner Lemberg545c4e52006-05-17 22:55:04 +00001822 This is a major patch used to drastically improve the performance of
1823 loading glyphs. This both speeds up loading the glyph vectors
1824 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001825
Werner Lemberg545c4e52006-05-17 22:55:04 +00001826 We now use inline assembler code with GCC to implement `FT_MulFix',
1827 which is probably the most important function related to the
1828 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001829
Werner Lemberg545c4e52006-05-17 22:55:04 +00001830 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001831
1832
Werner Lemberg545c4e52006-05-17 22:55:04 +00001833 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1834 `cursor' and `limit'.
1835
1836 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1837 New functions.
1838 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1839 [TEST]: Remove.
1840
1841 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1842 code.
1843
1844 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1845 `FT_ZERO'
1846 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1847 (af_glyph_hints_reload: Rewrite recognition of weak points.
1848
1849 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1850 constant values out of the loops.
1851
1852 * src/autofit/aftypes.h: Updated.
1853
1854 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1855
1856 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1857 product to get orientation.
1858
1859 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1860 (FT_Stream_OpenGzip): Use it to handle small files directly in
1861 memory.
1862
1863 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1864 Improve performance.
1865
1866 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1867 `limit'.
1868
1869 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1870 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1871 exceedingly large values of number of contours. Speed up by
1872 reducing the number of loops.
1873
1874 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1875
1876
1877 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1878 used to detect rogue clients from 4 to 16. This is to prevent some
1879 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1880 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001881
Werner Lembergde2d90a2006-05-17 08:54:30 +000018822007-05-17 Werner Lemberg <wl@gnu.org>
1883
1884 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001885 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001886
18872006-05-16 Werner Lemberg <wl@gnu.org>
1888
1889 * docs/PROBLEMS: Updated icl issues.
1890
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001891----------------------------------------------------------------------------
1892
Werner Lemberg42b63b22007-01-21 21:01:33 +00001893Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001894David Turner, Robert Wilhelm, and Werner Lemberg.
1895
1896This file is part of the FreeType project, and may only be used, modified,
1897and distributed under the terms of the FreeType project license,
1898LICENSE.TXT. By continuing to use, modify, or distribute this file you
1899indicate that you have read the license and understand and accept it
1900fully.
1901
1902
1903Local Variables:
1904version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001905coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001906End: