blob: 907d7c39e24127b63f082caa6bfbe0358d0653d5 [file] [log] [blame]
Werner Lemberg41271032007-05-06 04:51:48 +000012007-05-06 Werner Lemberg <wl@gnu.org>
2
3 * builds/win32/visualce/freetype.sln: Removed, as requested by
4 Vincent.
5
Werner Lembergdf49e692007-05-04 06:30:05 +000062007-05-04 Vincent RICHOMME <richom.v@free.fr>
7
8 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
9 PC targets.
10
11 * docs/CHANGES: Document them.
12
132007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +000014
15 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
16 mmap (which might happen on some RTOS). From Savannah patch #5909.
17
Werner Lemberg106eaf12007-05-03 07:07:47 +0000182007-05-03 Werner Lemberg <wl@gnu.org>
19
20 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
21 * include/freetype/freetype.h (FT_Set_Char_Size): Update
22 documentation.
23
Werner Lemberg1b5267d2007-04-28 21:06:15 +0000242007-04-28 Victor Stinner <victor.stinner@inl.fr>
25
26 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
27 `cmap'.
28
Werner Lembergcc712a22007-04-27 17:16:50 +0000292007-04-27 Werner Lemberg <wl@gnu.org>
30
31 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
32 number of points in contours. Problem reported by Victor Stinner
33 <victor.stinner@haypocalc.com>.
34 (TT_Process_Simple_Glyph): Synchronize variable types.
35
Werner Lemberg45bb18f2007-04-26 06:26:35 +0000362007-04-26 Werner Lemberg <wl@gnu.org>
37
38 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
39 zero in case of error. This fixes Savannah bug #19689.
40
Werner Lembergfcc1f472007-04-10 11:51:50 +0000412007-04-10 Martin Horak <horakm@centrum.cz>
42
43 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
44 Ignore `hhea' table. This fixes Savannah bug #19261.
45
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000462007-04-09 Werner Lemberg <wl@gnu.org>
47
48 * Version 2.3.4 released.
49 =========================
50
51
52 Tag sources with `VER-2-3-4'.
53
54 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
55 version number to 2.3.4.
56
57 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
58 builds/win32/visualc/freetype.dsp,
59 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
60
61 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
62
63 * builds/unix/configure.raw (version_info): Set to 9:15:3.
64
Werner Lembergf4a52a62007-04-09 08:40:11 +0000652007-04-09 Martin Horak <horakm@centrum.cz>
66
67 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
68 memory stream to avoid a crash with the incremental memory
69 interface (Savannah bug #19260).
70
David Turner1dcb4442007-04-06 08:19:04 +0000712007-04-06 David Turner <david@freetype.org>
72
Werner Lembergc81cf612007-04-06 09:28:23 +000073 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
74 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000075
Werner Lemberg9f83e052007-04-05 02:28:23 +0000762007-04-04 Werner Lemberg <wl@gnu.org>
77
78 * Version 2.3.3 released.
79 =========================
80
81
82 Tag sources with `VER-2-3-3'.
83
84 * docs/CHANGES: Mention CVE-2007-1351.
85
David Turner7338ec22007-04-03 14:30:34 +0000862007-04-03 David Turner <david@freetype.org>
87
88 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000089 if one of the resolution values is 0, treat it as if it were the
90 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000091
David Turnere6472c12007-04-02 13:13:54 +0000922007-04-02 David Turner <david@freetype.org>
93
Werner Lemberg94f12272007-04-03 07:19:53 +000094 Add special code to detect `extra-light' fonts and do not snap their
95 stem widths too much to avoid bizarre hinting effects.
96
97 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
98 `extra_light' members.
99
100 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
101 them.
102 (af_latin_metrics_scale_dim): Set `extra_light'.
103 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000104
David Turner3f539692007-03-28 14:53:40 +00001052007-03-28 David Turner <david@freetype.org>
106
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000107 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000108 padding.
109
Werner Lemberga08b2172007-03-28 07:17:17 +00001102007-03-28 Werner Lemberg <wl@gnu.org>
111
112 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
113 gracefully.
114 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000115 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000116 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
117 number of code points in Unicode.
118
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000119 * builds/win32/visualc/index.html,
120 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000121 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000122 s/232/233/.
123
124 * docs/CHANGES: Mention ftdiff.
125
David Turner3b242d32007-03-26 12:03:04 +00001262007-03-26 David Turner <david@freetype.org>
127
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000128 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
129 corresponding code.
130 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000131
Werner Lemberga08b2172007-03-28 07:17:17 +0000132 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000133 computations in order to ignore single-point contours. These are
134 never rasterized and correspond in certain fonts to mark-attach
135 points that are very far from the glyph's real outline, ruining the
136 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000137
Werner Lemberga08b2172007-03-28 07:17:17 +0000138 * src/autofit/afloader.c (af_loader_load_g): In the case of
139 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
140 Otherwise code that uses them will most certainly ruin the fixed
141 advance property.
David Turner23553d62007-03-26 13:37:17 +0000142
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000143 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
144 documentation and bump version number to 2.3.3.
145
146 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
147
148 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000149
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001502007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
151
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000152 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
153 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000154 * builds/vms/ftconfig.h: Ditto.
155 * include/freetype/config/ftconfig.h: Ditto.
156
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001572007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
158
Werner Lemberg14ffe092007-03-22 06:12:43 +0000159 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
160 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000161 proposed by Sean McBride:
162 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
163
1642007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
165
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000166 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
167 setjmp, proposed by Sean McBride:
168 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
169
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001702007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
171
Werner Lembergc9f6c662007-03-21 13:30:14 +0000172 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
173 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
174 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000175
David Turner74c34eb2007-03-18 07:19:31 +00001762007-03-18 David Turner <david@freetype.org>
177
Werner Lembergc9f6c662007-03-21 13:30:14 +0000178 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
179 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000180
Werner Lembergc9f6c662007-03-21 13:30:14 +0000181 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000182
David Turner89020d92007-03-17 17:48:57 +00001832007-03-17 David Turner <david@freetype.org>
184
Werner Lembergc9f6c662007-03-21 13:30:14 +0000185 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
186 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000187
Werner Lemberg25d592a2007-03-09 07:59:35 +00001882007-03-09 Werner Lemberg <wl@gnu.org>
189
190 * Version 2.3.2 released.
191 =========================
192
193
194 Tag sources with `VER-2-3-2'.
195
196 * builds/win32/visualc/index.html,
197 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000198 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000199 s/231/232/.
200
David Turner3a51afa2007-03-08 10:50:38 +00002012007-03-08 David Turner <david@freetype.org>
202
Werner Lemberg25d592a2007-03-09 07:59:35 +0000203 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000204
Werner Lemberg25d592a2007-03-09 07:59:35 +0000205 * builds/unix/configure.raw (version_info): Set to 9:13:3.
206
207 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
208
209 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000210
Werner Lemberg1e259de2007-03-08 15:39:21 +0000211 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
212 function to work properly, over-writing user-provided buffers in
213 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000214
David Turner121cad52007-03-08 16:43:50 +0000215
Werner Lemberg3d92f082007-03-06 11:59:24 +00002162007-03-05 Werner Lemberg <wl@gnu.org>
217
218 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
219 macro for `strstr'.
220
221 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
222 `trick_names', as suggested by Ivan Nincic.
223
David Turner085bc6e2007-03-05 17:40:03 +00002242007-03-05 David Turner <david@freetype.org>
225
Werner Lembergd112cf02007-03-06 12:06:56 +0000226 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
227 case FT_Init_FreeType fails for some reason. Problem reported by
228 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000229
Werner Lembergd112cf02007-03-06 12:06:56 +0000230 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
231 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
232 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
233 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000234
Werner Lembergd112cf02007-03-06 12:06:56 +0000235 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
236 signed values, not unsigned ones. Problem reported by Johannes
237 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000238
David Turner601aefe2007-02-21 16:47:49 +00002392007-02-21 David Turner <david@freetype.org>
240
Werner Lembergde5e6862007-02-25 21:06:43 +0000241 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
242 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000243
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002442007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
245
246 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
247 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
248 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
249
Werner Lemberga0915172007-02-16 08:12:50 +00002502007-02-16 Werner Lemberg <wl@gnu.org>
251
252 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
253 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
254
David Turner2c4500e2007-02-14 15:08:47 +00002552007-02-14 David Turner <david@freetype.org>
256
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000257 It seems that the following changes fix most of the known
258 interpreter problems with my fonts, but more testing is needed,
259 though.
260
261 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
262 (TT_MulFix14): Rewrite.
263 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
264 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000265
Werner Lembergc6a14082007-02-12 22:08:15 +00002662007-02-12 Werner Lemberg <wl@gnu.org>
267
268 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
269 warnings.
270
271 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
272 (bdf_interpret_style): Ditto.
273
David Turnerc0f9c4a2007-02-12 14:55:03 +00002742007-02-12 David Turner <david@freetype.org>
275
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000276 Simplify projection and dual-projection code interface.
277
Werner Lemberg406d25f2007-02-12 22:01:18 +0000278 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
279 FT_Vector' as argument type.
280 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
281 Updated.
282 (CUR_fast_project, CUR_fast_dualproj): New macros.
283 (Project, Dual_Project, Project_x, Project_y): Updated.
284 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
285 macros.
286
287
288 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
289 adjustments for the non-light auto-hinted modes. Gets rid of
290 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000291
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000292 * src/autofit/aflatin.c (af_latin_hints_link_segments,
293 af_latin_hints_compute_edges): Slight optimization of the segment
294 linker and better handling of serif segments to get rid of broken
295 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000296
David Turnerc0f9c4a2007-02-12 14:55:03 +0000297
Werner Lemberg442bfb82007-02-12 21:44:10 +0000298 Introduce new string functions and the corresponding macros to get
299 rid of various uses of strcpy and other `evil' functions, as well as
300 to simplify a few things.
301
302 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
303 ft_mem_strcpyn): New declarations.
304 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
305 macros.
306 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
307 functions.
308
309 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
310 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
311 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
312 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
313 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
314 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
315 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
316 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000317
Werner Lemberg406d25f2007-02-12 22:01:18 +0000318 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
319
Werner Lemberg582067d2007-02-11 15:03:05 +00003202007-02-11 Werner Lemberg <wl@gnu.org>
321
322 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
323 non-spacing glyphs.
324
Werner Lemberg8f474532007-02-07 08:31:01 +00003252007-02-07 Tom Parker <palfrey@tevp.net>
326
327 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
328 pointer.
329
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
331
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000332 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
333 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000334 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000335 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
336 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
337 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
338 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000339
340 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
341 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000342 * builds/mac/ftmac.c: Ditto.
343
3442007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
345
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000346 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000347 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000348 #include <ftmac.c>.
349
3502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
351
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000352 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
353 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
354 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
355 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
356 FT_GetFilePath_From_Mac_ATS_Name.
357 * builds/mac/ftmac.c: Ditto.
358
3592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
360
Werner Lembergdcbb7082007-02-08 08:54:09 +0000361 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000362 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
363 for passing to FT_New_Face_From_FSSpec.
364
3652007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
366
Werner Lembergdcbb7082007-02-08 08:54:09 +0000367 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000368 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000369
370 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
371 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000372 * builds/mac/ftmac.c (OS_INLINE): Ditto.
373
Werner Lemberg313d7772007-02-01 08:10:45 +00003742007-02-01 Werner Lemberg <wl@gnu.org>
375
376 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
377 Explain why applications shouldn't use it. Found by Alexei.
378
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003792007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000380
381 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
382 message.
383
384 * src/gxvalid/gxvmort1.c
385 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
386 message.
387
Werner Lemberg53935932007-01-31 08:53:02 +00003882007-01-31 Werner Lemberg <wl@gnu.org>
389
390
391 * Version 2.3.1 released.
392 =========================
393
394
395 Tag sources with `VER-2-3-1-FINAL'.
396
397 * builds/win32/visualc/freetype.dsp,
398 builds/win32/visualc/freetype.vcproj: s/230/231/.
399 * builds/win32/visualc/index.html: s/221/231/.
400
401 * vms_make.com: Add `ftgasp'.
402
David Turnera7ee6082007-01-30 10:33:53 +00004032007-01-30 David Turner <david@freetype.org>
404
Werner Lemberg53935932007-01-31 08:53:02 +0000405 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000406
Werner Lemberg53935932007-01-31 08:53:02 +0000407 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000408
Werner Lemberg25d592a2007-03-09 07:59:35 +0000409 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000410 s/2.3.0/2.3.1/.
411
412 * builds/unix/configure.raw (version_info): Set to 9:12:3.
413
414
415 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
416 (af_loader_load_g): Disable the warper (i.e., the light hinting
417 improvements) to make a 2.3.1 bugfix release before introducing a
418 new feature. This should give us more time to tune and improve the
419 warper for the next release.
420
421 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000422
David Turnerd91eebd2007-01-26 15:05:41 +00004232007-01-25 David Turner <david@freetype.org>
424
Werner Lembergbf241762007-01-26 16:08:49 +0000425 For light auto-hinting, improve glyph advance widths and resurrect
426 normal/full hinting to its normal quality.
427
428 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
429 and `xmax_delta'.
430 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
431 and `xmax_delta'.
432
433 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
434 preprocessor conditional with if-clause, handling both light and
435 normal mode.
436
437 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
438 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000439
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004402007-01-25 Werner Lemberg <wl@gnu.org>
441
442 * docs/release: Updated -- Savannah uses a new uploading scheme.
443
David Turnera42567b2007-01-25 12:23:37 +00004442007-01-25 David Turner <david@freetype.org>
445
Werner Lembergd7855662007-01-25 13:53:56 +0000446 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000447
Werner Lembergd7855662007-01-25 13:53:56 +0000448 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
449 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
450 functions.
David Turnera42567b2007-01-25 12:23:37 +0000451
Werner Lembergd7855662007-01-25 13:53:56 +0000452 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000453
Werner Lembergb1be9e82007-01-25 11:50:00 +00004542007-01-25 Werner Lemberg <wl@gnu.org>
455
456 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000457 correctly in a sanity check. Since this function is only used to
458 load local and global functions, any charstring that called the last
459 local/global function would fail otherwise. This fixes Savannah bug
460 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000461
462 * docs/CHANGES: Document it.
463
David Turnerb6de8d12007-01-23 15:51:50 +00004642007-01-23 David Turner <david@freetype.org>
465
Werner Lembergb1be9e82007-01-25 11:50:00 +0000466 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
467 prevented compilation when disabling both the unpatented and the
468 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000469
Werner Lembergb1be9e82007-01-25 11:50:00 +0000470
471 Fix and enable the warper to improve `light' hinting mode. This is
472 not necessarily a final version, but it seems to work well.
473
474 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
475 Disable code.
476 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
477 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
478
479 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
480 (af_warper_compute_line_best): Fix array size of `scores'.
481 (af_warper_compute): Better handling of border cases.
482 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
483 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000484
Werner Lemberg011d1112007-01-21 09:36:00 +00004852007-01-21 Werner Lemberg <wl@gnu.org>
486
Werner Lemberg42b63b22007-01-21 21:01:33 +0000487 * ChangeLog: Split off older entries into...
488 * ChangeLog.22: This new file.
489
4902007-01-21 Werner Lemberg <wl@gnu.org>
491
Werner Lemberg555258f2007-01-21 09:46:37 +0000492 * docs/CHANGES: Document SHZ fix.
493
4942007-01-21 George Williams <gww@silcom.com>
495
496 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
497 points.
498
4992007-01-21 Werner Lemberg <wl@gnu.org>
500
Werner Lemberg011d1112007-01-21 09:36:00 +0000501 * src/sfnt/ttmtx.c (tt_face_get_metrics)
502 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
503
Werner Lemberg87a5a432007-01-17 12:44:39 +00005042007-01-17 Werner Lemberg <wl@gnu.org>
505
Werner Lembergb8003292007-01-17 12:56:25 +0000506
507 * Version 2.3.0 released.
508 =========================
509
510
511 Tag sources with `VER-2-3-0-FINAL'.
512
5132007-01-17 Werner Lemberg <wl@gnu.org>
514
Werner Lemberg87a5a432007-01-17 12:44:39 +0000515 * docs/release: Updated.
516
David Turner22122722007-01-16 20:06:44 +00005172007-01-16 David Turner <david@freetype.org>
518
Werner Lemberg87a5a432007-01-17 12:44:39 +0000519 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
520 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
521 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
522 warnings.
David Turner22122722007-01-16 20:06:44 +0000523
Werner Lemberg267e1d72007-01-15 07:48:09 +00005242007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
525
526 * builds/amiga/makefile, builds/amiga/makefile.os4,
527 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
528
529 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
530
Werner Lemberg8c4120d2007-01-15 06:42:40 +00005312007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
532
533 Fix various compiler warnings.
534
535 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
536 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
537 s/index/strike_index/.
538 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
539
540 * src/gxvalid/gxvmorx5.c
541 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
542
543 * src/truetype/ttinterp.c (Compute_Point_Displacement),
544 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
545 uninitialized variables.
546
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005472007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
548
549 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
550
Werner Lemberg281c1482007-01-13 22:50:51 +00005512007-01-13 Werner Lemberg <wl@gnu.org>
552
553 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
554 versions up to 0x3FF without complaining.
555
Werner Lembergac250b22007-01-13 14:01:36 +00005562007-01-13 Derek Clegg <dclegg@apple.com>
557
558 Add FT_Get_PS_Font_Info interface to CFF driver.
559
560 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
561 (CFF_FontRec): Add `font_info' field.
562
563 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
564 (cff_font_done): Free font->font_info if necessary.
565
566 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
567 (cff_service_ps_info): Register cff_ps_get_font_info.
568
Werner Lemberg23df31a2007-01-13 08:45:00 +00005692007-01-13 Werner Lemberg <wl@gnu.org>
570
571 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
572 with C++ compiler.
573
574 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
575 af_glyph_hints_dump_edges): Ditto.
576
577 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
578 `modules.cfg').
579
580 * src/sfnt/ttsbit0.h: Remove.
581
582 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
583
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005842007-01-12 David Turner <david@freetype.org>
585
586 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
587 bug in the bitmap emboldener if the pitch of the source bitmap is
588 much larger than its width.
589
590 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
591 compilation warning.
592
Werner Lemberg6d96d312007-01-12 10:30:19 +00005932007-01-12 Werner Lemberg <wl@gnu.org>
594
595 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
596 `automake' CVS module from sources.redhat.com.
597
Werner Lemberg17432b52007-01-12 09:28:44 +00005982007-01-11 Werner Lemberg <wl@gnu.org>
599
600 * src/type1/t1load.c (is_space): Removed.
601 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
602 (parse_charstrings): Use IS_PS_TOKEN.
603
604
605 * autogen.sh: Avoid bash specific syntax.
606
David Turner038ace22007-01-11 15:00:59 +00006072007-01-11 David Turner <david@freetype.org>
608
Werner Lemberg17432b52007-01-12 09:28:44 +0000609 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000610
Werner Lemberg17432b52007-01-12 09:28:44 +0000611 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000612
Werner Lemberg17432b52007-01-12 09:28:44 +0000613 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
614 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000615 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000616
Werner Lemberg17432b52007-01-12 09:28:44 +0000617 * autogen.sh: Small fix to get it working on Mac OS X properly:
618 The issue is that GNU libtool is called `glibtool' on this platform,
619 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000620
David Turner2628ea92007-01-10 13:15:56 +00006212007-01-10 David Turner <david@freetype.org>
622
Werner Lemberg17432b52007-01-12 09:28:44 +0000623 * all-sources: Tag all sources with VER-2-3-0-RC1 and
624 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000625
Werner Lemberg17432b52007-01-12 09:28:44 +0000626 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
627 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
628 version number to 2.3.0.
629
630 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
631 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000632
633 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000634 include/freetype/ftlcdfil.h: Update reference documentation with
635 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000636
Werner Lemberg17432b52007-01-12 09:28:44 +0000637 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
638 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000639
Werner Lembergbf02d392007-01-10 07:07:37 +00006402007-01-10 Derek Clegg <dclegg@apple.com>
641
642 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
643 values.
644
David Turnerf48b60e2007-01-08 15:15:32 +00006452007-01-08 David Turner <david@freetype.org>
646
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000647 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000648
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000649 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
650 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000651 corresponding to a given character pixel size.
652
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000653 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
654 `gasp' table, in order to avoid potential problems with later
655 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000656
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000657 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
658 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000659
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000660 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
661 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
662 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
663 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000664
Werner Lemberge6b6f372007-01-07 00:06:47 +00006652007-01-07 Werner Lemberg <wl@gnu.org>
666
Werner Lembergb8004d22007-01-07 09:13:38 +0000667 * src/cid/cidparse.c (cid_parser_new): Improve error message for
668 Type 11 fonts.
669 Scan for `/sfnts' token.
670
6712007-01-07 Werner Lemberg <wl@gnu.org>
672
673 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000674
Werner Lembergbe5f7972007-01-06 07:51:48 +00006752007-01-06 Werner Lemberg <wl@gnu.org>
676
677 * src/cff/cffload.c (cff_index_init): Remove unused variable.
678 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
679
David Turnera8cf42b2007-01-04 16:46:46 +00006802007-01-04 David Turner <david@freetype.org>
681
Werner Lembergf6294392007-01-06 07:47:45 +0000682 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
683 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000684
Werner Lembergf6294392007-01-06 07:47:45 +0000685
686 Do not allocate interpreter-specific tables in memory if we are not
687 going to load glyphs with the bytecode interpreter anyway.
688
689 * src/truetype/ttgload.c (tt_loader_init): Load execution context
690 only if glyph is hinted.
691 Updated.
692 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
693 and `cvs_ready'.
694 Add `tt_size_ready_bytecode' declaration.
695 * src/truetype/ttobjs.c (tt_size_done_bytecode,
696 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
697 (tt_size_init): Move most code into `tt_size_init_bytecode'.
698 (tt_size_done): Move most code into `tt_size_done_bytecode'.
699 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000700
David Turner91a34022007-01-05 14:47:08 +0000701
Werner Lembergf6294392007-01-06 07:47:45 +0000702 Don't extract the metrics table from the SFNT font file. Instead,
703 reparse it on each glyph load. The runtime difference is not
704 noticeable, and it can save a lot of heap memory when memory-mapped
705 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000706
Werner Lembergf6294392007-01-06 07:47:45 +0000707 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
708 `horz_metrics_offset' and `vert_metrics_ofset'.
709 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
710 Updated.
711
712
713 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
714
715
716 Do not load the CFF index offsets into memory, since this wastes a
717 *lot* of heap memory with large Asian CFF fonts. There is no
718 significant performance loss.
719
720 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
721 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
722 `data_size'.
723 (CFF_CharsetRec): Add field `num_glyphs'.
724
725 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
726 cff_charset_cid_to_gindex): New functions.
727 (cff_new_index): Renamed to...
728 (cff_index_init): This. Update all callers.
729 Updated -- some code has been moved to `cff_index_load_offsets'.
730 (cff_done_index): Renamed to...
731 (cff_index_done): This. Update all callers.
732 (cff_index_get_pointers, cff_index_access_element): Updated to use
733 stream offsets.
734 (cff_charset_compute_cids): Set `num_glyphs' field.
735 (cff_encoding_load): Updated.
736
737 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000738
7392007-01-04 David Turner <david@freetype.org>
740
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000741 * docs/INSTALL.UNIX: Simplify some parts, add reference to
742 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000743
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000744 * README.CVS: Add common problem description and solution
745 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000746
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000747 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000748
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000749 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000750
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000751 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000752
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000753 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
754 (TWorker): This.
755 Remove `count_table' and `memory'.
756 Make `grays' a pointer.
757 (TRaster): New structure.
758 (count_table): New static array.
759 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
760 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
761 ft_black_set_mode, ft_black_render): Updated.
762 (ft_black_init): Don't initialize `count_table'.
763 (ft_black_reset): Use the render pool. This saves about 6KB of
764 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000765
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000766 * src/smooth/ftgrays.c (TRaster): Replaced with...
767 (TWorker): This.
768 Remove `memory'.
769 (TRaster): New structure.
770
771 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
772 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
773 gray_render_span, gray_raster_render): Updated.
774 (gray_raster_reset): Use the render pool. This saves about 6KB of
775 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000776
David Turner8a6c44e2007-01-04 17:03:11 +0000777 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
778 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000779 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
780 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
781 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000782
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000783 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
784 Remove a typo that results in no hinting and a memory leak with some
785 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000786
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000787 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000788 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000789 CFF_Faces in it. We need to close all faces before destroying the
790 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000791
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007922007-01-02 Werner Lemberg <wl@gnu.org>
793
794 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
795 Remove compiler warning.
796
David Turner9207e002007-01-02 16:58:13 +00007972007-01-02 David Turner <david@freetype.org>
798
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000799 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000800
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00008012006-12-31 Masatake YAMATO <jet@gyve.org>
802
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000803 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
804 function.
805 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000806 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000807 `gxv_kern_subtable_fmt0_pairs_validate'.
808
David Turner115b4422006-12-22 11:37:05 +00008092006-12-22 David Turner <david@freetype.org>
810
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000811 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
812 warnings.
David Turner115b4422006-12-22 11:37:05 +0000813
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000814 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
815 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000816
Werner Lemberg4755bf72006-12-16 08:58:44 +00008172006-12-16 Anders Kaseorg <anders@kaseorg.com>
818
819 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
820 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
821
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00008222006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
823
Werner Lemberg9b774e22007-01-16 06:11:27 +0000824 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000825 sync with the modification by Jens Claudius on 2006-08-22; cf.
826 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 +0000827
8282006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
829
830 * src/base/ftmac.c: Specialized for Mac OS X only.
831 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
832 * builds/unix/configure.raw: Ditto. When explicit switches for
833 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
834 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
835
8362006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
837
838 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
839 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
840 instead of src/base/ftmac.c
841 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
842 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
843 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
844 that cannot be built at present.
845
8462006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
847
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000848 * src/base/ftobjs.c: Improvement of resource fork handler for
849 POSIX, cf.
850 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000851 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
852 format or .dfont, to simulate the face index number counted by ftmac.c.
853 (IsMacResource): Return the number of scalable faces correctly.
854
Werner Lembergec5b4502006-12-10 07:51:38 +00008552006-12-10 Werner Lemberg <wl@gnu.org>
856
857 * builds/toplevel.mk (version): Protect against `distclean' target.
858
Werner Lembergb26b3142006-12-09 20:01:43 +00008592006-12-09 Werner Lemberg <wl@gnu.org>
860
861 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
862 or `type'.
863
864 * builds/freetype.mk (version): Extracted from freetype.h, using
865 GNU make's built-in string functions.
866 (refdoc): Use $(version) instead of static version number.
867
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008682006-12-08 Werner Lemberg <wl@gnu.org>
869
870 * builds/toplevel.mk (dist): Extract version number from freetype.h.
871
Werner Lemberg15c29502006-12-09 07:29:54 +00008722006-12-08 Vladimir Volovich <vvv@vsu.ru>
873
874 * src/tools/apinames (State): Remove final comma in structure -- xlc
875 v5 under AIX 4.3 doesn't like this.
876
David Turnerdbf3b432006-12-07 21:18:09 +00008772006-12-07 David Turner <david@freetype.org>
878
Werner Lemberg256a3512006-12-08 06:49:33 +0000879 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
880 to the spacing of auto-fitted glyphs. This only impacts rare
881 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000882
Werner Lemberg11171312006-12-03 09:43:40 +00008832006-12-03 Werner Lemberg <wl@gnu.org>
884
885 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
886
Werner Lemberg960ba592006-12-01 08:20:47 +00008872006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000888
Werner Lemberg960ba592006-12-01 08:20:47 +0000889 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
890 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
891 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000892
David Turner80658e52006-11-28 08:09:20 +0000893
Werner Lemberg960ba592006-12-01 08:20:47 +0000894 * include/freetype/ftxf86.h: Fix and extend comment so that it
895 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000896
Werner Lemberg960ba592006-12-01 08:20:47 +0000897 * include/freetype/ftchapters.h: Add `font_format' section.
898
899
900 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
901 to TOC in index page.
902
9032006-11-28 David Turner <david@freetype.org>
904
905 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
906 trying to render into a zero-width/height bitmap, not an error code.
907
908 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
909
910 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
911 ones instead.
912
913 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
914 variable.
David Turner80658e52006-11-28 08:09:20 +0000915
Werner Lemberg8636c292006-11-26 22:28:13 +00009162006-11-26 Pierre Hanser <hanser@club-internet.fr>
917
918 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
919
Werner Lemberg960ba592006-12-01 08:20:47 +00009202006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000921
Werner Lemberg960ba592006-12-01 08:20:47 +0000922 * src/autofit/afhints.c (af_glyph_hints_dump_points,
923 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
924 Add stubs to link the `ftgrid' test program when debugging is
925 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000926
Werner Lemberg960ba592006-12-01 08:20:47 +00009272006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000928
929 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000930 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
931
932 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
933 Emit more sensible information.
934
935 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
936
937 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
938 rounding of blue values.
939 (af_latin_hints_compute_segments): Hint segment heights.
940 (af_latin_hints_link_segments): Reduce `len_score' value.
941 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
942 value and use `height' member for comparisons.
943 (af_latin_hint_edges): Extend logging message.
944 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000945
Werner Lemberg91959bf2006-11-22 10:36:55 +00009462006-11-22 Werner Lemberg <wl@gnu.org>
947
948 Fix Savannah bug #15553.
949
950 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
951 program after a change from mono to grayscaling (and vice versa).
952 Use correct constant for comparison to get `exec->grayscale'.
953
Werner Lemberg913a3652006-11-19 09:19:17 +00009542006-11-18 Werner Lemberg <wl@gnu.org>
955
956 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000957 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000958 This patch fixes Savannah bug #18301.
959
960 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
961 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
962 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
963 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
964 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
965 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
966 (FNT_Load_Glyph): Check validity of `glyph_index'.
967
David Turner7bab6ae2006-11-13 11:25:06 +00009682006-11-13 David Turner <david@freetype.org>
969
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000970 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
971 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000972
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000973 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
974 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
975 when building the library to change the default LCD filter to be
976 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000977
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000978 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000979
David Turner8765c712006-11-10 16:49:42 +00009802006-11-10 David Turner <david@freetype.org>
981
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000982 * src/smooth/ftsmooth.c: API change for the LCD
983 filter. The FT_LcdFilter value is an enumeration describing which
984 filter to apply, with new values FT_LCD_FILTER_LIGHT and
985 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
986 algorithm which produces strong color fringes for everything
987 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000988
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000989 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
990 second parameter to an enum type.
991
992 * src/base/ftlcdfil.c (USE_LEGACY): Define.
993 (_ft_lcd_filter): Rename to...
994 (_ft_lcd_filter_fir): This.
995 Update parameters.
996 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
997 (FT_Library_Set_LcdFilter): Update parameters.
998 Handle new filter modes.
999
1000 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1001 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1002 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1003 callback and update other fields.
1004
1005 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1006 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1007 Other minor improvements.
1008
1009 * src/autofit/aflatin.c: Various tiny improvements that drastically
1010 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1011 (af_latin_hints_compute_edges): Fix typo.
1012 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001013
David Turner4e9cc3c2006-11-09 16:31:52 +000010142006-11-09 David Turner <david@freetype.org>
1015
Werner Lemberg49c77a82006-11-09 21:51:57 +00001016 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1017 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001018
Werner Lemberg5e430892006-11-07 09:35:03 +000010192006-11-07 Zhe Su <james.su@gmail.com>
1020
1021 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1022 also.
1023
Werner Lemberg111b5ae2006-11-03 09:40:12 +000010242006-11-03 Werner Lemberg <wl@gnu.org>
1025
1026 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1027
David Turner40604742006-11-02 16:37:35 +000010282006-11-02 David Turner <david@freetype.org>
1029
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001030 Add a few tweaks to better handle serif fonts.
1031 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001032
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001033 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1034 segments that are less than 1.5 pixels high. This gets rid of
1035 *many* corner cases with serifs.
1036 (af_latin_align_linked_edge): Add logging message.
1037 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1038 Add logging messages.
1039 Handle AF_EDGE_FLAG flag specially.
1040
1041 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1042 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1043
1044 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1045 Update external declarations.
1046 (af_corner_orientation, af_corner_is_flat): Replaced by...
1047
1048 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1049 ft_corner_is_flat): These declarations.
1050
1051 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1052 Comment out. Replaced by...
1053
1054 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1055 These functions. Update all callers.
1056 (FT_Add64) [!FT_LONG64]: Simplify.
1057
1058 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1059 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1060 production of garbage by missing lots of segments.
1061
1062 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1063
1064 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1065 [AF_DEBUG]: Set _af_debug_hints.
1066
1067
1068 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1069 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1070 and ft_corner_orientation.
1071
1072
1073 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001074
Werner Lemberge88c5262006-10-24 05:46:26 +000010752006-10-24 Werner Lemberg <wl@gnu.org>
1076
1077 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1078
1079 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1080 as argument.
1081
David Turnera1861392006-10-23 16:00:59 +000010822006-10-23 Zhe Su <zsu@novell.com>
1083
Werner Lemberg715e96e2006-10-24 05:28:45 +00001084 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1085 better deal with broken Asian fonts with strange glyphs, having
1086 self-intersections and other peculiarities. The used algorithm is
1087 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001088
David Turnere140f142006-10-23 08:56:57 +000010892006-10-23 David Turner <david@freetype.org>
1090
Werner Lemberg715e96e2006-10-24 05:28:45 +00001091 Speed up the CFF font loader. With some large CFF fonts,
1092 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001093
Werner Lemberg715e96e2006-10-24 05:28:45 +00001094 * src/cff/cffload.c (cff_get_offset): Removed.
1095 (cff_new_index): Inline functionality of `cff_get_offset'.
1096 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1097 (cff_charset_done): Call `cff_charset_free_cids'.
1098 (cff_charset_load): Call `cff_charset_compute_cids'.
1099 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1100
1101 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1102 with FT_NEXT_XXX.
1103
1104
1105 Speed up the Postscript hinter, with more than 100% speed increase
1106 on my machine.
1107
1108 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1109 psh_corner_orientation): New functions.
1110 (psh_glyph_compute_inflections): Merge loops for efficiency.
1111 Use `psh_corner_orientation'.
1112 (psh_glyph_init): Use `psh_corner_is_flat'.
1113 (psh_hint_table_find_strong_point): Renamed to...
1114 (psh_hint_table_find_strong_points): This.
1115 Rewrite, adding argument to handle all points at once.
1116 Update all callers.
1117 (PSH_MAX_STRONG_INTERNAL): New macro.
1118 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001119
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000011202006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1121
1122 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001123 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001124
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000011252006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1126
1127 * docs/INSTALL.CROSS: New document file for cross-building.
1128
1129 * builds/unix/configure.raw: Preliminary cross-building support.
1130 Find native C compiler and pass it by CC_BUILD, and
1131 find suffix for native executable and pass it by EXEEXT_BUILD.
1132 Also suffix for target executable is passed by EXEEXT.
1133
Werner Lembergb9e6d692006-10-15 08:58:40 +00001134 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1135 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001136 CC_BUILD and EXEEXT_BUILD.
1137
Werner Lembergb9e6d692006-10-15 08:58:40 +00001138 * builds/exports.mk (APINAMES_EXE): Change the extension for
1139 apinames from the suffix for target (E) to that for building host
1140 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001141
Werner Lemberg82a07e92006-10-12 06:20:44 +000011422006-10-12 Werner Lemberg <wl@gnu.org>
1143
1144 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1145 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1146 which reference those files.
1147
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011482006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1149
Werner Lembergb9e6d692006-10-15 08:58:40 +00001150 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1151 embedded in freetype2.pc and freetype-config. Use it to record
1152 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001153
1154 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1155
1156 * builds/unix/freetype-config.in: Ditto.
1157
Werner Lemberg28e17d92006-10-11 17:27:47 +000011582006-10-11 Werner Lemberg <wl@gnu.org>
1159
1160 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1161 development.
1162
Jens Claudius336d2292006-10-03 08:53:37 +000011632006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1164
1165 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1166 argument to ft_setjmp.
1167
1168 * include/freetype/internal/ftvalid.h: Add comment that
1169 ft_validator_run must not be used.
1170
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011712006-10-01 Werner Lemberg <wl@gnu.org>
1172
1173 * src/base/ftbase.c: Undo change from 2006-09-30.
1174
1175 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1176
11772006-09-30 David Turner <david@freetype.org>
1178
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001179 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1180 s/unpatented_hinting/ignore_unpatented_hinter/.
1181 Update all callers.
1182
1183 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1184 auto-hinting shall be used or not.
1185
1186 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001187
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011882006-09-30 Werner Lemberg <wl@gnu.org>
1189
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001190 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1191 in use).
1192
1193 * src/base/ftbase.c: Include `ftlcdfil.c'.
1194
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011952006-09-29 Werner Lemberg <wl@gnu.org>
1196
1197 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1198 overlapping segments. Bug reported by Stefan Koch.
1199
David Turnerad830712006-09-27 16:20:59 +000012002006-09-28 David Turner <david@freetype.org>
1201
Werner Lemberg2c002e12006-09-29 21:31:53 +00001202 Fix a bug in the automatic unpatented hinting support which prevents
1203 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001204
Werner Lemberg2c002e12006-09-29 21:31:53 +00001205 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1206 s/force_autohint/unpatented_hinting/. Update all callers.
1207
1208 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1209
1210 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001211
David Turner8a317cf2006-09-27 07:52:48 +000012122006-09-27 David Turner <david@freetype.org>
1213
Werner Lemberg2c002e12006-09-29 21:31:53 +00001214 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001215
David Turner8a317cf2006-09-27 07:52:48 +00001216
David Turnere140f142006-10-23 08:56:57 +00001217 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001218 In a default build, the function `FT_Library_SetLcdFilter' returns
1219 `FT_Err_Unimplemented_Feature'; you need to #define
1220 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1221 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001222
Werner Lemberg2c002e12006-09-29 21:31:53 +00001223 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001224
Werner Lemberg2c002e12006-09-29 21:31:53 +00001225 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1226 typedef.
1227 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1228 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001229
Werner Lemberg2c002e12006-09-29 21:31:53 +00001230 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1231 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001232
Werner Lemberg2c002e12006-09-29 21:31:53 +00001233 Handle subpixel rendering.
1234 Simplify function.
1235 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1236 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1237
1238 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1239 pointing to <freetype/ftlcdfil.h>.
1240
1241 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1242 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1243
1244 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001245
Werner Lemberge20df4a2006-09-27 06:29:21 +000012462006-09-26 David Bustin
1247
1248 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1249 correctly. Reported as Savannah bug #17843.
1250
David Turner6f8c6222006-09-26 15:42:44 +000012512006-09-26 David Turner <david@freetype.org>
1252
Werner Lemberg110246c2006-09-26 21:55:44 +00001253 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1254 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1255 horizontal and vertical hinting for the purpose of debugging the
1256 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001257
Werner Lemberg110246c2006-09-26 21:55:44 +00001258 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1259 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001260
Werner Lemberg110246c2006-09-26 21:55:44 +00001261 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1262
1263 * include/freetype/config/ftoption.h, devel/ftoption.h
1264 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1265 we want to compile LCD-optimized rendering code (à la ClearType) or
1266 not. The macro *must* be disabled in default builds of the library
1267 for patent reasons.
1268
1269 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1270 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1271 isn't defined at compile time. This only changes the content of the
1272 rendered glyph to match the one of normal gray-level rendering,
1273 hence clients should not need to be modified.
1274
1275 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001276
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012772006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1278
1279 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1280 LWFN fails and both are available.
1281
David Turnerf3050052006-09-11 12:00:32 +000012822006-09-11 David Turner <david@freetype.org>
1283
Werner Lembergf9644552006-09-12 13:48:10 +00001284 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1285 report their English names through an Apple Roman
1286 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001287
Werner Lembergf9644552006-09-12 13:48:10 +00001288 If the font uses another name entry with language_id == English, it
1289 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001290
Werner Lembergf9644552006-09-12 13:48:10 +00001291 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1292 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001293
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012942006-09-05 Werner Lemberg <wl@gnu.org>
1295
1296 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001297 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001298 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1299 `HAN NOM B.ttf').
1300
1301 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1302
David Turner772e55d2006-09-05 09:45:15 +000013032006-09-05 David Turner <david@freetype.org>
1304
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001305 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001306
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001307 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1308 (TRaster): Remove `count_ex' and `count_ey'.
1309 (gray_find_cell): Remove 2nd and 3rd argument.
1310 (gray_alloc_cell): Merged with `gray_find_cell'.
1311 (gray_record_cell): Simplify.
1312 (gray_set_cell): Rewrite.
1313 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1314 (gray_render_span): Don't use FT_MEM_SET for small values.
1315 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1316 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1317 bitmap scanline.
1318 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001319
David Turneraa557a92006-09-04 16:42:44 +000013202006-09-04 David Turner <david@freetype.org>
1321
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001322 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1323 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001324
Werner Lemberg2d8629b2006-09-03 06:18:45 +000013252006-09-03 Werner Lemberg <wl@gnu.org>
1326
1327 * devel/ftoption.h: Synchronize with
1328 include/freetype/config/ftoption.h.
1329
1330 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1331 variable declaration.
1332 (gray_convert_glyph): Fix compiler warnings.
1333
David Turner6d79f212006-09-01 14:09:35 +000013342006-09-01 David Turner <david@freetype.org>
1335
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001336 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1337 to recognize a few fonts that require the automatic unpatented
1338 loader.
David Turnerbd502952006-09-01 19:05:24 +00001339
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001340 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1341 rasterizer. The speed improvement is between 15% and 25%, depending
1342 on the font data.
1343
1344 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1345 (TCell): Redefine.
1346 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1347 (gray_init_cells): Updated.
1348 (gray_find_cell, gray_alloc_cell): New functions.
1349 (gray_record_cell): Rewritten to use `gray_find_cell' and
1350 `gray_alloc_cell'.
1351 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1352 QSORT_THRESHOLD):
1353 Removed.
1354 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1355 gray_dump_cells): Removed.
1356 (gray_sweep): Rewritten.
1357 (gray_convert_glyph): Rewrite code which used one of the sorting
1358 functions.
1359 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001360
Werner Lembergd898aed2006-08-29 09:50:34 +000013612006-08-29 Dr. Werner Fink <werner@suse.de>
1362
1363 * configure: Make it possible to handle configure options which
1364 have strings containing spaces.
1365
13662006-08-27 David Turner <david@freetype.org>
1367
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001368 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1369 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1370 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1371
1372 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1373 src/truetype/truetype.c, src/truetype/ttdriver.c,
1374 src/truetype/ttgload.c, src/truetype/ttgload.h,
1375 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1376 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1377 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1378
1379 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1380 member `force_autohint'.
1381
1382 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1383
1384 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1385 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001386
Jens Claudiusa787f452006-08-27 11:26:18 +000013872006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1388
1389 Fix miscellaneous compiler warnings.
1390
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001391 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1392 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001393
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001394 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1395 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1396 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001397
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001398 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1399 volatileness of argument to ft_longjmp. Spotted by Werner
1400 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001401
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001402 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1403 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001404
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001405 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1406 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001407
Werner Lembergc4c35b72006-08-27 08:03:46 +000014082006-08-27 Werner Lemberg <wl@gnu.org>
1409
1410 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1411 Reported by Jens.
1412
Jens Claudius088e44e2006-08-22 14:24:30 +000014132006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001414
Jens Claudius088e44e2006-08-22 14:24:30 +00001415 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001416 about addresses of volatile objects passed as function arguments as
1417 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001418
Werner Lembergc4c35b72006-08-27 08:03:46 +00001419 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1420 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001421
1422 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1423 argument `table' a pointer to a volatile object.
1424
1425 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1426 argument `table' a pointer to a volatile object.
1427
Jens Claudius2652bd52006-08-18 17:20:37 +000014282006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1429
1430 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1431 variable `_sfnt' as volatile since it must keep its value across
1432 a call to ft_setjmp.
1433 (gxv_validate): Same for local variables `memory' and `valid'.
1434 (classic_kern_validate): Same for local variables `memory',
1435 `ckern', and `valid'.
1436
1437 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1438 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1439 `jstf', and 'valid'.
1440
1441 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1442 local variable `cmap'.
1443
David Turner9fbfc6a2006-08-16 09:11:31 +000014442006-08-16 David Turner <david@freetype.org>
1445
Werner Lemberg12342992006-08-19 11:18:09 +00001446 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1447 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001448
Werner Lemberg12342992006-08-19 11:18:09 +00001449 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1450 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001451
David Turner33f5f242006-08-16 16:50:55 +00001452
Werner Lemberg12342992006-08-19 11:18:09 +00001453 Improvements to native TrueType hinting. This is a first try,
1454 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1455
1456 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1457 `extra_points2'.
1458
1459 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1460 `orus'.
1461
1462 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1463 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1464 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1465 handle `extra_points2'.
1466
1467 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1468 Remove compiler warning.
1469 (cur_to_arg): Remove macro.
1470 (TT_Hint_Glyph): Updated.
1471 (TT_Process_Simple_Glyph): Handle `orus'.
1472
1473 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1474 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1475 (LOC_Ins_IUP): Renamed to...
1476 (IUP_WorkerRec): This.
1477 Add `orus' member.
1478 (Shift): Renamed to...
1479 (_iup_worker_shift): This.
1480 Updated.
1481 (Interp): Renamed to...
1482 (_iup_worker_interpolate): This.
1483 Updated to handle `orus'.
1484 (Ins_IUP): Updated.
1485
1486 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1487 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001488
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014892006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1490
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001491 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001492 build ftvalid in ft2demos. This has been inadvertedly changed
1493 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001494
14952006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1496
Werner Lemberg12342992006-08-19 11:18:09 +00001497 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1498 Jens:
1499 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001500
Werner Lemberg12342992006-08-19 11:18:09 +00001501 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1502 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001503
1504 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1505
Jens Claudius9950adc2006-08-13 12:14:36 +000015062006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1507
Werner Lemberg12342992006-08-19 11:18:09 +00001508 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1509 T1_TOKEN_TYPE_KEY.
1510 (T1_FieldRec): Add `dict'.
1511 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1512 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1513 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001514
Werner Lemberg12342992006-08-19 11:18:09 +00001515 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1516 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001517
1518 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1519
1520 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001521 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1522 not T1_TOKEN_TYPE_ANY.
1523 (ps_parser_load_field): Make sure a token that should be a string or
1524 name is really a string or name.
1525 Avoid memory leak if a keyword has been already encountered and its
1526 value is overwritten.
1527 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1528 T1_FIELD_XXX.
1529 (parse_dict): Ignore keywords that occur in the wrong dictionary
1530 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001531
Werner Lemberg12342992006-08-19 11:18:09 +00001532 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1533 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001534
Werner Lemberg12342992006-08-19 11:18:09 +00001535 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1536 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001537
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000015382006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1539
1540 Move creation of field `buildchar' of T1_DecoderRec out of
1541 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1542 of it.
1543
1544 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1545 and `T1_Compute_Max_Advance'.
1546
1547 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1548 Remove field `face', add `len_buildchar'.
1549
1550 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1551 field `buildchar'.
1552
1553 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1554 finisher for T1_Decoder.
1555 (cid_slot_load_glyph): Do not ignore failure when initializing the
1556 T1_Decoder.
1557
1558 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1559 Updated.
1560 (t1_decoder_init): Remove initialization of fields `buildchar' and
1561 `len_buildchar'.
1562 (t1_decoder_done): Remove deallocation of field `buildchar'.
1563
1564 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1565 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1566 T1_Decoder.
1567 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1568 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1569 case of error.
1570
1571 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1572 `buildchar' of T1_FaceRec.
1573
1574 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1575 `buildchar' of T1_FaceRec.
1576
Werner Lemberg1a380e02006-07-14 18:28:08 +000015772006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1578
1579 * freetype2/include/freetype/internal/psaux.h: New macros
1580 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1581 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1582 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1583 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1584 (T1_DecoderRec): New fields `buildchar' and `face'.
1585 (IS_PS_TOKEN): New macro.
1586
1587 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1588 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1589
1590 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1591 `default_design_vector' and `num_default_design_vector'.
1592
1593 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1594 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1595 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1596
1597 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1598 `token' argument to be NULL if we want only to count the number of
1599 tokens.
1600 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1601 want to skip the array.
1602 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1603 want to skip the array.
1604
1605 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1606 support for (partially commented out) othersubrs 19-25, 27, and 28.
1607 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1608 (t1_decoder_done): Release new field `buildchar'.
1609
1610 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1611 functions.
1612 (t1_keywords): Register them.
1613 (t1_allocate_blend): Updated.
1614 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1615 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1616 (parse_dict): Remove `keyword_flags' argument.
1617 Use new macro IS_PS_TOKEN.
1618 Changed function so that later PostScript definitions override
1619 earlier ones.
1620 (t1_init_loader): Initialize new field `keywords_encountered'.
1621 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1622 `len_buildchar'.
1623 Remove `keywords_flags'.
1624
1625 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1626 `keywords_encountered'.
1627 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1628
1629 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1630 New entries for parsing /NDV, /CDV, and /DesignVector.
1631
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000016322006-07-07 Werner Lemberg <wl@gnu.org>
1633
1634 Add many checks to protect against malformed PCF files.
1635
1636 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1637 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1638
1639 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1640 data and check that tables don't overlap (using a simple
1641 bubblesort).
1642 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1643 New macros which give the size of data structures in the data
1644 stream.
1645 (pcf_get_properties): Use rough estimates to get array size limits.
1646 Assign `face->nprops' and `face->properties' earlier so that a call
1647 to PCF_Face_Done can do the clean-up in case of error.
1648 Protect against invalid string offsets.
1649 (pcf_get_metrics): Clean up code.
1650 Adjust tracing message levels.
1651 Use rough estimate to get array size limit.
1652 (pcf_get_bitmaps): Clean up code.
1653 Adjust tracing message levels.
1654 Use rough estimates to get offset limits.
1655 (pcf_get_encodings): Adjust tracing message level.
1656 (pcf_get_accel): Clean up code.
1657
Werner Lemberg8eb05252006-06-27 06:20:01 +000016582006-06-26 Werner Lemberg <wl@gnu.org>
1659
1660 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1661 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1662
Werner Lemberg24703f82006-06-26 19:12:51 +000016632006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1664
1665 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1666 (t1_decoder_parse_charstrings): Operator with
1667 opcode 15 pops its two arguments.
1668 Handle the case where the pops of an othersubr may be part of a
1669 subroutine.
1670 Handle unknown othersubrs gracefully: count their operands and let
1671 the following pop operators push the operands as the results onto
1672 the Type1 stack.
1673 Improve handling of setcurrentpoint opcode.
1674
Werner Lembergc011f4c2006-06-26 09:40:00 +000016752006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1676
1677 The Type 1 parser now skips over top-level procedures as required
1678 for a `Simplified Parser'. This makes the parser more robust as it
1679 doesn't poke around in PostScript code. Additionally, it makes the
1680 FontDirectory hackery in src/type1/t1load.c unnecessary.
1681
1682 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1683 (skip_literal_string): Add FT_Error as return value.
1684 Handle escapes better.
1685 (skip_string): Add FT_Error as return value.
1686 Don't set `parser->error' but return error code directly.
1687 (skip_procedure): New function.
1688 (ps_parser_skip_PS_token): Handle procedures.
1689 Update code.
1690 (ps_parser_to_token): Update code.
1691 (ps_parser_load_field_table): Handle bbox entries also.
1692
1693 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1694 Add commented-out code for synthetic fonts.
1695
Werner Lemberga2da05c2006-06-25 06:27:27 +000016962006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1697
1698 Fix two hinting bugs as reported in
1699 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1700
1701 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1702 `first_point' member.
1703
1704 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1705 `first_point'.
1706 (TT_Process_Composite_Glyph): Always untouch points.
1707
1708 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1709 `first_point' and `last_point' in case of composite glyphs.
1710 (Ins_IUP): Fix computation of `end_point'.
1711
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000017122006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1713
Werner Lembergef3d2c22006-06-25 06:07:14 +00001714 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1715 Mac. The original patch was written by David Sachitano and Lawrence
1716 Coopet, and modified by Sean McBride for MPW compatibility. Only
1717 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001718
Werner Lembergef3d2c22006-06-25 06:07:14 +00001719 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1720 Mac OS X platforms.
1721 (OS_INLINE): Undefine before definition.
1722 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1723 FontAssociation table in FOND resource.
1724 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1725 and fontSize at each entry of FontAssociation table in FOND
1726 resource.
1727 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1728 ffStylOff of FamilyRecord header of FOND resource, the header,
1729 fontSize, fontID at each entry of FontAssociation table, and
1730 StyleMapping table.
1731 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001732
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000017332006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1734
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001735 Public API of TrueTypeGX, OpenType, and classic kern table validator
1736 should return `FT_Err_Unimplemented_Feature' if validation service
1737 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001738 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001739 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1740
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001741 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1742 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1743 unavailable.
1744 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1745 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001746
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001747 * src/base/ftotval.c (FT_OpenType_Validate): Return
1748 FT_Err_Unimplemented_Feature if OpenType validation service is
1749 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001750
Werner Lembergb10e45a2006-06-08 07:32:56 +000017512006-06-08 Werner Lemberg <wl@gnu.org>
1752
1753 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1754 errors.
1755
David Turner5f1f7502006-06-07 05:11:50 +000017562006-06-07 David Turner <david@freetype.org>
1757
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001758 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1759 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1760 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001761
David Turner457b4a82006-06-06 08:14:14 +000017622006-06-06 David Turner <david@freetype.org>
1763
Werner Lemberg4836f952006-06-06 12:54:08 +00001764 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001765
Werner Lemberg4836f952006-06-06 12:54:08 +00001766 We change `ps_unicodes_init' so that it also takes a
1767 `free_glyph_name' callback to release the glyph names returned by
1768 `get_glyph_name'
1769
1770 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1771 Renamed to ...
1772 (PS_GetGlyphNameFunc): This.
1773 (PS_FreeGlyphNameFunc): New typedef.
1774 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1775
1776 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1777 argument.
1778 (cff_sid_free_glyph_name): New function.
1779 (cff_cmap_unicode_init): Updated.
1780
1781 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1782
1783 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1784 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001785
1786
David Turner09717352006-06-04 14:33:08 +000017872006-06-04 David Turner <david@freetype.org>
1788
Werner Lembergd724f202006-06-04 15:17:41 +00001789 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1790 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001791 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001792
Werner Lembergd724f202006-06-04 15:17:41 +00001793 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1794 of `face->num_glyphs' which missed the last glyph, due to
1795 the offset-by-1 computation, since the PFR format doesn't
1796 guarantee that glyph index 0 corresponds to the `missing
1797 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001798
Werner Lemberg33779662006-05-26 06:30:05 +000017992006-05-25 Werner Lemberg <wl@gnu.org>
1800
1801 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1802 `-no-undefined'. Reported by Christian Biesinger.
1803
Werner Lemberg24773d62006-05-20 08:53:13 +000018042006-05-19 Brian Weed <bw@imaginengine.com>
1805
1806 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1807 have debug information, and debug libraries use `C7 compatible'
1808 debug info.
1809
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000018102006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1811
Werner Lemberga6523a62006-05-20 08:47:01 +00001812 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001813 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001814
Werner Lemberga6523a62006-05-20 08:47:01 +00001815 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1816 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001817
1818 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001819 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001820
18212006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1822
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001823 * build/unix/configure.raw: Add a fallback to disable Carbon
1824 dependency, if configured with no options on Mac OS X.
1825
18262006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1827
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001828 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001829 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001830 the second part of Savannah bug #16590.
1831
Werner Lemberg545c4e52006-05-17 22:55:04 +000018322006-05-18 Werner Lemberg <wl@gnu.org>
1833
1834 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1835 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1836
David Turnerdc3ff312006-05-17 12:59:35 +000018372006-05-17 David Turner <david@freetype.org>
1838
Werner Lemberg545c4e52006-05-17 22:55:04 +00001839 This is a major patch used to drastically improve the performance of
1840 loading glyphs. This both speeds up loading the glyph vectors
1841 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001842
Werner Lemberg545c4e52006-05-17 22:55:04 +00001843 We now use inline assembler code with GCC to implement `FT_MulFix',
1844 which is probably the most important function related to the
1845 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001846
Werner Lemberg545c4e52006-05-17 22:55:04 +00001847 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001848
1849
Werner Lemberg545c4e52006-05-17 22:55:04 +00001850 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1851 `cursor' and `limit'.
1852
1853 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1854 New functions.
1855 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1856 [TEST]: Remove.
1857
1858 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1859 code.
1860
1861 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1862 `FT_ZERO'
1863 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1864 (af_glyph_hints_reload: Rewrite recognition of weak points.
1865
1866 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1867 constant values out of the loops.
1868
1869 * src/autofit/aftypes.h: Updated.
1870
1871 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1872
1873 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1874 product to get orientation.
1875
1876 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1877 (FT_Stream_OpenGzip): Use it to handle small files directly in
1878 memory.
1879
1880 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1881 Improve performance.
1882
1883 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1884 `limit'.
1885
1886 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1887 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1888 exceedingly large values of number of contours. Speed up by
1889 reducing the number of loops.
1890
1891 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1892
1893
1894 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1895 used to detect rogue clients from 4 to 16. This is to prevent some
1896 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1897 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001898
Werner Lembergde2d90a2006-05-17 08:54:30 +000018992007-05-17 Werner Lemberg <wl@gnu.org>
1900
1901 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001902 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001903
19042006-05-16 Werner Lemberg <wl@gnu.org>
1905
1906 * docs/PROBLEMS: Updated icl issues.
1907
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001908----------------------------------------------------------------------------
1909
Werner Lemberg42b63b22007-01-21 21:01:33 +00001910Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001911David Turner, Robert Wilhelm, and Werner Lemberg.
1912
1913This file is part of the FreeType project, and may only be used, modified,
1914and distributed under the terms of the FreeType project license,
1915LICENSE.TXT. By continuing to use, modify, or distribute this file you
1916indicate that you have read the license and understand and accept it
1917fully.
1918
1919
1920Local Variables:
1921version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001922coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001923End: