blob: 3c16866cb58d9a588e2caf5a6eb2d5d27b12ac3c [file] [log] [blame]
David Turnere6472c12007-04-02 13:13:54 +000012007-04-02 David Turner <david@freetype.org>
2
Werner Lemberg94f12272007-04-03 07:19:53 +00003 Add special code to detect `extra-light' fonts and do not snap their
4 stem widths too much to avoid bizarre hinting effects.
5
6 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
7 `extra_light' members.
8
9 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
10 them.
11 (af_latin_metrics_scale_dim): Set `extra_light'.
12 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000013
David Turner3f539692007-03-28 14:53:40 +0000142007-03-28 David Turner <david@freetype.org>
15
Werner Lemberg644b1ad2007-03-28 21:17:11 +000016 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000017 padding.
18
Werner Lemberga08b2172007-03-28 07:17:17 +0000192007-03-28 Werner Lemberg <wl@gnu.org>
20
21 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
22 gracefully.
23 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
24 issue an error for longer names.
25 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
26 number of code points in Unicode.
27
Werner Lemberg644b1ad2007-03-28 21:17:11 +000028 * builds/win32/visualc/index.html,
29 builds/win32/visualc/freetype.dsp,
30 builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
31 s/232/233/.
32
33 * docs/CHANGES: Mention ftdiff.
34
David Turner3b242d32007-03-26 12:03:04 +0000352007-03-26 David Turner <david@freetype.org>
36
Werner Lemberg644b1ad2007-03-28 21:17:11 +000037 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
38 corresponding code.
39 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000040
Werner Lemberga08b2172007-03-28 07:17:17 +000041 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000042 computations in order to ignore single-point contours. These are
43 never rasterized and correspond in certain fonts to mark-attach
44 points that are very far from the glyph's real outline, ruining the
45 computation.
David Turnerf58caa02007-03-26 12:39:25 +000046
Werner Lemberga08b2172007-03-28 07:17:17 +000047 * src/autofit/afloader.c (af_loader_load_g): In the case of
48 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
49 Otherwise code that uses them will most certainly ruin the fixed
50 advance property.
David Turner23553d62007-03-26 13:37:17 +000051
Werner Lemberg644b1ad2007-03-28 21:17:11 +000052 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
53 documentation and bump version number to 2.3.3.
54
55 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
56
57 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +000058
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000592007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
60
Werner Lemberg644b1ad2007-03-28 21:17:11 +000061 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
62 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000063 * builds/vms/ftconfig.h: Ditto.
64 * include/freetype/config/ftconfig.h: Ditto.
65
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000662007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
67
Werner Lemberg14ffe092007-03-22 06:12:43 +000068 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
69 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000070 proposed by Sean McBride:
71 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
72
732007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
74
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000075 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
76 setjmp, proposed by Sean McBride:
77 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
78
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000792007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
80
Werner Lembergc9f6c662007-03-21 13:30:14 +000081 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
82 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
83 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000084
David Turner74c34eb2007-03-18 07:19:31 +0000852007-03-18 David Turner <david@freetype.org>
86
Werner Lembergc9f6c662007-03-21 13:30:14 +000087 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
88 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000089
Werner Lembergc9f6c662007-03-21 13:30:14 +000090 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000091
David Turner89020d92007-03-17 17:48:57 +0000922007-03-17 David Turner <david@freetype.org>
93
Werner Lembergc9f6c662007-03-21 13:30:14 +000094 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
95 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000096
Werner Lemberg25d592a2007-03-09 07:59:35 +0000972007-03-09 Werner Lemberg <wl@gnu.org>
98
99 * Version 2.3.2 released.
100 =========================
101
102
103 Tag sources with `VER-2-3-2'.
104
105 * builds/win32/visualc/index.html,
106 builds/win32/visualc/freetype.dsp,
107 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
108 s/231/232/.
109
David Turner3a51afa2007-03-08 10:50:38 +00001102007-03-08 David Turner <david@freetype.org>
111
Werner Lemberg25d592a2007-03-09 07:59:35 +0000112 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000113
Werner Lemberg25d592a2007-03-09 07:59:35 +0000114 * builds/unix/configure.raw (version_info): Set to 9:13:3.
115
116 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
117
118 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000119
Werner Lemberg1e259de2007-03-08 15:39:21 +0000120 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
121 function to work properly, over-writing user-provided buffers in
122 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000123
David Turner121cad52007-03-08 16:43:50 +0000124
Werner Lemberg3d92f082007-03-06 11:59:24 +00001252007-03-05 Werner Lemberg <wl@gnu.org>
126
127 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
128 macro for `strstr'.
129
130 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
131 `trick_names', as suggested by Ivan Nincic.
132
David Turner085bc6e2007-03-05 17:40:03 +00001332007-03-05 David Turner <david@freetype.org>
134
Werner Lembergd112cf02007-03-06 12:06:56 +0000135 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
136 case FT_Init_FreeType fails for some reason. Problem reported by
137 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000138
Werner Lembergd112cf02007-03-06 12:06:56 +0000139 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
140 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
141 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
142 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000143
Werner Lembergd112cf02007-03-06 12:06:56 +0000144 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
145 signed values, not unsigned ones. Problem reported by Johannes
146 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000147
David Turner601aefe2007-02-21 16:47:49 +00001482007-02-21 David Turner <david@freetype.org>
149
Werner Lembergde5e6862007-02-25 21:06:43 +0000150 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
151 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000152
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001532007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
154
155 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
156 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
157 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
158
Werner Lemberga0915172007-02-16 08:12:50 +00001592007-02-16 Werner Lemberg <wl@gnu.org>
160
161 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
162 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
163
David Turner2c4500e2007-02-14 15:08:47 +00001642007-02-14 David Turner <david@freetype.org>
165
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000166 It seems that the following changes fix most of the known
167 interpreter problems with my fonts, but more testing is needed,
168 though.
169
170 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
171 (TT_MulFix14): Rewrite.
172 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
173 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000174
Werner Lembergc6a14082007-02-12 22:08:15 +00001752007-02-12 Werner Lemberg <wl@gnu.org>
176
177 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
178 warnings.
179
180 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
181 (bdf_interpret_style): Ditto.
182
David Turnerc0f9c4a2007-02-12 14:55:03 +00001832007-02-12 David Turner <david@freetype.org>
184
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000185 Simplify projection and dual-projection code interface.
186
Werner Lemberg406d25f2007-02-12 22:01:18 +0000187 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
188 FT_Vector' as argument type.
189 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
190 Updated.
191 (CUR_fast_project, CUR_fast_dualproj): New macros.
192 (Project, Dual_Project, Project_x, Project_y): Updated.
193 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
194 macros.
195
196
197 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
198 adjustments for the non-light auto-hinted modes. Gets rid of
199 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000200
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000201 * src/autofit/aflatin.c (af_latin_hints_link_segments,
202 af_latin_hints_compute_edges): Slight optimization of the segment
203 linker and better handling of serif segments to get rid of broken
204 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000205
David Turnerc0f9c4a2007-02-12 14:55:03 +0000206
Werner Lemberg442bfb82007-02-12 21:44:10 +0000207 Introduce new string functions and the corresponding macros to get
208 rid of various uses of strcpy and other `evil' functions, as well as
209 to simplify a few things.
210
211 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
212 ft_mem_strcpyn): New declarations.
213 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
214 macros.
215 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
216 functions.
217
218 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
219 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
220 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
221 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
222 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
223 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
224 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
225 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000226
Werner Lemberg406d25f2007-02-12 22:01:18 +0000227 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
228
Werner Lemberg582067d2007-02-11 15:03:05 +00002292007-02-11 Werner Lemberg <wl@gnu.org>
230
231 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
232 non-spacing glyphs.
233
Werner Lemberg8f474532007-02-07 08:31:01 +00002342007-02-07 Tom Parker <palfrey@tevp.net>
235
236 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
237 pointer.
238
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
240
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000241 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
242 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000243 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000244 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
245 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
246 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
247 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000248
249 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
250 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000251 * builds/mac/ftmac.c: Ditto.
252
2532007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
254
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000255 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000256 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000257 #include <ftmac.c>.
258
2592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
260
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000261 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
262 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
263 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
264 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
265 FT_GetFilePath_From_Mac_ATS_Name.
266 * builds/mac/ftmac.c: Ditto.
267
2682007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
269
Werner Lembergdcbb7082007-02-08 08:54:09 +0000270 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000271 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
272 for passing to FT_New_Face_From_FSSpec.
273
2742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
275
Werner Lembergdcbb7082007-02-08 08:54:09 +0000276 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000277 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000278
279 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
280 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000281 * builds/mac/ftmac.c (OS_INLINE): Ditto.
282
Werner Lemberg313d7772007-02-01 08:10:45 +00002832007-02-01 Werner Lemberg <wl@gnu.org>
284
285 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
286 Explain why applications shouldn't use it. Found by Alexei.
287
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002882007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000289
290 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
291 message.
292
293 * src/gxvalid/gxvmort1.c
294 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
295 message.
296
Werner Lemberg53935932007-01-31 08:53:02 +00002972007-01-31 Werner Lemberg <wl@gnu.org>
298
299
300 * Version 2.3.1 released.
301 =========================
302
303
304 Tag sources with `VER-2-3-1-FINAL'.
305
306 * builds/win32/visualc/freetype.dsp,
307 builds/win32/visualc/freetype.vcproj: s/230/231/.
308 * builds/win32/visualc/index.html: s/221/231/.
309
310 * vms_make.com: Add `ftgasp'.
311
David Turnera7ee6082007-01-30 10:33:53 +00003122007-01-30 David Turner <david@freetype.org>
313
Werner Lemberg53935932007-01-31 08:53:02 +0000314 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000315
Werner Lemberg53935932007-01-31 08:53:02 +0000316 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000317
Werner Lemberg25d592a2007-03-09 07:59:35 +0000318 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000319 s/2.3.0/2.3.1/.
320
321 * builds/unix/configure.raw (version_info): Set to 9:12:3.
322
323
324 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
325 (af_loader_load_g): Disable the warper (i.e., the light hinting
326 improvements) to make a 2.3.1 bugfix release before introducing a
327 new feature. This should give us more time to tune and improve the
328 warper for the next release.
329
330 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000331
David Turnerd91eebd2007-01-26 15:05:41 +00003322007-01-25 David Turner <david@freetype.org>
333
Werner Lembergbf241762007-01-26 16:08:49 +0000334 For light auto-hinting, improve glyph advance widths and resurrect
335 normal/full hinting to its normal quality.
336
337 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
338 and `xmax_delta'.
339 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
340 and `xmax_delta'.
341
342 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
343 preprocessor conditional with if-clause, handling both light and
344 normal mode.
345
346 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
347 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000348
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003492007-01-25 Werner Lemberg <wl@gnu.org>
350
351 * docs/release: Updated -- Savannah uses a new uploading scheme.
352
David Turnera42567b2007-01-25 12:23:37 +00003532007-01-25 David Turner <david@freetype.org>
354
Werner Lembergd7855662007-01-25 13:53:56 +0000355 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000356
Werner Lembergd7855662007-01-25 13:53:56 +0000357 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
358 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
359 functions.
David Turnera42567b2007-01-25 12:23:37 +0000360
Werner Lembergd7855662007-01-25 13:53:56 +0000361 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000362
Werner Lembergb1be9e82007-01-25 11:50:00 +00003632007-01-25 Werner Lemberg <wl@gnu.org>
364
365 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000366 correctly in a sanity check. Since this function is only used to
367 load local and global functions, any charstring that called the last
368 local/global function would fail otherwise. This fixes Savannah bug
369 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000370
371 * docs/CHANGES: Document it.
372
David Turnerb6de8d12007-01-23 15:51:50 +00003732007-01-23 David Turner <david@freetype.org>
374
Werner Lembergb1be9e82007-01-25 11:50:00 +0000375 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
376 prevented compilation when disabling both the unpatented and the
377 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000378
Werner Lembergb1be9e82007-01-25 11:50:00 +0000379
380 Fix and enable the warper to improve `light' hinting mode. This is
381 not necessarily a final version, but it seems to work well.
382
383 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
384 Disable code.
385 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
386 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
387
388 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
389 (af_warper_compute_line_best): Fix array size of `scores'.
390 (af_warper_compute): Better handling of border cases.
391 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
392 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000393
Werner Lemberg011d1112007-01-21 09:36:00 +00003942007-01-21 Werner Lemberg <wl@gnu.org>
395
Werner Lemberg42b63b22007-01-21 21:01:33 +0000396 * ChangeLog: Split off older entries into...
397 * ChangeLog.22: This new file.
398
3992007-01-21 Werner Lemberg <wl@gnu.org>
400
Werner Lemberg555258f2007-01-21 09:46:37 +0000401 * docs/CHANGES: Document SHZ fix.
402
4032007-01-21 George Williams <gww@silcom.com>
404
405 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
406 points.
407
4082007-01-21 Werner Lemberg <wl@gnu.org>
409
Werner Lemberg011d1112007-01-21 09:36:00 +0000410 * src/sfnt/ttmtx.c (tt_face_get_metrics)
411 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
412
Werner Lemberg87a5a432007-01-17 12:44:39 +00004132007-01-17 Werner Lemberg <wl@gnu.org>
414
Werner Lembergb8003292007-01-17 12:56:25 +0000415
416 * Version 2.3.0 released.
417 =========================
418
419
420 Tag sources with `VER-2-3-0-FINAL'.
421
4222007-01-17 Werner Lemberg <wl@gnu.org>
423
Werner Lemberg87a5a432007-01-17 12:44:39 +0000424 * docs/release: Updated.
425
David Turner22122722007-01-16 20:06:44 +00004262007-01-16 David Turner <david@freetype.org>
427
Werner Lemberg87a5a432007-01-17 12:44:39 +0000428 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
429 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
430 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
431 warnings.
David Turner22122722007-01-16 20:06:44 +0000432
Werner Lemberg267e1d72007-01-15 07:48:09 +00004332007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
434
435 * builds/amiga/makefile, builds/amiga/makefile.os4,
436 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
437
438 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
439
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004402007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
441
442 Fix various compiler warnings.
443
444 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
445 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
446 s/index/strike_index/.
447 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
448
449 * src/gxvalid/gxvmorx5.c
450 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
451
452 * src/truetype/ttinterp.c (Compute_Point_Displacement),
453 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
454 uninitialized variables.
455
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004562007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
457
458 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
459
Werner Lemberg281c1482007-01-13 22:50:51 +00004602007-01-13 Werner Lemberg <wl@gnu.org>
461
462 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
463 versions up to 0x3FF without complaining.
464
Werner Lembergac250b22007-01-13 14:01:36 +00004652007-01-13 Derek Clegg <dclegg@apple.com>
466
467 Add FT_Get_PS_Font_Info interface to CFF driver.
468
469 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
470 (CFF_FontRec): Add `font_info' field.
471
472 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
473 (cff_font_done): Free font->font_info if necessary.
474
475 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
476 (cff_service_ps_info): Register cff_ps_get_font_info.
477
Werner Lemberg23df31a2007-01-13 08:45:00 +00004782007-01-13 Werner Lemberg <wl@gnu.org>
479
480 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
481 with C++ compiler.
482
483 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
484 af_glyph_hints_dump_edges): Ditto.
485
486 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
487 `modules.cfg').
488
489 * src/sfnt/ttsbit0.h: Remove.
490
491 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
492
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004932007-01-12 David Turner <david@freetype.org>
494
495 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
496 bug in the bitmap emboldener if the pitch of the source bitmap is
497 much larger than its width.
498
499 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
500 compilation warning.
501
Werner Lemberg6d96d312007-01-12 10:30:19 +00005022007-01-12 Werner Lemberg <wl@gnu.org>
503
504 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
505 `automake' CVS module from sources.redhat.com.
506
Werner Lemberg17432b52007-01-12 09:28:44 +00005072007-01-11 Werner Lemberg <wl@gnu.org>
508
509 * src/type1/t1load.c (is_space): Removed.
510 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
511 (parse_charstrings): Use IS_PS_TOKEN.
512
513
514 * autogen.sh: Avoid bash specific syntax.
515
David Turner038ace22007-01-11 15:00:59 +00005162007-01-11 David Turner <david@freetype.org>
517
Werner Lemberg17432b52007-01-12 09:28:44 +0000518 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000519
Werner Lemberg17432b52007-01-12 09:28:44 +0000520 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000521
Werner Lemberg17432b52007-01-12 09:28:44 +0000522 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
523 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000524 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000525
Werner Lemberg17432b52007-01-12 09:28:44 +0000526 * autogen.sh: Small fix to get it working on Mac OS X properly:
527 The issue is that GNU libtool is called `glibtool' on this platform,
528 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000529
David Turner2628ea92007-01-10 13:15:56 +00005302007-01-10 David Turner <david@freetype.org>
531
Werner Lemberg17432b52007-01-12 09:28:44 +0000532 * all-sources: Tag all sources with VER-2-3-0-RC1 and
533 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000534
Werner Lemberg17432b52007-01-12 09:28:44 +0000535 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
536 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
537 version number to 2.3.0.
538
539 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
540 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000541
542 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000543 include/freetype/ftlcdfil.h: Update reference documentation with
544 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000545
Werner Lemberg17432b52007-01-12 09:28:44 +0000546 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
547 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000548
Werner Lembergbf02d392007-01-10 07:07:37 +00005492007-01-10 Derek Clegg <dclegg@apple.com>
550
551 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
552 values.
553
David Turnerf48b60e2007-01-08 15:15:32 +00005542007-01-08 David Turner <david@freetype.org>
555
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000556 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000557
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000558 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
559 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000560 corresponding to a given character pixel size.
561
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000562 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
563 `gasp' table, in order to avoid potential problems with later
564 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000565
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000566 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
567 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000568
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000569 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
570 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
571 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
572 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000573
Werner Lemberge6b6f372007-01-07 00:06:47 +00005742007-01-07 Werner Lemberg <wl@gnu.org>
575
Werner Lembergb8004d22007-01-07 09:13:38 +0000576 * src/cid/cidparse.c (cid_parser_new): Improve error message for
577 Type 11 fonts.
578 Scan for `/sfnts' token.
579
5802007-01-07 Werner Lemberg <wl@gnu.org>
581
582 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000583
Werner Lembergbe5f7972007-01-06 07:51:48 +00005842007-01-06 Werner Lemberg <wl@gnu.org>
585
586 * src/cff/cffload.c (cff_index_init): Remove unused variable.
587 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
588
David Turnera8cf42b2007-01-04 16:46:46 +00005892007-01-04 David Turner <david@freetype.org>
590
Werner Lembergf6294392007-01-06 07:47:45 +0000591 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
592 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000593
Werner Lembergf6294392007-01-06 07:47:45 +0000594
595 Do not allocate interpreter-specific tables in memory if we are not
596 going to load glyphs with the bytecode interpreter anyway.
597
598 * src/truetype/ttgload.c (tt_loader_init): Load execution context
599 only if glyph is hinted.
600 Updated.
601 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
602 and `cvs_ready'.
603 Add `tt_size_ready_bytecode' declaration.
604 * src/truetype/ttobjs.c (tt_size_done_bytecode,
605 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
606 (tt_size_init): Move most code into `tt_size_init_bytecode'.
607 (tt_size_done): Move most code into `tt_size_done_bytecode'.
608 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000609
David Turner91a34022007-01-05 14:47:08 +0000610
Werner Lembergf6294392007-01-06 07:47:45 +0000611 Don't extract the metrics table from the SFNT font file. Instead,
612 reparse it on each glyph load. The runtime difference is not
613 noticeable, and it can save a lot of heap memory when memory-mapped
614 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000615
Werner Lembergf6294392007-01-06 07:47:45 +0000616 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
617 `horz_metrics_offset' and `vert_metrics_ofset'.
618 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
619 Updated.
620
621
622 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
623
624
625 Do not load the CFF index offsets into memory, since this wastes a
626 *lot* of heap memory with large Asian CFF fonts. There is no
627 significant performance loss.
628
629 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
630 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
631 `data_size'.
632 (CFF_CharsetRec): Add field `num_glyphs'.
633
634 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
635 cff_charset_cid_to_gindex): New functions.
636 (cff_new_index): Renamed to...
637 (cff_index_init): This. Update all callers.
638 Updated -- some code has been moved to `cff_index_load_offsets'.
639 (cff_done_index): Renamed to...
640 (cff_index_done): This. Update all callers.
641 (cff_index_get_pointers, cff_index_access_element): Updated to use
642 stream offsets.
643 (cff_charset_compute_cids): Set `num_glyphs' field.
644 (cff_encoding_load): Updated.
645
646 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000647
6482007-01-04 David Turner <david@freetype.org>
649
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000650 * docs/INSTALL.UNIX: Simplify some parts, add reference to
651 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000652
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000653 * README.CVS: Add common problem description and solution
654 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000655
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000656 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000657
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000658 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000659
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000660 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000661
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000662 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
663 (TWorker): This.
664 Remove `count_table' and `memory'.
665 Make `grays' a pointer.
666 (TRaster): New structure.
667 (count_table): New static array.
668 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
669 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
670 ft_black_set_mode, ft_black_render): Updated.
671 (ft_black_init): Don't initialize `count_table'.
672 (ft_black_reset): Use the render pool. This saves about 6KB of
673 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000674
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000675 * src/smooth/ftgrays.c (TRaster): Replaced with...
676 (TWorker): This.
677 Remove `memory'.
678 (TRaster): New structure.
679
680 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
681 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
682 gray_render_span, gray_raster_render): Updated.
683 (gray_raster_reset): Use the render pool. This saves about 6KB of
684 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000685
David Turner8a6c44e2007-01-04 17:03:11 +0000686 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
687 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000688 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
689 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
690 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000691
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000692 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
693 Remove a typo that results in no hinting and a memory leak with some
694 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000695
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000696 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000697 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000698 CFF_Faces in it. We need to close all faces before destroying the
699 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000700
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007012007-01-02 Werner Lemberg <wl@gnu.org>
702
703 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
704 Remove compiler warning.
705
David Turner9207e002007-01-02 16:58:13 +00007062007-01-02 David Turner <david@freetype.org>
707
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000708 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000709
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007102006-12-31 Masatake YAMATO <jet@gyve.org>
711
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000712 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
713 function.
714 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000715 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000716 `gxv_kern_subtable_fmt0_pairs_validate'.
717
David Turner115b4422006-12-22 11:37:05 +00007182006-12-22 David Turner <david@freetype.org>
719
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000720 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
721 warnings.
David Turner115b4422006-12-22 11:37:05 +0000722
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000723 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
724 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000725
Werner Lemberg4755bf72006-12-16 08:58:44 +00007262006-12-16 Anders Kaseorg <anders@kaseorg.com>
727
728 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
729 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
730
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
732
Werner Lemberg9b774e22007-01-16 06:11:27 +0000733 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000734 sync with the modification by Jens Claudius on 2006-08-22; cf.
735 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 +0000736
7372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
738
739 * src/base/ftmac.c: Specialized for Mac OS X only.
740 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
741 * builds/unix/configure.raw: Ditto. When explicit switches for
742 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
743 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
744
7452006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
746
747 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
748 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
749 instead of src/base/ftmac.c
750 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
751 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
752 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
753 that cannot be built at present.
754
7552006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
756
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000757 * src/base/ftobjs.c: Improvement of resource fork handler for
758 POSIX, cf.
759 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000760 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
761 format or .dfont, to simulate the face index number counted by ftmac.c.
762 (IsMacResource): Return the number of scalable faces correctly.
763
Werner Lembergec5b4502006-12-10 07:51:38 +00007642006-12-10 Werner Lemberg <wl@gnu.org>
765
766 * builds/toplevel.mk (version): Protect against `distclean' target.
767
Werner Lembergb26b3142006-12-09 20:01:43 +00007682006-12-09 Werner Lemberg <wl@gnu.org>
769
770 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
771 or `type'.
772
773 * builds/freetype.mk (version): Extracted from freetype.h, using
774 GNU make's built-in string functions.
775 (refdoc): Use $(version) instead of static version number.
776
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007772006-12-08 Werner Lemberg <wl@gnu.org>
778
779 * builds/toplevel.mk (dist): Extract version number from freetype.h.
780
Werner Lemberg15c29502006-12-09 07:29:54 +00007812006-12-08 Vladimir Volovich <vvv@vsu.ru>
782
783 * src/tools/apinames (State): Remove final comma in structure -- xlc
784 v5 under AIX 4.3 doesn't like this.
785
David Turnerdbf3b432006-12-07 21:18:09 +00007862006-12-07 David Turner <david@freetype.org>
787
Werner Lemberg256a3512006-12-08 06:49:33 +0000788 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
789 to the spacing of auto-fitted glyphs. This only impacts rare
790 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000791
Werner Lemberg11171312006-12-03 09:43:40 +00007922006-12-03 Werner Lemberg <wl@gnu.org>
793
794 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
795
Werner Lemberg960ba592006-12-01 08:20:47 +00007962006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000797
Werner Lemberg960ba592006-12-01 08:20:47 +0000798 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
799 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
800 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000801
David Turner80658e52006-11-28 08:09:20 +0000802
Werner Lemberg960ba592006-12-01 08:20:47 +0000803 * include/freetype/ftxf86.h: Fix and extend comment so that it
804 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000805
Werner Lemberg960ba592006-12-01 08:20:47 +0000806 * include/freetype/ftchapters.h: Add `font_format' section.
807
808
809 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
810 to TOC in index page.
811
8122006-11-28 David Turner <david@freetype.org>
813
814 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
815 trying to render into a zero-width/height bitmap, not an error code.
816
817 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
818
819 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
820 ones instead.
821
822 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
823 variable.
David Turner80658e52006-11-28 08:09:20 +0000824
Werner Lemberg8636c292006-11-26 22:28:13 +00008252006-11-26 Pierre Hanser <hanser@club-internet.fr>
826
827 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
828
Werner Lemberg960ba592006-12-01 08:20:47 +00008292006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000830
Werner Lemberg960ba592006-12-01 08:20:47 +0000831 * src/autofit/afhints.c (af_glyph_hints_dump_points,
832 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
833 Add stubs to link the `ftgrid' test program when debugging is
834 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000835
Werner Lemberg960ba592006-12-01 08:20:47 +00008362006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000837
838 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000839 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
840
841 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
842 Emit more sensible information.
843
844 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
845
846 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
847 rounding of blue values.
848 (af_latin_hints_compute_segments): Hint segment heights.
849 (af_latin_hints_link_segments): Reduce `len_score' value.
850 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
851 value and use `height' member for comparisons.
852 (af_latin_hint_edges): Extend logging message.
853 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000854
Werner Lemberg91959bf2006-11-22 10:36:55 +00008552006-11-22 Werner Lemberg <wl@gnu.org>
856
857 Fix Savannah bug #15553.
858
859 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
860 program after a change from mono to grayscaling (and vice versa).
861 Use correct constant for comparison to get `exec->grayscale'.
862
Werner Lemberg913a3652006-11-19 09:19:17 +00008632006-11-18 Werner Lemberg <wl@gnu.org>
864
865 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000866 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000867 This patch fixes Savannah bug #18301.
868
869 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
870 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
871 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
872 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
873 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
874 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
875 (FNT_Load_Glyph): Check validity of `glyph_index'.
876
David Turner7bab6ae2006-11-13 11:25:06 +00008772006-11-13 David Turner <david@freetype.org>
878
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000879 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
880 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000881
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000882 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
883 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
884 when building the library to change the default LCD filter to be
885 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000886
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000887 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000888
David Turner8765c712006-11-10 16:49:42 +00008892006-11-10 David Turner <david@freetype.org>
890
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000891 * src/smooth/ftsmooth.c: API change for the LCD
892 filter. The FT_LcdFilter value is an enumeration describing which
893 filter to apply, with new values FT_LCD_FILTER_LIGHT and
894 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
895 algorithm which produces strong color fringes for everything
896 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000897
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000898 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
899 second parameter to an enum type.
900
901 * src/base/ftlcdfil.c (USE_LEGACY): Define.
902 (_ft_lcd_filter): Rename to...
903 (_ft_lcd_filter_fir): This.
904 Update parameters.
905 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
906 (FT_Library_Set_LcdFilter): Update parameters.
907 Handle new filter modes.
908
909 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
910 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
911 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
912 callback and update other fields.
913
914 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
915 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
916 Other minor improvements.
917
918 * src/autofit/aflatin.c: Various tiny improvements that drastically
919 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
920 (af_latin_hints_compute_edges): Fix typo.
921 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000922
David Turner4e9cc3c2006-11-09 16:31:52 +00009232006-11-09 David Turner <david@freetype.org>
924
Werner Lemberg49c77a82006-11-09 21:51:57 +0000925 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
926 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000927
Werner Lemberg5e430892006-11-07 09:35:03 +00009282006-11-07 Zhe Su <james.su@gmail.com>
929
930 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
931 also.
932
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009332006-11-03 Werner Lemberg <wl@gnu.org>
934
935 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
936
David Turner40604742006-11-02 16:37:35 +00009372006-11-02 David Turner <david@freetype.org>
938
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000939 Add a few tweaks to better handle serif fonts.
940 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000941
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000942 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
943 segments that are less than 1.5 pixels high. This gets rid of
944 *many* corner cases with serifs.
945 (af_latin_align_linked_edge): Add logging message.
946 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
947 Add logging messages.
948 Handle AF_EDGE_FLAG flag specially.
949
950 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
951 _af_debug_disable_blue_hints, and _af_debug_hints variables.
952
953 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
954 Update external declarations.
955 (af_corner_orientation, af_corner_is_flat): Replaced by...
956
957 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
958 ft_corner_is_flat): These declarations.
959
960 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
961 Comment out. Replaced by...
962
963 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
964 These functions. Update all callers.
965 (FT_Add64) [!FT_LONG64]: Simplify.
966
967 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
968 (af_direction_compute): Add a missing FT_ABS call. This bug caused
969 production of garbage by missing lots of segments.
970
971 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
972
973 * src/autofit/afloader.c (af_loader_init, af_loader_done)
974 [AF_DEBUG]: Set _af_debug_hints.
975
976
977 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
978 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
979 and ft_corner_orientation.
980
981
982 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000983
Werner Lemberge88c5262006-10-24 05:46:26 +00009842006-10-24 Werner Lemberg <wl@gnu.org>
985
986 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
987
988 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
989 as argument.
990
David Turnera1861392006-10-23 16:00:59 +00009912006-10-23 Zhe Su <zsu@novell.com>
992
Werner Lemberg715e96e2006-10-24 05:28:45 +0000993 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
994 better deal with broken Asian fonts with strange glyphs, having
995 self-intersections and other peculiarities. The used algorithm is
996 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000997
David Turnere140f142006-10-23 08:56:57 +00009982006-10-23 David Turner <david@freetype.org>
999
Werner Lemberg715e96e2006-10-24 05:28:45 +00001000 Speed up the CFF font loader. With some large CFF fonts,
1001 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001002
Werner Lemberg715e96e2006-10-24 05:28:45 +00001003 * src/cff/cffload.c (cff_get_offset): Removed.
1004 (cff_new_index): Inline functionality of `cff_get_offset'.
1005 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1006 (cff_charset_done): Call `cff_charset_free_cids'.
1007 (cff_charset_load): Call `cff_charset_compute_cids'.
1008 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1009
1010 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1011 with FT_NEXT_XXX.
1012
1013
1014 Speed up the Postscript hinter, with more than 100% speed increase
1015 on my machine.
1016
1017 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1018 psh_corner_orientation): New functions.
1019 (psh_glyph_compute_inflections): Merge loops for efficiency.
1020 Use `psh_corner_orientation'.
1021 (psh_glyph_init): Use `psh_corner_is_flat'.
1022 (psh_hint_table_find_strong_point): Renamed to...
1023 (psh_hint_table_find_strong_points): This.
1024 Rewrite, adding argument to handle all points at once.
1025 Update all callers.
1026 (PSH_MAX_STRONG_INTERNAL): New macro.
1027 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001028
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010292006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1030
1031 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001032 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001033
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010342006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1035
1036 * docs/INSTALL.CROSS: New document file for cross-building.
1037
1038 * builds/unix/configure.raw: Preliminary cross-building support.
1039 Find native C compiler and pass it by CC_BUILD, and
1040 find suffix for native executable and pass it by EXEEXT_BUILD.
1041 Also suffix for target executable is passed by EXEEXT.
1042
Werner Lembergb9e6d692006-10-15 08:58:40 +00001043 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1044 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001045 CC_BUILD and EXEEXT_BUILD.
1046
Werner Lembergb9e6d692006-10-15 08:58:40 +00001047 * builds/exports.mk (APINAMES_EXE): Change the extension for
1048 apinames from the suffix for target (E) to that for building host
1049 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001050
Werner Lemberg82a07e92006-10-12 06:20:44 +000010512006-10-12 Werner Lemberg <wl@gnu.org>
1052
1053 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1054 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1055 which reference those files.
1056
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010572006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1058
Werner Lembergb9e6d692006-10-15 08:58:40 +00001059 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1060 embedded in freetype2.pc and freetype-config. Use it to record
1061 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001062
1063 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1064
1065 * builds/unix/freetype-config.in: Ditto.
1066
Werner Lemberg28e17d92006-10-11 17:27:47 +000010672006-10-11 Werner Lemberg <wl@gnu.org>
1068
1069 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1070 development.
1071
Jens Claudius336d2292006-10-03 08:53:37 +000010722006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1073
1074 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1075 argument to ft_setjmp.
1076
1077 * include/freetype/internal/ftvalid.h: Add comment that
1078 ft_validator_run must not be used.
1079
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010802006-10-01 Werner Lemberg <wl@gnu.org>
1081
1082 * src/base/ftbase.c: Undo change from 2006-09-30.
1083
1084 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1085
10862006-09-30 David Turner <david@freetype.org>
1087
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001088 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1089 s/unpatented_hinting/ignore_unpatented_hinter/.
1090 Update all callers.
1091
1092 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1093 auto-hinting shall be used or not.
1094
1095 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001096
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010972006-09-30 Werner Lemberg <wl@gnu.org>
1098
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001099 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1100 in use).
1101
1102 * src/base/ftbase.c: Include `ftlcdfil.c'.
1103
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011042006-09-29 Werner Lemberg <wl@gnu.org>
1105
1106 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1107 overlapping segments. Bug reported by Stefan Koch.
1108
David Turnerad830712006-09-27 16:20:59 +000011092006-09-28 David Turner <david@freetype.org>
1110
Werner Lemberg2c002e12006-09-29 21:31:53 +00001111 Fix a bug in the automatic unpatented hinting support which prevents
1112 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001113
Werner Lemberg2c002e12006-09-29 21:31:53 +00001114 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1115 s/force_autohint/unpatented_hinting/. Update all callers.
1116
1117 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1118
1119 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001120
David Turner8a317cf2006-09-27 07:52:48 +000011212006-09-27 David Turner <david@freetype.org>
1122
Werner Lemberg2c002e12006-09-29 21:31:53 +00001123 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001124
David Turner8a317cf2006-09-27 07:52:48 +00001125
David Turnere140f142006-10-23 08:56:57 +00001126 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001127 In a default build, the function `FT_Library_SetLcdFilter' returns
1128 `FT_Err_Unimplemented_Feature'; you need to #define
1129 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1130 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001131
Werner Lemberg2c002e12006-09-29 21:31:53 +00001132 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001133
Werner Lemberg2c002e12006-09-29 21:31:53 +00001134 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1135 typedef.
1136 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1137 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001138
Werner Lemberg2c002e12006-09-29 21:31:53 +00001139 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1140 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001141
Werner Lemberg2c002e12006-09-29 21:31:53 +00001142 Handle subpixel rendering.
1143 Simplify function.
1144 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1145 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1146
1147 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1148 pointing to <freetype/ftlcdfil.h>.
1149
1150 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1151 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1152
1153 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001154
Werner Lemberge20df4a2006-09-27 06:29:21 +000011552006-09-26 David Bustin
1156
1157 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1158 correctly. Reported as Savannah bug #17843.
1159
David Turner6f8c6222006-09-26 15:42:44 +000011602006-09-26 David Turner <david@freetype.org>
1161
Werner Lemberg110246c2006-09-26 21:55:44 +00001162 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1163 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1164 horizontal and vertical hinting for the purpose of debugging the
1165 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001166
Werner Lemberg110246c2006-09-26 21:55:44 +00001167 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1168 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001169
Werner Lemberg110246c2006-09-26 21:55:44 +00001170 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1171
1172 * include/freetype/config/ftoption.h, devel/ftoption.h
1173 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1174 we want to compile LCD-optimized rendering code (à la ClearType) or
1175 not. The macro *must* be disabled in default builds of the library
1176 for patent reasons.
1177
1178 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1179 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1180 isn't defined at compile time. This only changes the content of the
1181 rendered glyph to match the one of normal gray-level rendering,
1182 hence clients should not need to be modified.
1183
1184 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001185
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011862006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1187
1188 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1189 LWFN fails and both are available.
1190
David Turnerf3050052006-09-11 12:00:32 +000011912006-09-11 David Turner <david@freetype.org>
1192
Werner Lembergf9644552006-09-12 13:48:10 +00001193 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1194 report their English names through an Apple Roman
1195 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001196
Werner Lembergf9644552006-09-12 13:48:10 +00001197 If the font uses another name entry with language_id == English, it
1198 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001199
Werner Lembergf9644552006-09-12 13:48:10 +00001200 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1201 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001202
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012032006-09-05 Werner Lemberg <wl@gnu.org>
1204
1205 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001206 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001207 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1208 `HAN NOM B.ttf').
1209
1210 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1211
David Turner772e55d2006-09-05 09:45:15 +000012122006-09-05 David Turner <david@freetype.org>
1213
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001214 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001215
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001216 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1217 (TRaster): Remove `count_ex' and `count_ey'.
1218 (gray_find_cell): Remove 2nd and 3rd argument.
1219 (gray_alloc_cell): Merged with `gray_find_cell'.
1220 (gray_record_cell): Simplify.
1221 (gray_set_cell): Rewrite.
1222 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1223 (gray_render_span): Don't use FT_MEM_SET for small values.
1224 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1225 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1226 bitmap scanline.
1227 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001228
David Turneraa557a92006-09-04 16:42:44 +000012292006-09-04 David Turner <david@freetype.org>
1230
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001231 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1232 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001233
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012342006-09-03 Werner Lemberg <wl@gnu.org>
1235
1236 * devel/ftoption.h: Synchronize with
1237 include/freetype/config/ftoption.h.
1238
1239 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1240 variable declaration.
1241 (gray_convert_glyph): Fix compiler warnings.
1242
David Turner6d79f212006-09-01 14:09:35 +000012432006-09-01 David Turner <david@freetype.org>
1244
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001245 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1246 to recognize a few fonts that require the automatic unpatented
1247 loader.
David Turnerbd502952006-09-01 19:05:24 +00001248
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001249 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1250 rasterizer. The speed improvement is between 15% and 25%, depending
1251 on the font data.
1252
1253 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1254 (TCell): Redefine.
1255 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1256 (gray_init_cells): Updated.
1257 (gray_find_cell, gray_alloc_cell): New functions.
1258 (gray_record_cell): Rewritten to use `gray_find_cell' and
1259 `gray_alloc_cell'.
1260 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1261 QSORT_THRESHOLD):
1262 Removed.
1263 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1264 gray_dump_cells): Removed.
1265 (gray_sweep): Rewritten.
1266 (gray_convert_glyph): Rewrite code which used one of the sorting
1267 functions.
1268 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001269
Werner Lembergd898aed2006-08-29 09:50:34 +000012702006-08-29 Dr. Werner Fink <werner@suse.de>
1271
1272 * configure: Make it possible to handle configure options which
1273 have strings containing spaces.
1274
12752006-08-27 David Turner <david@freetype.org>
1276
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001277 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1278 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1279 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1280
1281 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1282 src/truetype/truetype.c, src/truetype/ttdriver.c,
1283 src/truetype/ttgload.c, src/truetype/ttgload.h,
1284 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1285 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1286 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1287
1288 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1289 member `force_autohint'.
1290
1291 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1292
1293 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1294 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001295
Jens Claudiusa787f452006-08-27 11:26:18 +000012962006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1297
1298 Fix miscellaneous compiler warnings.
1299
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001300 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1301 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001302
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001303 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1304 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1305 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001306
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001307 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1308 volatileness of argument to ft_longjmp. Spotted by Werner
1309 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001310
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001311 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1312 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001313
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001314 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1315 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001316
Werner Lembergc4c35b72006-08-27 08:03:46 +000013172006-08-27 Werner Lemberg <wl@gnu.org>
1318
1319 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1320 Reported by Jens.
1321
Jens Claudius088e44e2006-08-22 14:24:30 +000013222006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001323
Jens Claudius088e44e2006-08-22 14:24:30 +00001324 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001325 about addresses of volatile objects passed as function arguments as
1326 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001327
Werner Lembergc4c35b72006-08-27 08:03:46 +00001328 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1329 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001330
1331 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1332 argument `table' a pointer to a volatile object.
1333
1334 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1335 argument `table' a pointer to a volatile object.
1336
Jens Claudius2652bd52006-08-18 17:20:37 +000013372006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1338
1339 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1340 variable `_sfnt' as volatile since it must keep its value across
1341 a call to ft_setjmp.
1342 (gxv_validate): Same for local variables `memory' and `valid'.
1343 (classic_kern_validate): Same for local variables `memory',
1344 `ckern', and `valid'.
1345
1346 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1347 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1348 `jstf', and 'valid'.
1349
1350 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1351 local variable `cmap'.
1352
David Turner9fbfc6a2006-08-16 09:11:31 +000013532006-08-16 David Turner <david@freetype.org>
1354
Werner Lemberg12342992006-08-19 11:18:09 +00001355 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1356 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001357
Werner Lemberg12342992006-08-19 11:18:09 +00001358 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1359 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001360
David Turner33f5f242006-08-16 16:50:55 +00001361
Werner Lemberg12342992006-08-19 11:18:09 +00001362 Improvements to native TrueType hinting. This is a first try,
1363 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1364
1365 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1366 `extra_points2'.
1367
1368 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1369 `orus'.
1370
1371 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1372 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1373 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1374 handle `extra_points2'.
1375
1376 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1377 Remove compiler warning.
1378 (cur_to_arg): Remove macro.
1379 (TT_Hint_Glyph): Updated.
1380 (TT_Process_Simple_Glyph): Handle `orus'.
1381
1382 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1383 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1384 (LOC_Ins_IUP): Renamed to...
1385 (IUP_WorkerRec): This.
1386 Add `orus' member.
1387 (Shift): Renamed to...
1388 (_iup_worker_shift): This.
1389 Updated.
1390 (Interp): Renamed to...
1391 (_iup_worker_interpolate): This.
1392 Updated to handle `orus'.
1393 (Ins_IUP): Updated.
1394
1395 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1396 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001397
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013982006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1399
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001400 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001401 build ftvalid in ft2demos. This has been inadvertedly changed
1402 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001403
14042006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1405
Werner Lemberg12342992006-08-19 11:18:09 +00001406 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1407 Jens:
1408 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001409
Werner Lemberg12342992006-08-19 11:18:09 +00001410 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1411 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001412
1413 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1414
Jens Claudius9950adc2006-08-13 12:14:36 +000014152006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1416
Werner Lemberg12342992006-08-19 11:18:09 +00001417 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1418 T1_TOKEN_TYPE_KEY.
1419 (T1_FieldRec): Add `dict'.
1420 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1421 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1422 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001423
Werner Lemberg12342992006-08-19 11:18:09 +00001424 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1425 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001426
1427 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1428
1429 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001430 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1431 not T1_TOKEN_TYPE_ANY.
1432 (ps_parser_load_field): Make sure a token that should be a string or
1433 name is really a string or name.
1434 Avoid memory leak if a keyword has been already encountered and its
1435 value is overwritten.
1436 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1437 T1_FIELD_XXX.
1438 (parse_dict): Ignore keywords that occur in the wrong dictionary
1439 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001440
Werner Lemberg12342992006-08-19 11:18:09 +00001441 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1442 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001443
Werner Lemberg12342992006-08-19 11:18:09 +00001444 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1445 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001446
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014472006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1448
1449 Move creation of field `buildchar' of T1_DecoderRec out of
1450 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1451 of it.
1452
1453 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1454 and `T1_Compute_Max_Advance'.
1455
1456 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1457 Remove field `face', add `len_buildchar'.
1458
1459 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1460 field `buildchar'.
1461
1462 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1463 finisher for T1_Decoder.
1464 (cid_slot_load_glyph): Do not ignore failure when initializing the
1465 T1_Decoder.
1466
1467 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1468 Updated.
1469 (t1_decoder_init): Remove initialization of fields `buildchar' and
1470 `len_buildchar'.
1471 (t1_decoder_done): Remove deallocation of field `buildchar'.
1472
1473 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1474 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1475 T1_Decoder.
1476 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1477 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1478 case of error.
1479
1480 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1481 `buildchar' of T1_FaceRec.
1482
1483 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1484 `buildchar' of T1_FaceRec.
1485
Werner Lemberg1a380e02006-07-14 18:28:08 +000014862006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1487
1488 * freetype2/include/freetype/internal/psaux.h: New macros
1489 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1490 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1491 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1492 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1493 (T1_DecoderRec): New fields `buildchar' and `face'.
1494 (IS_PS_TOKEN): New macro.
1495
1496 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1497 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1498
1499 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1500 `default_design_vector' and `num_default_design_vector'.
1501
1502 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1503 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1504 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1505
1506 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1507 `token' argument to be NULL if we want only to count the number of
1508 tokens.
1509 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1510 want to skip the array.
1511 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1512 want to skip the array.
1513
1514 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1515 support for (partially commented out) othersubrs 19-25, 27, and 28.
1516 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1517 (t1_decoder_done): Release new field `buildchar'.
1518
1519 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1520 functions.
1521 (t1_keywords): Register them.
1522 (t1_allocate_blend): Updated.
1523 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1524 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1525 (parse_dict): Remove `keyword_flags' argument.
1526 Use new macro IS_PS_TOKEN.
1527 Changed function so that later PostScript definitions override
1528 earlier ones.
1529 (t1_init_loader): Initialize new field `keywords_encountered'.
1530 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1531 `len_buildchar'.
1532 Remove `keywords_flags'.
1533
1534 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1535 `keywords_encountered'.
1536 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1537
1538 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1539 New entries for parsing /NDV, /CDV, and /DesignVector.
1540
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015412006-07-07 Werner Lemberg <wl@gnu.org>
1542
1543 Add many checks to protect against malformed PCF files.
1544
1545 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1546 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1547
1548 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1549 data and check that tables don't overlap (using a simple
1550 bubblesort).
1551 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1552 New macros which give the size of data structures in the data
1553 stream.
1554 (pcf_get_properties): Use rough estimates to get array size limits.
1555 Assign `face->nprops' and `face->properties' earlier so that a call
1556 to PCF_Face_Done can do the clean-up in case of error.
1557 Protect against invalid string offsets.
1558 (pcf_get_metrics): Clean up code.
1559 Adjust tracing message levels.
1560 Use rough estimate to get array size limit.
1561 (pcf_get_bitmaps): Clean up code.
1562 Adjust tracing message levels.
1563 Use rough estimates to get offset limits.
1564 (pcf_get_encodings): Adjust tracing message level.
1565 (pcf_get_accel): Clean up code.
1566
Werner Lemberg8eb05252006-06-27 06:20:01 +000015672006-06-26 Werner Lemberg <wl@gnu.org>
1568
1569 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1570 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1571
Werner Lemberg24703f82006-06-26 19:12:51 +000015722006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1573
1574 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1575 (t1_decoder_parse_charstrings): Operator with
1576 opcode 15 pops its two arguments.
1577 Handle the case where the pops of an othersubr may be part of a
1578 subroutine.
1579 Handle unknown othersubrs gracefully: count their operands and let
1580 the following pop operators push the operands as the results onto
1581 the Type1 stack.
1582 Improve handling of setcurrentpoint opcode.
1583
Werner Lembergc011f4c2006-06-26 09:40:00 +000015842006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1585
1586 The Type 1 parser now skips over top-level procedures as required
1587 for a `Simplified Parser'. This makes the parser more robust as it
1588 doesn't poke around in PostScript code. Additionally, it makes the
1589 FontDirectory hackery in src/type1/t1load.c unnecessary.
1590
1591 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1592 (skip_literal_string): Add FT_Error as return value.
1593 Handle escapes better.
1594 (skip_string): Add FT_Error as return value.
1595 Don't set `parser->error' but return error code directly.
1596 (skip_procedure): New function.
1597 (ps_parser_skip_PS_token): Handle procedures.
1598 Update code.
1599 (ps_parser_to_token): Update code.
1600 (ps_parser_load_field_table): Handle bbox entries also.
1601
1602 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1603 Add commented-out code for synthetic fonts.
1604
Werner Lemberga2da05c2006-06-25 06:27:27 +000016052006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1606
1607 Fix two hinting bugs as reported in
1608 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1609
1610 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1611 `first_point' member.
1612
1613 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1614 `first_point'.
1615 (TT_Process_Composite_Glyph): Always untouch points.
1616
1617 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1618 `first_point' and `last_point' in case of composite glyphs.
1619 (Ins_IUP): Fix computation of `end_point'.
1620
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016212006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1622
Werner Lembergef3d2c22006-06-25 06:07:14 +00001623 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1624 Mac. The original patch was written by David Sachitano and Lawrence
1625 Coopet, and modified by Sean McBride for MPW compatibility. Only
1626 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001627
Werner Lembergef3d2c22006-06-25 06:07:14 +00001628 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1629 Mac OS X platforms.
1630 (OS_INLINE): Undefine before definition.
1631 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1632 FontAssociation table in FOND resource.
1633 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1634 and fontSize at each entry of FontAssociation table in FOND
1635 resource.
1636 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1637 ffStylOff of FamilyRecord header of FOND resource, the header,
1638 fontSize, fontID at each entry of FontAssociation table, and
1639 StyleMapping table.
1640 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001641
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016422006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1643
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001644 Public API of TrueTypeGX, OpenType, and classic kern table validator
1645 should return `FT_Err_Unimplemented_Feature' if validation service
1646 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001647 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001648 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1649
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001650 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1651 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1652 unavailable.
1653 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1654 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001655
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001656 * src/base/ftotval.c (FT_OpenType_Validate): Return
1657 FT_Err_Unimplemented_Feature if OpenType validation service is
1658 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001659
Werner Lembergb10e45a2006-06-08 07:32:56 +000016602006-06-08 Werner Lemberg <wl@gnu.org>
1661
1662 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1663 errors.
1664
David Turner5f1f7502006-06-07 05:11:50 +000016652006-06-07 David Turner <david@freetype.org>
1666
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001667 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1668 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1669 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001670
David Turner457b4a82006-06-06 08:14:14 +000016712006-06-06 David Turner <david@freetype.org>
1672
Werner Lemberg4836f952006-06-06 12:54:08 +00001673 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001674
Werner Lemberg4836f952006-06-06 12:54:08 +00001675 We change `ps_unicodes_init' so that it also takes a
1676 `free_glyph_name' callback to release the glyph names returned by
1677 `get_glyph_name'
1678
1679 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1680 Renamed to ...
1681 (PS_GetGlyphNameFunc): This.
1682 (PS_FreeGlyphNameFunc): New typedef.
1683 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1684
1685 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1686 argument.
1687 (cff_sid_free_glyph_name): New function.
1688 (cff_cmap_unicode_init): Updated.
1689
1690 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1691
1692 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1693 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001694
1695
David Turner09717352006-06-04 14:33:08 +000016962006-06-04 David Turner <david@freetype.org>
1697
Werner Lembergd724f202006-06-04 15:17:41 +00001698 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1699 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001700 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001701
Werner Lembergd724f202006-06-04 15:17:41 +00001702 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1703 of `face->num_glyphs' which missed the last glyph, due to
1704 the offset-by-1 computation, since the PFR format doesn't
1705 guarantee that glyph index 0 corresponds to the `missing
1706 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001707
Werner Lemberg33779662006-05-26 06:30:05 +000017082006-05-25 Werner Lemberg <wl@gnu.org>
1709
1710 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1711 `-no-undefined'. Reported by Christian Biesinger.
1712
Werner Lemberg24773d62006-05-20 08:53:13 +000017132006-05-19 Brian Weed <bw@imaginengine.com>
1714
1715 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1716 have debug information, and debug libraries use `C7 compatible'
1717 debug info.
1718
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017192006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1720
Werner Lemberga6523a62006-05-20 08:47:01 +00001721 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001722 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001723
Werner Lemberga6523a62006-05-20 08:47:01 +00001724 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1725 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001726
1727 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001728 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001729
17302006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1731
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001732 * build/unix/configure.raw: Add a fallback to disable Carbon
1733 dependency, if configured with no options on Mac OS X.
1734
17352006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1736
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001737 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001738 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001739 the second part of Savannah bug #16590.
1740
Werner Lemberg545c4e52006-05-17 22:55:04 +000017412006-05-18 Werner Lemberg <wl@gnu.org>
1742
1743 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1744 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1745
David Turnerdc3ff312006-05-17 12:59:35 +000017462006-05-17 David Turner <david@freetype.org>
1747
Werner Lemberg545c4e52006-05-17 22:55:04 +00001748 This is a major patch used to drastically improve the performance of
1749 loading glyphs. This both speeds up loading the glyph vectors
1750 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001751
Werner Lemberg545c4e52006-05-17 22:55:04 +00001752 We now use inline assembler code with GCC to implement `FT_MulFix',
1753 which is probably the most important function related to the
1754 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001755
Werner Lemberg545c4e52006-05-17 22:55:04 +00001756 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001757
1758
Werner Lemberg545c4e52006-05-17 22:55:04 +00001759 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1760 `cursor' and `limit'.
1761
1762 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1763 New functions.
1764 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1765 [TEST]: Remove.
1766
1767 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1768 code.
1769
1770 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1771 `FT_ZERO'
1772 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1773 (af_glyph_hints_reload: Rewrite recognition of weak points.
1774
1775 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1776 constant values out of the loops.
1777
1778 * src/autofit/aftypes.h: Updated.
1779
1780 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1781
1782 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1783 product to get orientation.
1784
1785 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1786 (FT_Stream_OpenGzip): Use it to handle small files directly in
1787 memory.
1788
1789 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1790 Improve performance.
1791
1792 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1793 `limit'.
1794
1795 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1796 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1797 exceedingly large values of number of contours. Speed up by
1798 reducing the number of loops.
1799
1800 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1801
1802
1803 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1804 used to detect rogue clients from 4 to 16. This is to prevent some
1805 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1806 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001807
Werner Lembergde2d90a2006-05-17 08:54:30 +000018082007-05-17 Werner Lemberg <wl@gnu.org>
1809
1810 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001811 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001812
18132006-05-16 Werner Lemberg <wl@gnu.org>
1814
1815 * docs/PROBLEMS: Updated icl issues.
1816
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001817----------------------------------------------------------------------------
1818
Werner Lemberg42b63b22007-01-21 21:01:33 +00001819Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001820David Turner, Robert Wilhelm, and Werner Lemberg.
1821
1822This file is part of the FreeType project, and may only be used, modified,
1823and distributed under the terms of the FreeType project license,
1824LICENSE.TXT. By continuing to use, modify, or distribute this file you
1825indicate that you have read the license and understand and accept it
1826fully.
1827
1828
1829Local Variables:
1830version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001831coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001832End: