blob: f8230130c400173cd1a704e0582a61e7513209ba [file] [log] [blame]
Werner Lemberg5077e832007-05-04 06:13:46 +000012007-05-04 harry@kdevelop.org
2
3 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
4 mmap (which might happen on some RTOS). From Savannah patch #5909.
5
Werner Lemberg106eaf12007-05-03 07:07:47 +000062007-05-03 Werner Lemberg <wl@gnu.org>
7
8 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
9 * include/freetype/freetype.h (FT_Set_Char_Size): Update
10 documentation.
11
Werner Lemberg1b5267d2007-04-28 21:06:15 +0000122007-04-28 Victor Stinner <victor.stinner@inl.fr>
13
14 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
15 `cmap'.
16
Werner Lembergcc712a22007-04-27 17:16:50 +0000172007-04-27 Werner Lemberg <wl@gnu.org>
18
19 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
20 number of points in contours. Problem reported by Victor Stinner
21 <victor.stinner@haypocalc.com>.
22 (TT_Process_Simple_Glyph): Synchronize variable types.
23
Werner Lemberg45bb18f2007-04-26 06:26:35 +0000242007-04-26 Werner Lemberg <wl@gnu.org>
25
26 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
27 zero in case of error. This fixes Savannah bug #19689.
28
Werner Lembergfcc1f472007-04-10 11:51:50 +0000292007-04-10 Martin Horak <horakm@centrum.cz>
30
31 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
32 Ignore `hhea' table. This fixes Savannah bug #19261.
33
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000342007-04-09 Werner Lemberg <wl@gnu.org>
35
36 * Version 2.3.4 released.
37 =========================
38
39
40 Tag sources with `VER-2-3-4'.
41
42 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
43 version number to 2.3.4.
44
45 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
46 builds/win32/visualc/freetype.dsp,
47 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
48
49 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
50
51 * builds/unix/configure.raw (version_info): Set to 9:15:3.
52
Werner Lembergf4a52a62007-04-09 08:40:11 +0000532007-04-09 Martin Horak <horakm@centrum.cz>
54
55 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
56 memory stream to avoid a crash with the incremental memory
57 interface (Savannah bug #19260).
58
David Turner1dcb4442007-04-06 08:19:04 +0000592007-04-06 David Turner <david@freetype.org>
60
Werner Lembergc81cf612007-04-06 09:28:23 +000061 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
62 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000063
Werner Lemberg9f83e052007-04-05 02:28:23 +0000642007-04-04 Werner Lemberg <wl@gnu.org>
65
66 * Version 2.3.3 released.
67 =========================
68
69
70 Tag sources with `VER-2-3-3'.
71
72 * docs/CHANGES: Mention CVE-2007-1351.
73
David Turner7338ec22007-04-03 14:30:34 +0000742007-04-03 David Turner <david@freetype.org>
75
76 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000077 if one of the resolution values is 0, treat it as if it were the
78 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000079
David Turnere6472c12007-04-02 13:13:54 +0000802007-04-02 David Turner <david@freetype.org>
81
Werner Lemberg94f12272007-04-03 07:19:53 +000082 Add special code to detect `extra-light' fonts and do not snap their
83 stem widths too much to avoid bizarre hinting effects.
84
85 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
86 `extra_light' members.
87
88 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
89 them.
90 (af_latin_metrics_scale_dim): Set `extra_light'.
91 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000092
David Turner3f539692007-03-28 14:53:40 +0000932007-03-28 David Turner <david@freetype.org>
94
Werner Lemberg644b1ad2007-03-28 21:17:11 +000095 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000096 padding.
97
Werner Lemberga08b2172007-03-28 07:17:17 +0000982007-03-28 Werner Lemberg <wl@gnu.org>
99
100 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
101 gracefully.
102 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000103 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000104 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
105 number of code points in Unicode.
106
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000107 * builds/win32/visualc/index.html,
108 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000109 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000110 s/232/233/.
111
112 * docs/CHANGES: Mention ftdiff.
113
David Turner3b242d32007-03-26 12:03:04 +00001142007-03-26 David Turner <david@freetype.org>
115
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000116 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
117 corresponding code.
118 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000119
Werner Lemberga08b2172007-03-28 07:17:17 +0000120 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000121 computations in order to ignore single-point contours. These are
122 never rasterized and correspond in certain fonts to mark-attach
123 points that are very far from the glyph's real outline, ruining the
124 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000125
Werner Lemberga08b2172007-03-28 07:17:17 +0000126 * src/autofit/afloader.c (af_loader_load_g): In the case of
127 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
128 Otherwise code that uses them will most certainly ruin the fixed
129 advance property.
David Turner23553d62007-03-26 13:37:17 +0000130
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000131 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
132 documentation and bump version number to 2.3.3.
133
134 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
135
136 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000137
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001382007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
139
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000140 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
141 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000142 * builds/vms/ftconfig.h: Ditto.
143 * include/freetype/config/ftconfig.h: Ditto.
144
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001452007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
146
Werner Lemberg14ffe092007-03-22 06:12:43 +0000147 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
148 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000149 proposed by Sean McBride:
150 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
151
1522007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
153
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000154 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
155 setjmp, proposed by Sean McBride:
156 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
157
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001582007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
159
Werner Lembergc9f6c662007-03-21 13:30:14 +0000160 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
161 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
162 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000163
David Turner74c34eb2007-03-18 07:19:31 +00001642007-03-18 David Turner <david@freetype.org>
165
Werner Lembergc9f6c662007-03-21 13:30:14 +0000166 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
167 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000168
Werner Lembergc9f6c662007-03-21 13:30:14 +0000169 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000170
David Turner89020d92007-03-17 17:48:57 +00001712007-03-17 David Turner <david@freetype.org>
172
Werner Lembergc9f6c662007-03-21 13:30:14 +0000173 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
174 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000175
Werner Lemberg25d592a2007-03-09 07:59:35 +00001762007-03-09 Werner Lemberg <wl@gnu.org>
177
178 * Version 2.3.2 released.
179 =========================
180
181
182 Tag sources with `VER-2-3-2'.
183
184 * builds/win32/visualc/index.html,
185 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000186 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000187 s/231/232/.
188
David Turner3a51afa2007-03-08 10:50:38 +00001892007-03-08 David Turner <david@freetype.org>
190
Werner Lemberg25d592a2007-03-09 07:59:35 +0000191 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000192
Werner Lemberg25d592a2007-03-09 07:59:35 +0000193 * builds/unix/configure.raw (version_info): Set to 9:13:3.
194
195 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
196
197 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000198
Werner Lemberg1e259de2007-03-08 15:39:21 +0000199 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
200 function to work properly, over-writing user-provided buffers in
201 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000202
David Turner121cad52007-03-08 16:43:50 +0000203
Werner Lemberg3d92f082007-03-06 11:59:24 +00002042007-03-05 Werner Lemberg <wl@gnu.org>
205
206 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
207 macro for `strstr'.
208
209 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
210 `trick_names', as suggested by Ivan Nincic.
211
David Turner085bc6e2007-03-05 17:40:03 +00002122007-03-05 David Turner <david@freetype.org>
213
Werner Lembergd112cf02007-03-06 12:06:56 +0000214 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
215 case FT_Init_FreeType fails for some reason. Problem reported by
216 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000217
Werner Lembergd112cf02007-03-06 12:06:56 +0000218 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
219 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
220 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
221 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000222
Werner Lembergd112cf02007-03-06 12:06:56 +0000223 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
224 signed values, not unsigned ones. Problem reported by Johannes
225 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000226
David Turner601aefe2007-02-21 16:47:49 +00002272007-02-21 David Turner <david@freetype.org>
228
Werner Lembergde5e6862007-02-25 21:06:43 +0000229 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
230 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000231
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002322007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
233
234 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
235 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
236 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
237
Werner Lemberga0915172007-02-16 08:12:50 +00002382007-02-16 Werner Lemberg <wl@gnu.org>
239
240 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
241 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
242
David Turner2c4500e2007-02-14 15:08:47 +00002432007-02-14 David Turner <david@freetype.org>
244
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000245 It seems that the following changes fix most of the known
246 interpreter problems with my fonts, but more testing is needed,
247 though.
248
249 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
250 (TT_MulFix14): Rewrite.
251 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
252 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000253
Werner Lembergc6a14082007-02-12 22:08:15 +00002542007-02-12 Werner Lemberg <wl@gnu.org>
255
256 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
257 warnings.
258
259 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
260 (bdf_interpret_style): Ditto.
261
David Turnerc0f9c4a2007-02-12 14:55:03 +00002622007-02-12 David Turner <david@freetype.org>
263
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000264 Simplify projection and dual-projection code interface.
265
Werner Lemberg406d25f2007-02-12 22:01:18 +0000266 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
267 FT_Vector' as argument type.
268 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
269 Updated.
270 (CUR_fast_project, CUR_fast_dualproj): New macros.
271 (Project, Dual_Project, Project_x, Project_y): Updated.
272 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
273 macros.
274
275
276 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
277 adjustments for the non-light auto-hinted modes. Gets rid of
278 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000279
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000280 * src/autofit/aflatin.c (af_latin_hints_link_segments,
281 af_latin_hints_compute_edges): Slight optimization of the segment
282 linker and better handling of serif segments to get rid of broken
283 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000284
David Turnerc0f9c4a2007-02-12 14:55:03 +0000285
Werner Lemberg442bfb82007-02-12 21:44:10 +0000286 Introduce new string functions and the corresponding macros to get
287 rid of various uses of strcpy and other `evil' functions, as well as
288 to simplify a few things.
289
290 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
291 ft_mem_strcpyn): New declarations.
292 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
293 macros.
294 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
295 functions.
296
297 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
298 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
299 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
300 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
301 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
302 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
303 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
304 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000305
Werner Lemberg406d25f2007-02-12 22:01:18 +0000306 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
307
Werner Lemberg582067d2007-02-11 15:03:05 +00003082007-02-11 Werner Lemberg <wl@gnu.org>
309
310 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
311 non-spacing glyphs.
312
Werner Lemberg8f474532007-02-07 08:31:01 +00003132007-02-07 Tom Parker <palfrey@tevp.net>
314
315 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
316 pointer.
317
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003182007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
319
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000320 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
321 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000322 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000323 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
324 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
325 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
326 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000327
328 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
329 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000330 * builds/mac/ftmac.c: Ditto.
331
3322007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
333
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000334 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000335 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000336 #include <ftmac.c>.
337
3382007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
339
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000340 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
341 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
342 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
343 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
344 FT_GetFilePath_From_Mac_ATS_Name.
345 * builds/mac/ftmac.c: Ditto.
346
3472007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
348
Werner Lembergdcbb7082007-02-08 08:54:09 +0000349 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000350 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
351 for passing to FT_New_Face_From_FSSpec.
352
3532007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
354
Werner Lembergdcbb7082007-02-08 08:54:09 +0000355 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000356 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000357
358 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
359 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000360 * builds/mac/ftmac.c (OS_INLINE): Ditto.
361
Werner Lemberg313d7772007-02-01 08:10:45 +00003622007-02-01 Werner Lemberg <wl@gnu.org>
363
364 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
365 Explain why applications shouldn't use it. Found by Alexei.
366
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003672007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000368
369 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
370 message.
371
372 * src/gxvalid/gxvmort1.c
373 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
374 message.
375
Werner Lemberg53935932007-01-31 08:53:02 +00003762007-01-31 Werner Lemberg <wl@gnu.org>
377
378
379 * Version 2.3.1 released.
380 =========================
381
382
383 Tag sources with `VER-2-3-1-FINAL'.
384
385 * builds/win32/visualc/freetype.dsp,
386 builds/win32/visualc/freetype.vcproj: s/230/231/.
387 * builds/win32/visualc/index.html: s/221/231/.
388
389 * vms_make.com: Add `ftgasp'.
390
David Turnera7ee6082007-01-30 10:33:53 +00003912007-01-30 David Turner <david@freetype.org>
392
Werner Lemberg53935932007-01-31 08:53:02 +0000393 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000394
Werner Lemberg53935932007-01-31 08:53:02 +0000395 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000396
Werner Lemberg25d592a2007-03-09 07:59:35 +0000397 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000398 s/2.3.0/2.3.1/.
399
400 * builds/unix/configure.raw (version_info): Set to 9:12:3.
401
402
403 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
404 (af_loader_load_g): Disable the warper (i.e., the light hinting
405 improvements) to make a 2.3.1 bugfix release before introducing a
406 new feature. This should give us more time to tune and improve the
407 warper for the next release.
408
409 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000410
David Turnerd91eebd2007-01-26 15:05:41 +00004112007-01-25 David Turner <david@freetype.org>
412
Werner Lembergbf241762007-01-26 16:08:49 +0000413 For light auto-hinting, improve glyph advance widths and resurrect
414 normal/full hinting to its normal quality.
415
416 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
417 and `xmax_delta'.
418 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
419 and `xmax_delta'.
420
421 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
422 preprocessor conditional with if-clause, handling both light and
423 normal mode.
424
425 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
426 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000427
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004282007-01-25 Werner Lemberg <wl@gnu.org>
429
430 * docs/release: Updated -- Savannah uses a new uploading scheme.
431
David Turnera42567b2007-01-25 12:23:37 +00004322007-01-25 David Turner <david@freetype.org>
433
Werner Lembergd7855662007-01-25 13:53:56 +0000434 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000435
Werner Lembergd7855662007-01-25 13:53:56 +0000436 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
437 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
438 functions.
David Turnera42567b2007-01-25 12:23:37 +0000439
Werner Lembergd7855662007-01-25 13:53:56 +0000440 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000441
Werner Lembergb1be9e82007-01-25 11:50:00 +00004422007-01-25 Werner Lemberg <wl@gnu.org>
443
444 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000445 correctly in a sanity check. Since this function is only used to
446 load local and global functions, any charstring that called the last
447 local/global function would fail otherwise. This fixes Savannah bug
448 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000449
450 * docs/CHANGES: Document it.
451
David Turnerb6de8d12007-01-23 15:51:50 +00004522007-01-23 David Turner <david@freetype.org>
453
Werner Lembergb1be9e82007-01-25 11:50:00 +0000454 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
455 prevented compilation when disabling both the unpatented and the
456 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000457
Werner Lembergb1be9e82007-01-25 11:50:00 +0000458
459 Fix and enable the warper to improve `light' hinting mode. This is
460 not necessarily a final version, but it seems to work well.
461
462 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
463 Disable code.
464 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
465 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
466
467 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
468 (af_warper_compute_line_best): Fix array size of `scores'.
469 (af_warper_compute): Better handling of border cases.
470 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
471 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000472
Werner Lemberg011d1112007-01-21 09:36:00 +00004732007-01-21 Werner Lemberg <wl@gnu.org>
474
Werner Lemberg42b63b22007-01-21 21:01:33 +0000475 * ChangeLog: Split off older entries into...
476 * ChangeLog.22: This new file.
477
4782007-01-21 Werner Lemberg <wl@gnu.org>
479
Werner Lemberg555258f2007-01-21 09:46:37 +0000480 * docs/CHANGES: Document SHZ fix.
481
4822007-01-21 George Williams <gww@silcom.com>
483
484 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
485 points.
486
4872007-01-21 Werner Lemberg <wl@gnu.org>
488
Werner Lemberg011d1112007-01-21 09:36:00 +0000489 * src/sfnt/ttmtx.c (tt_face_get_metrics)
490 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
491
Werner Lemberg87a5a432007-01-17 12:44:39 +00004922007-01-17 Werner Lemberg <wl@gnu.org>
493
Werner Lembergb8003292007-01-17 12:56:25 +0000494
495 * Version 2.3.0 released.
496 =========================
497
498
499 Tag sources with `VER-2-3-0-FINAL'.
500
5012007-01-17 Werner Lemberg <wl@gnu.org>
502
Werner Lemberg87a5a432007-01-17 12:44:39 +0000503 * docs/release: Updated.
504
David Turner22122722007-01-16 20:06:44 +00005052007-01-16 David Turner <david@freetype.org>
506
Werner Lemberg87a5a432007-01-17 12:44:39 +0000507 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
508 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
509 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
510 warnings.
David Turner22122722007-01-16 20:06:44 +0000511
Werner Lemberg267e1d72007-01-15 07:48:09 +00005122007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
513
514 * builds/amiga/makefile, builds/amiga/makefile.os4,
515 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
516
517 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
518
Werner Lemberg8c4120d2007-01-15 06:42:40 +00005192007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
520
521 Fix various compiler warnings.
522
523 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
524 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
525 s/index/strike_index/.
526 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
527
528 * src/gxvalid/gxvmorx5.c
529 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
530
531 * src/truetype/ttinterp.c (Compute_Point_Displacement),
532 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
533 uninitialized variables.
534
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005352007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
536
537 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
538
Werner Lemberg281c1482007-01-13 22:50:51 +00005392007-01-13 Werner Lemberg <wl@gnu.org>
540
541 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
542 versions up to 0x3FF without complaining.
543
Werner Lembergac250b22007-01-13 14:01:36 +00005442007-01-13 Derek Clegg <dclegg@apple.com>
545
546 Add FT_Get_PS_Font_Info interface to CFF driver.
547
548 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
549 (CFF_FontRec): Add `font_info' field.
550
551 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
552 (cff_font_done): Free font->font_info if necessary.
553
554 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
555 (cff_service_ps_info): Register cff_ps_get_font_info.
556
Werner Lemberg23df31a2007-01-13 08:45:00 +00005572007-01-13 Werner Lemberg <wl@gnu.org>
558
559 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
560 with C++ compiler.
561
562 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
563 af_glyph_hints_dump_edges): Ditto.
564
565 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
566 `modules.cfg').
567
568 * src/sfnt/ttsbit0.h: Remove.
569
570 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
571
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005722007-01-12 David Turner <david@freetype.org>
573
574 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
575 bug in the bitmap emboldener if the pitch of the source bitmap is
576 much larger than its width.
577
578 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
579 compilation warning.
580
Werner Lemberg6d96d312007-01-12 10:30:19 +00005812007-01-12 Werner Lemberg <wl@gnu.org>
582
583 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
584 `automake' CVS module from sources.redhat.com.
585
Werner Lemberg17432b52007-01-12 09:28:44 +00005862007-01-11 Werner Lemberg <wl@gnu.org>
587
588 * src/type1/t1load.c (is_space): Removed.
589 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
590 (parse_charstrings): Use IS_PS_TOKEN.
591
592
593 * autogen.sh: Avoid bash specific syntax.
594
David Turner038ace22007-01-11 15:00:59 +00005952007-01-11 David Turner <david@freetype.org>
596
Werner Lemberg17432b52007-01-12 09:28:44 +0000597 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000598
Werner Lemberg17432b52007-01-12 09:28:44 +0000599 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000600
Werner Lemberg17432b52007-01-12 09:28:44 +0000601 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
602 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000603 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000604
Werner Lemberg17432b52007-01-12 09:28:44 +0000605 * autogen.sh: Small fix to get it working on Mac OS X properly:
606 The issue is that GNU libtool is called `glibtool' on this platform,
607 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000608
David Turner2628ea92007-01-10 13:15:56 +00006092007-01-10 David Turner <david@freetype.org>
610
Werner Lemberg17432b52007-01-12 09:28:44 +0000611 * all-sources: Tag all sources with VER-2-3-0-RC1 and
612 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000613
Werner Lemberg17432b52007-01-12 09:28:44 +0000614 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
615 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
616 version number to 2.3.0.
617
618 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
619 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000620
621 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000622 include/freetype/ftlcdfil.h: Update reference documentation with
623 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000624
Werner Lemberg17432b52007-01-12 09:28:44 +0000625 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
626 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000627
Werner Lembergbf02d392007-01-10 07:07:37 +00006282007-01-10 Derek Clegg <dclegg@apple.com>
629
630 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
631 values.
632
David Turnerf48b60e2007-01-08 15:15:32 +00006332007-01-08 David Turner <david@freetype.org>
634
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000635 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000636
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000637 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
638 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000639 corresponding to a given character pixel size.
640
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000641 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
642 `gasp' table, in order to avoid potential problems with later
643 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000644
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000645 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
646 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000647
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000648 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
649 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
650 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
651 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000652
Werner Lemberge6b6f372007-01-07 00:06:47 +00006532007-01-07 Werner Lemberg <wl@gnu.org>
654
Werner Lembergb8004d22007-01-07 09:13:38 +0000655 * src/cid/cidparse.c (cid_parser_new): Improve error message for
656 Type 11 fonts.
657 Scan for `/sfnts' token.
658
6592007-01-07 Werner Lemberg <wl@gnu.org>
660
661 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000662
Werner Lembergbe5f7972007-01-06 07:51:48 +00006632007-01-06 Werner Lemberg <wl@gnu.org>
664
665 * src/cff/cffload.c (cff_index_init): Remove unused variable.
666 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
667
David Turnera8cf42b2007-01-04 16:46:46 +00006682007-01-04 David Turner <david@freetype.org>
669
Werner Lembergf6294392007-01-06 07:47:45 +0000670 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
671 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000672
Werner Lembergf6294392007-01-06 07:47:45 +0000673
674 Do not allocate interpreter-specific tables in memory if we are not
675 going to load glyphs with the bytecode interpreter anyway.
676
677 * src/truetype/ttgload.c (tt_loader_init): Load execution context
678 only if glyph is hinted.
679 Updated.
680 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
681 and `cvs_ready'.
682 Add `tt_size_ready_bytecode' declaration.
683 * src/truetype/ttobjs.c (tt_size_done_bytecode,
684 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
685 (tt_size_init): Move most code into `tt_size_init_bytecode'.
686 (tt_size_done): Move most code into `tt_size_done_bytecode'.
687 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000688
David Turner91a34022007-01-05 14:47:08 +0000689
Werner Lembergf6294392007-01-06 07:47:45 +0000690 Don't extract the metrics table from the SFNT font file. Instead,
691 reparse it on each glyph load. The runtime difference is not
692 noticeable, and it can save a lot of heap memory when memory-mapped
693 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000694
Werner Lembergf6294392007-01-06 07:47:45 +0000695 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
696 `horz_metrics_offset' and `vert_metrics_ofset'.
697 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
698 Updated.
699
700
701 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
702
703
704 Do not load the CFF index offsets into memory, since this wastes a
705 *lot* of heap memory with large Asian CFF fonts. There is no
706 significant performance loss.
707
708 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
709 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
710 `data_size'.
711 (CFF_CharsetRec): Add field `num_glyphs'.
712
713 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
714 cff_charset_cid_to_gindex): New functions.
715 (cff_new_index): Renamed to...
716 (cff_index_init): This. Update all callers.
717 Updated -- some code has been moved to `cff_index_load_offsets'.
718 (cff_done_index): Renamed to...
719 (cff_index_done): This. Update all callers.
720 (cff_index_get_pointers, cff_index_access_element): Updated to use
721 stream offsets.
722 (cff_charset_compute_cids): Set `num_glyphs' field.
723 (cff_encoding_load): Updated.
724
725 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000726
7272007-01-04 David Turner <david@freetype.org>
728
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000729 * docs/INSTALL.UNIX: Simplify some parts, add reference to
730 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000731
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000732 * README.CVS: Add common problem description and solution
733 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000734
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000735 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000736
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000737 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000738
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000739 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000740
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000741 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
742 (TWorker): This.
743 Remove `count_table' and `memory'.
744 Make `grays' a pointer.
745 (TRaster): New structure.
746 (count_table): New static array.
747 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
748 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
749 ft_black_set_mode, ft_black_render): Updated.
750 (ft_black_init): Don't initialize `count_table'.
751 (ft_black_reset): Use the render pool. This saves about 6KB of
752 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000753
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000754 * src/smooth/ftgrays.c (TRaster): Replaced with...
755 (TWorker): This.
756 Remove `memory'.
757 (TRaster): New structure.
758
759 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
760 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
761 gray_render_span, gray_raster_render): Updated.
762 (gray_raster_reset): Use the render pool. This saves about 6KB of
763 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000764
David Turner8a6c44e2007-01-04 17:03:11 +0000765 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
766 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000767 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
768 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
769 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000770
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000771 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
772 Remove a typo that results in no hinting and a memory leak with some
773 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000774
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000775 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000776 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000777 CFF_Faces in it. We need to close all faces before destroying the
778 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000779
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007802007-01-02 Werner Lemberg <wl@gnu.org>
781
782 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
783 Remove compiler warning.
784
David Turner9207e002007-01-02 16:58:13 +00007852007-01-02 David Turner <david@freetype.org>
786
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000787 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000788
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007892006-12-31 Masatake YAMATO <jet@gyve.org>
790
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000791 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
792 function.
793 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000794 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000795 `gxv_kern_subtable_fmt0_pairs_validate'.
796
David Turner115b4422006-12-22 11:37:05 +00007972006-12-22 David Turner <david@freetype.org>
798
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000799 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
800 warnings.
David Turner115b4422006-12-22 11:37:05 +0000801
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000802 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
803 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000804
Werner Lemberg4755bf72006-12-16 08:58:44 +00008052006-12-16 Anders Kaseorg <anders@kaseorg.com>
806
807 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
808 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
809
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00008102006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
811
Werner Lemberg9b774e22007-01-16 06:11:27 +0000812 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000813 sync with the modification by Jens Claudius on 2006-08-22; cf.
814 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 +0000815
8162006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
817
818 * src/base/ftmac.c: Specialized for Mac OS X only.
819 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
820 * builds/unix/configure.raw: Ditto. When explicit switches for
821 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
822 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
823
8242006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
825
826 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
827 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
828 instead of src/base/ftmac.c
829 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
830 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
831 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
832 that cannot be built at present.
833
8342006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
835
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000836 * src/base/ftobjs.c: Improvement of resource fork handler for
837 POSIX, cf.
838 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000839 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
840 format or .dfont, to simulate the face index number counted by ftmac.c.
841 (IsMacResource): Return the number of scalable faces correctly.
842
Werner Lembergec5b4502006-12-10 07:51:38 +00008432006-12-10 Werner Lemberg <wl@gnu.org>
844
845 * builds/toplevel.mk (version): Protect against `distclean' target.
846
Werner Lembergb26b3142006-12-09 20:01:43 +00008472006-12-09 Werner Lemberg <wl@gnu.org>
848
849 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
850 or `type'.
851
852 * builds/freetype.mk (version): Extracted from freetype.h, using
853 GNU make's built-in string functions.
854 (refdoc): Use $(version) instead of static version number.
855
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008562006-12-08 Werner Lemberg <wl@gnu.org>
857
858 * builds/toplevel.mk (dist): Extract version number from freetype.h.
859
Werner Lemberg15c29502006-12-09 07:29:54 +00008602006-12-08 Vladimir Volovich <vvv@vsu.ru>
861
862 * src/tools/apinames (State): Remove final comma in structure -- xlc
863 v5 under AIX 4.3 doesn't like this.
864
David Turnerdbf3b432006-12-07 21:18:09 +00008652006-12-07 David Turner <david@freetype.org>
866
Werner Lemberg256a3512006-12-08 06:49:33 +0000867 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
868 to the spacing of auto-fitted glyphs. This only impacts rare
869 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000870
Werner Lemberg11171312006-12-03 09:43:40 +00008712006-12-03 Werner Lemberg <wl@gnu.org>
872
873 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
874
Werner Lemberg960ba592006-12-01 08:20:47 +00008752006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000876
Werner Lemberg960ba592006-12-01 08:20:47 +0000877 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
878 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
879 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000880
David Turner80658e52006-11-28 08:09:20 +0000881
Werner Lemberg960ba592006-12-01 08:20:47 +0000882 * include/freetype/ftxf86.h: Fix and extend comment so that it
883 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000884
Werner Lemberg960ba592006-12-01 08:20:47 +0000885 * include/freetype/ftchapters.h: Add `font_format' section.
886
887
888 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
889 to TOC in index page.
890
8912006-11-28 David Turner <david@freetype.org>
892
893 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
894 trying to render into a zero-width/height bitmap, not an error code.
895
896 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
897
898 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
899 ones instead.
900
901 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
902 variable.
David Turner80658e52006-11-28 08:09:20 +0000903
Werner Lemberg8636c292006-11-26 22:28:13 +00009042006-11-26 Pierre Hanser <hanser@club-internet.fr>
905
906 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
907
Werner Lemberg960ba592006-12-01 08:20:47 +00009082006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000909
Werner Lemberg960ba592006-12-01 08:20:47 +0000910 * src/autofit/afhints.c (af_glyph_hints_dump_points,
911 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
912 Add stubs to link the `ftgrid' test program when debugging is
913 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000914
Werner Lemberg960ba592006-12-01 08:20:47 +00009152006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000916
917 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000918 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
919
920 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
921 Emit more sensible information.
922
923 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
924
925 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
926 rounding of blue values.
927 (af_latin_hints_compute_segments): Hint segment heights.
928 (af_latin_hints_link_segments): Reduce `len_score' value.
929 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
930 value and use `height' member for comparisons.
931 (af_latin_hint_edges): Extend logging message.
932 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000933
Werner Lemberg91959bf2006-11-22 10:36:55 +00009342006-11-22 Werner Lemberg <wl@gnu.org>
935
936 Fix Savannah bug #15553.
937
938 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
939 program after a change from mono to grayscaling (and vice versa).
940 Use correct constant for comparison to get `exec->grayscale'.
941
Werner Lemberg913a3652006-11-19 09:19:17 +00009422006-11-18 Werner Lemberg <wl@gnu.org>
943
944 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000945 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000946 This patch fixes Savannah bug #18301.
947
948 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
949 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
950 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
951 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
952 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
953 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
954 (FNT_Load_Glyph): Check validity of `glyph_index'.
955
David Turner7bab6ae2006-11-13 11:25:06 +00009562006-11-13 David Turner <david@freetype.org>
957
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000958 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
959 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000960
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000961 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
962 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
963 when building the library to change the default LCD filter to be
964 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000965
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000966 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000967
David Turner8765c712006-11-10 16:49:42 +00009682006-11-10 David Turner <david@freetype.org>
969
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000970 * src/smooth/ftsmooth.c: API change for the LCD
971 filter. The FT_LcdFilter value is an enumeration describing which
972 filter to apply, with new values FT_LCD_FILTER_LIGHT and
973 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
974 algorithm which produces strong color fringes for everything
975 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000976
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000977 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
978 second parameter to an enum type.
979
980 * src/base/ftlcdfil.c (USE_LEGACY): Define.
981 (_ft_lcd_filter): Rename to...
982 (_ft_lcd_filter_fir): This.
983 Update parameters.
984 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
985 (FT_Library_Set_LcdFilter): Update parameters.
986 Handle new filter modes.
987
988 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
989 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
990 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
991 callback and update other fields.
992
993 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
994 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
995 Other minor improvements.
996
997 * src/autofit/aflatin.c: Various tiny improvements that drastically
998 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
999 (af_latin_hints_compute_edges): Fix typo.
1000 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001001
David Turner4e9cc3c2006-11-09 16:31:52 +000010022006-11-09 David Turner <david@freetype.org>
1003
Werner Lemberg49c77a82006-11-09 21:51:57 +00001004 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1005 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001006
Werner Lemberg5e430892006-11-07 09:35:03 +000010072006-11-07 Zhe Su <james.su@gmail.com>
1008
1009 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1010 also.
1011
Werner Lemberg111b5ae2006-11-03 09:40:12 +000010122006-11-03 Werner Lemberg <wl@gnu.org>
1013
1014 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1015
David Turner40604742006-11-02 16:37:35 +000010162006-11-02 David Turner <david@freetype.org>
1017
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001018 Add a few tweaks to better handle serif fonts.
1019 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001020
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001021 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1022 segments that are less than 1.5 pixels high. This gets rid of
1023 *many* corner cases with serifs.
1024 (af_latin_align_linked_edge): Add logging message.
1025 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1026 Add logging messages.
1027 Handle AF_EDGE_FLAG flag specially.
1028
1029 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1030 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1031
1032 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1033 Update external declarations.
1034 (af_corner_orientation, af_corner_is_flat): Replaced by...
1035
1036 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1037 ft_corner_is_flat): These declarations.
1038
1039 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1040 Comment out. Replaced by...
1041
1042 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1043 These functions. Update all callers.
1044 (FT_Add64) [!FT_LONG64]: Simplify.
1045
1046 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1047 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1048 production of garbage by missing lots of segments.
1049
1050 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1051
1052 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1053 [AF_DEBUG]: Set _af_debug_hints.
1054
1055
1056 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1057 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1058 and ft_corner_orientation.
1059
1060
1061 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001062
Werner Lemberge88c5262006-10-24 05:46:26 +000010632006-10-24 Werner Lemberg <wl@gnu.org>
1064
1065 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1066
1067 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1068 as argument.
1069
David Turnera1861392006-10-23 16:00:59 +000010702006-10-23 Zhe Su <zsu@novell.com>
1071
Werner Lemberg715e96e2006-10-24 05:28:45 +00001072 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1073 better deal with broken Asian fonts with strange glyphs, having
1074 self-intersections and other peculiarities. The used algorithm is
1075 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001076
David Turnere140f142006-10-23 08:56:57 +000010772006-10-23 David Turner <david@freetype.org>
1078
Werner Lemberg715e96e2006-10-24 05:28:45 +00001079 Speed up the CFF font loader. With some large CFF fonts,
1080 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001081
Werner Lemberg715e96e2006-10-24 05:28:45 +00001082 * src/cff/cffload.c (cff_get_offset): Removed.
1083 (cff_new_index): Inline functionality of `cff_get_offset'.
1084 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1085 (cff_charset_done): Call `cff_charset_free_cids'.
1086 (cff_charset_load): Call `cff_charset_compute_cids'.
1087 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1088
1089 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1090 with FT_NEXT_XXX.
1091
1092
1093 Speed up the Postscript hinter, with more than 100% speed increase
1094 on my machine.
1095
1096 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1097 psh_corner_orientation): New functions.
1098 (psh_glyph_compute_inflections): Merge loops for efficiency.
1099 Use `psh_corner_orientation'.
1100 (psh_glyph_init): Use `psh_corner_is_flat'.
1101 (psh_hint_table_find_strong_point): Renamed to...
1102 (psh_hint_table_find_strong_points): This.
1103 Rewrite, adding argument to handle all points at once.
1104 Update all callers.
1105 (PSH_MAX_STRONG_INTERNAL): New macro.
1106 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001107
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000011082006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1109
1110 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001111 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001112
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000011132006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1114
1115 * docs/INSTALL.CROSS: New document file for cross-building.
1116
1117 * builds/unix/configure.raw: Preliminary cross-building support.
1118 Find native C compiler and pass it by CC_BUILD, and
1119 find suffix for native executable and pass it by EXEEXT_BUILD.
1120 Also suffix for target executable is passed by EXEEXT.
1121
Werner Lembergb9e6d692006-10-15 08:58:40 +00001122 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1123 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001124 CC_BUILD and EXEEXT_BUILD.
1125
Werner Lembergb9e6d692006-10-15 08:58:40 +00001126 * builds/exports.mk (APINAMES_EXE): Change the extension for
1127 apinames from the suffix for target (E) to that for building host
1128 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001129
Werner Lemberg82a07e92006-10-12 06:20:44 +000011302006-10-12 Werner Lemberg <wl@gnu.org>
1131
1132 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1133 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1134 which reference those files.
1135
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011362006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1137
Werner Lembergb9e6d692006-10-15 08:58:40 +00001138 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1139 embedded in freetype2.pc and freetype-config. Use it to record
1140 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001141
1142 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1143
1144 * builds/unix/freetype-config.in: Ditto.
1145
Werner Lemberg28e17d92006-10-11 17:27:47 +000011462006-10-11 Werner Lemberg <wl@gnu.org>
1147
1148 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1149 development.
1150
Jens Claudius336d2292006-10-03 08:53:37 +000011512006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1152
1153 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1154 argument to ft_setjmp.
1155
1156 * include/freetype/internal/ftvalid.h: Add comment that
1157 ft_validator_run must not be used.
1158
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011592006-10-01 Werner Lemberg <wl@gnu.org>
1160
1161 * src/base/ftbase.c: Undo change from 2006-09-30.
1162
1163 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1164
11652006-09-30 David Turner <david@freetype.org>
1166
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001167 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1168 s/unpatented_hinting/ignore_unpatented_hinter/.
1169 Update all callers.
1170
1171 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1172 auto-hinting shall be used or not.
1173
1174 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001175
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011762006-09-30 Werner Lemberg <wl@gnu.org>
1177
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001178 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1179 in use).
1180
1181 * src/base/ftbase.c: Include `ftlcdfil.c'.
1182
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011832006-09-29 Werner Lemberg <wl@gnu.org>
1184
1185 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1186 overlapping segments. Bug reported by Stefan Koch.
1187
David Turnerad830712006-09-27 16:20:59 +000011882006-09-28 David Turner <david@freetype.org>
1189
Werner Lemberg2c002e12006-09-29 21:31:53 +00001190 Fix a bug in the automatic unpatented hinting support which prevents
1191 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001192
Werner Lemberg2c002e12006-09-29 21:31:53 +00001193 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1194 s/force_autohint/unpatented_hinting/. Update all callers.
1195
1196 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1197
1198 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001199
David Turner8a317cf2006-09-27 07:52:48 +000012002006-09-27 David Turner <david@freetype.org>
1201
Werner Lemberg2c002e12006-09-29 21:31:53 +00001202 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001203
David Turner8a317cf2006-09-27 07:52:48 +00001204
David Turnere140f142006-10-23 08:56:57 +00001205 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001206 In a default build, the function `FT_Library_SetLcdFilter' returns
1207 `FT_Err_Unimplemented_Feature'; you need to #define
1208 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1209 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001210
Werner Lemberg2c002e12006-09-29 21:31:53 +00001211 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001212
Werner Lemberg2c002e12006-09-29 21:31:53 +00001213 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1214 typedef.
1215 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1216 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001217
Werner Lemberg2c002e12006-09-29 21:31:53 +00001218 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1219 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001220
Werner Lemberg2c002e12006-09-29 21:31:53 +00001221 Handle subpixel rendering.
1222 Simplify function.
1223 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1224 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1225
1226 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1227 pointing to <freetype/ftlcdfil.h>.
1228
1229 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1230 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1231
1232 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001233
Werner Lemberge20df4a2006-09-27 06:29:21 +000012342006-09-26 David Bustin
1235
1236 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1237 correctly. Reported as Savannah bug #17843.
1238
David Turner6f8c6222006-09-26 15:42:44 +000012392006-09-26 David Turner <david@freetype.org>
1240
Werner Lemberg110246c2006-09-26 21:55:44 +00001241 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1242 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1243 horizontal and vertical hinting for the purpose of debugging the
1244 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001245
Werner Lemberg110246c2006-09-26 21:55:44 +00001246 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1247 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001248
Werner Lemberg110246c2006-09-26 21:55:44 +00001249 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1250
1251 * include/freetype/config/ftoption.h, devel/ftoption.h
1252 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1253 we want to compile LCD-optimized rendering code la ClearType) or
1254 not. The macro *must* be disabled in default builds of the library
1255 for patent reasons.
1256
1257 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1258 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1259 isn't defined at compile time. This only changes the content of the
1260 rendered glyph to match the one of normal gray-level rendering,
1261 hence clients should not need to be modified.
1262
1263 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001264
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012652006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1266
1267 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1268 LWFN fails and both are available.
1269
David Turnerf3050052006-09-11 12:00:32 +000012702006-09-11 David Turner <david@freetype.org>
1271
Werner Lembergf9644552006-09-12 13:48:10 +00001272 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1273 report their English names through an Apple Roman
1274 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001275
Werner Lembergf9644552006-09-12 13:48:10 +00001276 If the font uses another name entry with language_id == English, it
1277 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001278
Werner Lembergf9644552006-09-12 13:48:10 +00001279 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1280 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001281
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012822006-09-05 Werner Lemberg <wl@gnu.org>
1283
1284 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001285 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001286 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1287 `HAN NOM B.ttf').
1288
1289 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1290
David Turner772e55d2006-09-05 09:45:15 +000012912006-09-05 David Turner <david@freetype.org>
1292
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001293 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001294
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001295 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1296 (TRaster): Remove `count_ex' and `count_ey'.
1297 (gray_find_cell): Remove 2nd and 3rd argument.
1298 (gray_alloc_cell): Merged with `gray_find_cell'.
1299 (gray_record_cell): Simplify.
1300 (gray_set_cell): Rewrite.
1301 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1302 (gray_render_span): Don't use FT_MEM_SET for small values.
1303 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1304 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1305 bitmap scanline.
1306 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001307
David Turneraa557a92006-09-04 16:42:44 +000013082006-09-04 David Turner <david@freetype.org>
1309
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001310 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1311 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001312
Werner Lemberg2d8629b2006-09-03 06:18:45 +000013132006-09-03 Werner Lemberg <wl@gnu.org>
1314
1315 * devel/ftoption.h: Synchronize with
1316 include/freetype/config/ftoption.h.
1317
1318 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1319 variable declaration.
1320 (gray_convert_glyph): Fix compiler warnings.
1321
David Turner6d79f212006-09-01 14:09:35 +000013222006-09-01 David Turner <david@freetype.org>
1323
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001324 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1325 to recognize a few fonts that require the automatic unpatented
1326 loader.
David Turnerbd502952006-09-01 19:05:24 +00001327
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001328 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1329 rasterizer. The speed improvement is between 15% and 25%, depending
1330 on the font data.
1331
1332 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1333 (TCell): Redefine.
1334 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1335 (gray_init_cells): Updated.
1336 (gray_find_cell, gray_alloc_cell): New functions.
1337 (gray_record_cell): Rewritten to use `gray_find_cell' and
1338 `gray_alloc_cell'.
1339 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1340 QSORT_THRESHOLD):
1341 Removed.
1342 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1343 gray_dump_cells): Removed.
1344 (gray_sweep): Rewritten.
1345 (gray_convert_glyph): Rewrite code which used one of the sorting
1346 functions.
1347 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001348
Werner Lembergd898aed2006-08-29 09:50:34 +000013492006-08-29 Dr. Werner Fink <werner@suse.de>
1350
1351 * configure: Make it possible to handle configure options which
1352 have strings containing spaces.
1353
13542006-08-27 David Turner <david@freetype.org>
1355
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001356 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1357 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1358 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1359
1360 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1361 src/truetype/truetype.c, src/truetype/ttdriver.c,
1362 src/truetype/ttgload.c, src/truetype/ttgload.h,
1363 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1364 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1365 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1366
1367 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1368 member `force_autohint'.
1369
1370 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1371
1372 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1373 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001374
Jens Claudiusa787f452006-08-27 11:26:18 +000013752006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1376
1377 Fix miscellaneous compiler warnings.
1378
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001379 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1380 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001381
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001382 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1383 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1384 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001385
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001386 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1387 volatileness of argument to ft_longjmp. Spotted by Werner
1388 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001389
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001390 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1391 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001392
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001393 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1394 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001395
Werner Lembergc4c35b72006-08-27 08:03:46 +000013962006-08-27 Werner Lemberg <wl@gnu.org>
1397
1398 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1399 Reported by Jens.
1400
Jens Claudius088e44e2006-08-22 14:24:30 +000014012006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001402
Jens Claudius088e44e2006-08-22 14:24:30 +00001403 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001404 about addresses of volatile objects passed as function arguments as
1405 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001406
Werner Lembergc4c35b72006-08-27 08:03:46 +00001407 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1408 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001409
1410 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1411 argument `table' a pointer to a volatile object.
1412
1413 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1414 argument `table' a pointer to a volatile object.
1415
Jens Claudius2652bd52006-08-18 17:20:37 +000014162006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1417
1418 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1419 variable `_sfnt' as volatile since it must keep its value across
1420 a call to ft_setjmp.
1421 (gxv_validate): Same for local variables `memory' and `valid'.
1422 (classic_kern_validate): Same for local variables `memory',
1423 `ckern', and `valid'.
1424
1425 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1426 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1427 `jstf', and 'valid'.
1428
1429 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1430 local variable `cmap'.
1431
David Turner9fbfc6a2006-08-16 09:11:31 +000014322006-08-16 David Turner <david@freetype.org>
1433
Werner Lemberg12342992006-08-19 11:18:09 +00001434 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1435 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001436
Werner Lemberg12342992006-08-19 11:18:09 +00001437 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1438 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001439
David Turner33f5f242006-08-16 16:50:55 +00001440
Werner Lemberg12342992006-08-19 11:18:09 +00001441 Improvements to native TrueType hinting. This is a first try,
1442 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1443
1444 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1445 `extra_points2'.
1446
1447 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1448 `orus'.
1449
1450 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1451 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1452 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1453 handle `extra_points2'.
1454
1455 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1456 Remove compiler warning.
1457 (cur_to_arg): Remove macro.
1458 (TT_Hint_Glyph): Updated.
1459 (TT_Process_Simple_Glyph): Handle `orus'.
1460
1461 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1462 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1463 (LOC_Ins_IUP): Renamed to...
1464 (IUP_WorkerRec): This.
1465 Add `orus' member.
1466 (Shift): Renamed to...
1467 (_iup_worker_shift): This.
1468 Updated.
1469 (Interp): Renamed to...
1470 (_iup_worker_interpolate): This.
1471 Updated to handle `orus'.
1472 (Ins_IUP): Updated.
1473
1474 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1475 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001476
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014772006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1478
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001479 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001480 build ftvalid in ft2demos. This has been inadvertedly changed
1481 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001482
14832006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1484
Werner Lemberg12342992006-08-19 11:18:09 +00001485 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1486 Jens:
1487 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001488
Werner Lemberg12342992006-08-19 11:18:09 +00001489 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1490 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001491
1492 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1493
Jens Claudius9950adc2006-08-13 12:14:36 +000014942006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1495
Werner Lemberg12342992006-08-19 11:18:09 +00001496 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1497 T1_TOKEN_TYPE_KEY.
1498 (T1_FieldRec): Add `dict'.
1499 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1500 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1501 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001502
Werner Lemberg12342992006-08-19 11:18:09 +00001503 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1504 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001505
1506 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1507
1508 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001509 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1510 not T1_TOKEN_TYPE_ANY.
1511 (ps_parser_load_field): Make sure a token that should be a string or
1512 name is really a string or name.
1513 Avoid memory leak if a keyword has been already encountered and its
1514 value is overwritten.
1515 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1516 T1_FIELD_XXX.
1517 (parse_dict): Ignore keywords that occur in the wrong dictionary
1518 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001519
Werner Lemberg12342992006-08-19 11:18:09 +00001520 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1521 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001522
Werner Lemberg12342992006-08-19 11:18:09 +00001523 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1524 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001525
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000015262006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1527
1528 Move creation of field `buildchar' of T1_DecoderRec out of
1529 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1530 of it.
1531
1532 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1533 and `T1_Compute_Max_Advance'.
1534
1535 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1536 Remove field `face', add `len_buildchar'.
1537
1538 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1539 field `buildchar'.
1540
1541 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1542 finisher for T1_Decoder.
1543 (cid_slot_load_glyph): Do not ignore failure when initializing the
1544 T1_Decoder.
1545
1546 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1547 Updated.
1548 (t1_decoder_init): Remove initialization of fields `buildchar' and
1549 `len_buildchar'.
1550 (t1_decoder_done): Remove deallocation of field `buildchar'.
1551
1552 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1553 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1554 T1_Decoder.
1555 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1556 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1557 case of error.
1558
1559 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1560 `buildchar' of T1_FaceRec.
1561
1562 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1563 `buildchar' of T1_FaceRec.
1564
Werner Lemberg1a380e02006-07-14 18:28:08 +000015652006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1566
1567 * freetype2/include/freetype/internal/psaux.h: New macros
1568 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1569 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1570 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1571 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1572 (T1_DecoderRec): New fields `buildchar' and `face'.
1573 (IS_PS_TOKEN): New macro.
1574
1575 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1576 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1577
1578 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1579 `default_design_vector' and `num_default_design_vector'.
1580
1581 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1582 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1583 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1584
1585 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1586 `token' argument to be NULL if we want only to count the number of
1587 tokens.
1588 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1589 want to skip the array.
1590 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1591 want to skip the array.
1592
1593 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1594 support for (partially commented out) othersubrs 19-25, 27, and 28.
1595 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1596 (t1_decoder_done): Release new field `buildchar'.
1597
1598 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1599 functions.
1600 (t1_keywords): Register them.
1601 (t1_allocate_blend): Updated.
1602 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1603 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1604 (parse_dict): Remove `keyword_flags' argument.
1605 Use new macro IS_PS_TOKEN.
1606 Changed function so that later PostScript definitions override
1607 earlier ones.
1608 (t1_init_loader): Initialize new field `keywords_encountered'.
1609 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1610 `len_buildchar'.
1611 Remove `keywords_flags'.
1612
1613 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1614 `keywords_encountered'.
1615 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1616
1617 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1618 New entries for parsing /NDV, /CDV, and /DesignVector.
1619
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000016202006-07-07 Werner Lemberg <wl@gnu.org>
1621
1622 Add many checks to protect against malformed PCF files.
1623
1624 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1625 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1626
1627 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1628 data and check that tables don't overlap (using a simple
1629 bubblesort).
1630 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1631 New macros which give the size of data structures in the data
1632 stream.
1633 (pcf_get_properties): Use rough estimates to get array size limits.
1634 Assign `face->nprops' and `face->properties' earlier so that a call
1635 to PCF_Face_Done can do the clean-up in case of error.
1636 Protect against invalid string offsets.
1637 (pcf_get_metrics): Clean up code.
1638 Adjust tracing message levels.
1639 Use rough estimate to get array size limit.
1640 (pcf_get_bitmaps): Clean up code.
1641 Adjust tracing message levels.
1642 Use rough estimates to get offset limits.
1643 (pcf_get_encodings): Adjust tracing message level.
1644 (pcf_get_accel): Clean up code.
1645
Werner Lemberg8eb05252006-06-27 06:20:01 +000016462006-06-26 Werner Lemberg <wl@gnu.org>
1647
1648 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1649 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1650
Werner Lemberg24703f82006-06-26 19:12:51 +000016512006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1652
1653 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1654 (t1_decoder_parse_charstrings): Operator with
1655 opcode 15 pops its two arguments.
1656 Handle the case where the pops of an othersubr may be part of a
1657 subroutine.
1658 Handle unknown othersubrs gracefully: count their operands and let
1659 the following pop operators push the operands as the results onto
1660 the Type1 stack.
1661 Improve handling of setcurrentpoint opcode.
1662
Werner Lembergc011f4c2006-06-26 09:40:00 +000016632006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1664
1665 The Type 1 parser now skips over top-level procedures as required
1666 for a `Simplified Parser'. This makes the parser more robust as it
1667 doesn't poke around in PostScript code. Additionally, it makes the
1668 FontDirectory hackery in src/type1/t1load.c unnecessary.
1669
1670 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1671 (skip_literal_string): Add FT_Error as return value.
1672 Handle escapes better.
1673 (skip_string): Add FT_Error as return value.
1674 Don't set `parser->error' but return error code directly.
1675 (skip_procedure): New function.
1676 (ps_parser_skip_PS_token): Handle procedures.
1677 Update code.
1678 (ps_parser_to_token): Update code.
1679 (ps_parser_load_field_table): Handle bbox entries also.
1680
1681 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1682 Add commented-out code for synthetic fonts.
1683
Werner Lemberga2da05c2006-06-25 06:27:27 +000016842006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1685
1686 Fix two hinting bugs as reported in
1687 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1688
1689 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1690 `first_point' member.
1691
1692 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1693 `first_point'.
1694 (TT_Process_Composite_Glyph): Always untouch points.
1695
1696 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1697 `first_point' and `last_point' in case of composite glyphs.
1698 (Ins_IUP): Fix computation of `end_point'.
1699
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000017002006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1701
Werner Lembergef3d2c22006-06-25 06:07:14 +00001702 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1703 Mac. The original patch was written by David Sachitano and Lawrence
1704 Coopet, and modified by Sean McBride for MPW compatibility. Only
1705 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001706
Werner Lembergef3d2c22006-06-25 06:07:14 +00001707 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1708 Mac OS X platforms.
1709 (OS_INLINE): Undefine before definition.
1710 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1711 FontAssociation table in FOND resource.
1712 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1713 and fontSize at each entry of FontAssociation table in FOND
1714 resource.
1715 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1716 ffStylOff of FamilyRecord header of FOND resource, the header,
1717 fontSize, fontID at each entry of FontAssociation table, and
1718 StyleMapping table.
1719 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001720
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000017212006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1722
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001723 Public API of TrueTypeGX, OpenType, and classic kern table validator
1724 should return `FT_Err_Unimplemented_Feature' if validation service
1725 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001726 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001727 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1728
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001729 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1730 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1731 unavailable.
1732 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1733 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001734
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001735 * src/base/ftotval.c (FT_OpenType_Validate): Return
1736 FT_Err_Unimplemented_Feature if OpenType validation service is
1737 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001738
Werner Lembergb10e45a2006-06-08 07:32:56 +000017392006-06-08 Werner Lemberg <wl@gnu.org>
1740
1741 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1742 errors.
1743
David Turner5f1f7502006-06-07 05:11:50 +000017442006-06-07 David Turner <david@freetype.org>
1745
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001746 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1747 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1748 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001749
David Turner457b4a82006-06-06 08:14:14 +000017502006-06-06 David Turner <david@freetype.org>
1751
Werner Lemberg4836f952006-06-06 12:54:08 +00001752 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001753
Werner Lemberg4836f952006-06-06 12:54:08 +00001754 We change `ps_unicodes_init' so that it also takes a
1755 `free_glyph_name' callback to release the glyph names returned by
1756 `get_glyph_name'
1757
1758 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1759 Renamed to ...
1760 (PS_GetGlyphNameFunc): This.
1761 (PS_FreeGlyphNameFunc): New typedef.
1762 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1763
1764 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1765 argument.
1766 (cff_sid_free_glyph_name): New function.
1767 (cff_cmap_unicode_init): Updated.
1768
1769 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1770
1771 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1772 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001773
1774
David Turner09717352006-06-04 14:33:08 +000017752006-06-04 David Turner <david@freetype.org>
1776
Werner Lembergd724f202006-06-04 15:17:41 +00001777 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1778 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001779 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001780
Werner Lembergd724f202006-06-04 15:17:41 +00001781 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1782 of `face->num_glyphs' which missed the last glyph, due to
1783 the offset-by-1 computation, since the PFR format doesn't
1784 guarantee that glyph index 0 corresponds to the `missing
1785 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001786
Werner Lemberg33779662006-05-26 06:30:05 +000017872006-05-25 Werner Lemberg <wl@gnu.org>
1788
1789 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1790 `-no-undefined'. Reported by Christian Biesinger.
1791
Werner Lemberg24773d62006-05-20 08:53:13 +000017922006-05-19 Brian Weed <bw@imaginengine.com>
1793
1794 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1795 have debug information, and debug libraries use `C7 compatible'
1796 debug info.
1797
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017982006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1799
Werner Lemberga6523a62006-05-20 08:47:01 +00001800 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001801 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001802
Werner Lemberga6523a62006-05-20 08:47:01 +00001803 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1804 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001805
1806 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001807 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001808
18092006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1810
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001811 * build/unix/configure.raw: Add a fallback to disable Carbon
1812 dependency, if configured with no options on Mac OS X.
1813
18142006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1815
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001816 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001817 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001818 the second part of Savannah bug #16590.
1819
Werner Lemberg545c4e52006-05-17 22:55:04 +000018202006-05-18 Werner Lemberg <wl@gnu.org>
1821
1822 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1823 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1824
David Turnerdc3ff312006-05-17 12:59:35 +000018252006-05-17 David Turner <david@freetype.org>
1826
Werner Lemberg545c4e52006-05-17 22:55:04 +00001827 This is a major patch used to drastically improve the performance of
1828 loading glyphs. This both speeds up loading the glyph vectors
1829 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001830
Werner Lemberg545c4e52006-05-17 22:55:04 +00001831 We now use inline assembler code with GCC to implement `FT_MulFix',
1832 which is probably the most important function related to the
1833 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001834
Werner Lemberg545c4e52006-05-17 22:55:04 +00001835 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001836
1837
Werner Lemberg545c4e52006-05-17 22:55:04 +00001838 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1839 `cursor' and `limit'.
1840
1841 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1842 New functions.
1843 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1844 [TEST]: Remove.
1845
1846 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1847 code.
1848
1849 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1850 `FT_ZERO'
1851 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1852 (af_glyph_hints_reload: Rewrite recognition of weak points.
1853
1854 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1855 constant values out of the loops.
1856
1857 * src/autofit/aftypes.h: Updated.
1858
1859 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1860
1861 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1862 product to get orientation.
1863
1864 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1865 (FT_Stream_OpenGzip): Use it to handle small files directly in
1866 memory.
1867
1868 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1869 Improve performance.
1870
1871 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1872 `limit'.
1873
1874 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1875 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1876 exceedingly large values of number of contours. Speed up by
1877 reducing the number of loops.
1878
1879 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1880
1881
1882 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1883 used to detect rogue clients from 4 to 16. This is to prevent some
1884 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1885 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001886
Werner Lembergde2d90a2006-05-17 08:54:30 +000018872007-05-17 Werner Lemberg <wl@gnu.org>
1888
1889 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001890 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001891
18922006-05-16 Werner Lemberg <wl@gnu.org>
1893
1894 * docs/PROBLEMS: Updated icl issues.
1895
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001896----------------------------------------------------------------------------
1897
Werner Lemberg42b63b22007-01-21 21:01:33 +00001898Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001899David Turner, Robert Wilhelm, and Werner Lemberg.
1900
1901This file is part of the FreeType project, and may only be used, modified,
1902and distributed under the terms of the FreeType project license,
1903LICENSE.TXT. By continuing to use, modify, or distribute this file you
1904indicate that you have read the license and understand and accept it
1905fully.
1906
1907
1908Local Variables:
1909version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001910coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001911End: