blob: dfdd584fb01b147b11cccb46fc4f67a888258882 [file] [log] [blame]
David Turner7338ec22007-04-03 14:30:34 +000012007-04-03 David Turner <david@freetype.org>
2
3 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
4 if one of the resolution is 0, treat it as if it was the same than
5 the other value.
6
David Turnere6472c12007-04-02 13:13:54 +000072007-04-02 David Turner <david@freetype.org>
8
Werner Lemberg94f12272007-04-03 07:19:53 +00009 Add special code to detect `extra-light' fonts and do not snap their
10 stem widths too much to avoid bizarre hinting effects.
11
12 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
13 `extra_light' members.
14
15 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
16 them.
17 (af_latin_metrics_scale_dim): Set `extra_light'.
18 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000019
David Turner3f539692007-03-28 14:53:40 +0000202007-03-28 David Turner <david@freetype.org>
21
Werner Lemberg644b1ad2007-03-28 21:17:11 +000022 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000023 padding.
24
Werner Lemberga08b2172007-03-28 07:17:17 +0000252007-03-28 Werner Lemberg <wl@gnu.org>
26
27 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
28 gracefully.
29 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
30 issue an error for longer names.
31 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
32 number of code points in Unicode.
33
Werner Lemberg644b1ad2007-03-28 21:17:11 +000034 * builds/win32/visualc/index.html,
35 builds/win32/visualc/freetype.dsp,
36 builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
37 s/232/233/.
38
39 * docs/CHANGES: Mention ftdiff.
40
David Turner3b242d32007-03-26 12:03:04 +0000412007-03-26 David Turner <david@freetype.org>
42
Werner Lemberg644b1ad2007-03-28 21:17:11 +000043 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
44 corresponding code.
45 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000046
Werner Lemberga08b2172007-03-28 07:17:17 +000047 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000048 computations in order to ignore single-point contours. These are
49 never rasterized and correspond in certain fonts to mark-attach
50 points that are very far from the glyph's real outline, ruining the
51 computation.
David Turnerf58caa02007-03-26 12:39:25 +000052
Werner Lemberga08b2172007-03-28 07:17:17 +000053 * src/autofit/afloader.c (af_loader_load_g): In the case of
54 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
55 Otherwise code that uses them will most certainly ruin the fixed
56 advance property.
David Turner23553d62007-03-26 13:37:17 +000057
Werner Lemberg644b1ad2007-03-28 21:17:11 +000058 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
59 documentation and bump version number to 2.3.3.
60
61 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
62
63 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +000064
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000652007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
66
Werner Lemberg644b1ad2007-03-28 21:17:11 +000067 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
68 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000069 * builds/vms/ftconfig.h: Ditto.
70 * include/freetype/config/ftconfig.h: Ditto.
71
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000722007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
73
Werner Lemberg14ffe092007-03-22 06:12:43 +000074 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
75 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000076 proposed by Sean McBride:
77 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
78
792007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
80
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000081 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
82 setjmp, proposed by Sean McBride:
83 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
84
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000852007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
86
Werner Lembergc9f6c662007-03-21 13:30:14 +000087 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
88 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
89 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000090
David Turner74c34eb2007-03-18 07:19:31 +0000912007-03-18 David Turner <david@freetype.org>
92
Werner Lembergc9f6c662007-03-21 13:30:14 +000093 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
94 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000095
Werner Lembergc9f6c662007-03-21 13:30:14 +000096 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000097
David Turner89020d92007-03-17 17:48:57 +0000982007-03-17 David Turner <david@freetype.org>
99
Werner Lembergc9f6c662007-03-21 13:30:14 +0000100 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
101 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000102
Werner Lemberg25d592a2007-03-09 07:59:35 +00001032007-03-09 Werner Lemberg <wl@gnu.org>
104
105 * Version 2.3.2 released.
106 =========================
107
108
109 Tag sources with `VER-2-3-2'.
110
111 * builds/win32/visualc/index.html,
112 builds/win32/visualc/freetype.dsp,
113 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
114 s/231/232/.
115
David Turner3a51afa2007-03-08 10:50:38 +00001162007-03-08 David Turner <david@freetype.org>
117
Werner Lemberg25d592a2007-03-09 07:59:35 +0000118 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000119
Werner Lemberg25d592a2007-03-09 07:59:35 +0000120 * builds/unix/configure.raw (version_info): Set to 9:13:3.
121
122 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
123
124 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000125
Werner Lemberg1e259de2007-03-08 15:39:21 +0000126 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
127 function to work properly, over-writing user-provided buffers in
128 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000129
David Turner121cad52007-03-08 16:43:50 +0000130
Werner Lemberg3d92f082007-03-06 11:59:24 +00001312007-03-05 Werner Lemberg <wl@gnu.org>
132
133 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
134 macro for `strstr'.
135
136 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
137 `trick_names', as suggested by Ivan Nincic.
138
David Turner085bc6e2007-03-05 17:40:03 +00001392007-03-05 David Turner <david@freetype.org>
140
Werner Lembergd112cf02007-03-06 12:06:56 +0000141 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
142 case FT_Init_FreeType fails for some reason. Problem reported by
143 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000144
Werner Lembergd112cf02007-03-06 12:06:56 +0000145 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
146 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
147 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
148 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000149
Werner Lembergd112cf02007-03-06 12:06:56 +0000150 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
151 signed values, not unsigned ones. Problem reported by Johannes
152 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000153
David Turner601aefe2007-02-21 16:47:49 +00001542007-02-21 David Turner <david@freetype.org>
155
Werner Lembergde5e6862007-02-25 21:06:43 +0000156 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
157 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000158
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001592007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
160
161 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
162 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
163 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
164
Werner Lemberga0915172007-02-16 08:12:50 +00001652007-02-16 Werner Lemberg <wl@gnu.org>
166
167 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
168 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
169
David Turner2c4500e2007-02-14 15:08:47 +00001702007-02-14 David Turner <david@freetype.org>
171
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000172 It seems that the following changes fix most of the known
173 interpreter problems with my fonts, but more testing is needed,
174 though.
175
176 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
177 (TT_MulFix14): Rewrite.
178 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
179 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000180
Werner Lembergc6a14082007-02-12 22:08:15 +00001812007-02-12 Werner Lemberg <wl@gnu.org>
182
183 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
184 warnings.
185
186 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
187 (bdf_interpret_style): Ditto.
188
David Turnerc0f9c4a2007-02-12 14:55:03 +00001892007-02-12 David Turner <david@freetype.org>
190
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000191 Simplify projection and dual-projection code interface.
192
Werner Lemberg406d25f2007-02-12 22:01:18 +0000193 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
194 FT_Vector' as argument type.
195 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
196 Updated.
197 (CUR_fast_project, CUR_fast_dualproj): New macros.
198 (Project, Dual_Project, Project_x, Project_y): Updated.
199 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
200 macros.
201
202
203 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
204 adjustments for the non-light auto-hinted modes. Gets rid of
205 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000206
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000207 * src/autofit/aflatin.c (af_latin_hints_link_segments,
208 af_latin_hints_compute_edges): Slight optimization of the segment
209 linker and better handling of serif segments to get rid of broken
210 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000211
David Turnerc0f9c4a2007-02-12 14:55:03 +0000212
Werner Lemberg442bfb82007-02-12 21:44:10 +0000213 Introduce new string functions and the corresponding macros to get
214 rid of various uses of strcpy and other `evil' functions, as well as
215 to simplify a few things.
216
217 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
218 ft_mem_strcpyn): New declarations.
219 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
220 macros.
221 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
222 functions.
223
224 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
225 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
226 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
227 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
228 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
229 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
230 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
231 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000232
Werner Lemberg406d25f2007-02-12 22:01:18 +0000233 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
234
Werner Lemberg582067d2007-02-11 15:03:05 +00002352007-02-11 Werner Lemberg <wl@gnu.org>
236
237 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
238 non-spacing glyphs.
239
Werner Lemberg8f474532007-02-07 08:31:01 +00002402007-02-07 Tom Parker <palfrey@tevp.net>
241
242 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
243 pointer.
244
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
246
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000247 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
248 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000249 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000250 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
251 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
252 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
253 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000254
255 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
256 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000257 * builds/mac/ftmac.c: Ditto.
258
2592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
260
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000261 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000262 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000263 #include <ftmac.c>.
264
2652007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
266
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000267 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
268 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
269 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
270 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
271 FT_GetFilePath_From_Mac_ATS_Name.
272 * builds/mac/ftmac.c: Ditto.
273
2742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
275
Werner Lembergdcbb7082007-02-08 08:54:09 +0000276 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000277 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
278 for passing to FT_New_Face_From_FSSpec.
279
2802007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
281
Werner Lembergdcbb7082007-02-08 08:54:09 +0000282 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000283 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000284
285 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
286 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000287 * builds/mac/ftmac.c (OS_INLINE): Ditto.
288
Werner Lemberg313d7772007-02-01 08:10:45 +00002892007-02-01 Werner Lemberg <wl@gnu.org>
290
291 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
292 Explain why applications shouldn't use it. Found by Alexei.
293
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002942007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000295
296 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
297 message.
298
299 * src/gxvalid/gxvmort1.c
300 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
301 message.
302
Werner Lemberg53935932007-01-31 08:53:02 +00003032007-01-31 Werner Lemberg <wl@gnu.org>
304
305
306 * Version 2.3.1 released.
307 =========================
308
309
310 Tag sources with `VER-2-3-1-FINAL'.
311
312 * builds/win32/visualc/freetype.dsp,
313 builds/win32/visualc/freetype.vcproj: s/230/231/.
314 * builds/win32/visualc/index.html: s/221/231/.
315
316 * vms_make.com: Add `ftgasp'.
317
David Turnera7ee6082007-01-30 10:33:53 +00003182007-01-30 David Turner <david@freetype.org>
319
Werner Lemberg53935932007-01-31 08:53:02 +0000320 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000321
Werner Lemberg53935932007-01-31 08:53:02 +0000322 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000323
Werner Lemberg25d592a2007-03-09 07:59:35 +0000324 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000325 s/2.3.0/2.3.1/.
326
327 * builds/unix/configure.raw (version_info): Set to 9:12:3.
328
329
330 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
331 (af_loader_load_g): Disable the warper (i.e., the light hinting
332 improvements) to make a 2.3.1 bugfix release before introducing a
333 new feature. This should give us more time to tune and improve the
334 warper for the next release.
335
336 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000337
David Turnerd91eebd2007-01-26 15:05:41 +00003382007-01-25 David Turner <david@freetype.org>
339
Werner Lembergbf241762007-01-26 16:08:49 +0000340 For light auto-hinting, improve glyph advance widths and resurrect
341 normal/full hinting to its normal quality.
342
343 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
344 and `xmax_delta'.
345 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
346 and `xmax_delta'.
347
348 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
349 preprocessor conditional with if-clause, handling both light and
350 normal mode.
351
352 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
353 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000354
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003552007-01-25 Werner Lemberg <wl@gnu.org>
356
357 * docs/release: Updated -- Savannah uses a new uploading scheme.
358
David Turnera42567b2007-01-25 12:23:37 +00003592007-01-25 David Turner <david@freetype.org>
360
Werner Lembergd7855662007-01-25 13:53:56 +0000361 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000362
Werner Lembergd7855662007-01-25 13:53:56 +0000363 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
364 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
365 functions.
David Turnera42567b2007-01-25 12:23:37 +0000366
Werner Lembergd7855662007-01-25 13:53:56 +0000367 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000368
Werner Lembergb1be9e82007-01-25 11:50:00 +00003692007-01-25 Werner Lemberg <wl@gnu.org>
370
371 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000372 correctly in a sanity check. Since this function is only used to
373 load local and global functions, any charstring that called the last
374 local/global function would fail otherwise. This fixes Savannah bug
375 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000376
377 * docs/CHANGES: Document it.
378
David Turnerb6de8d12007-01-23 15:51:50 +00003792007-01-23 David Turner <david@freetype.org>
380
Werner Lembergb1be9e82007-01-25 11:50:00 +0000381 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
382 prevented compilation when disabling both the unpatented and the
383 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000384
Werner Lembergb1be9e82007-01-25 11:50:00 +0000385
386 Fix and enable the warper to improve `light' hinting mode. This is
387 not necessarily a final version, but it seems to work well.
388
389 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
390 Disable code.
391 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
392 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
393
394 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
395 (af_warper_compute_line_best): Fix array size of `scores'.
396 (af_warper_compute): Better handling of border cases.
397 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
398 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000399
Werner Lemberg011d1112007-01-21 09:36:00 +00004002007-01-21 Werner Lemberg <wl@gnu.org>
401
Werner Lemberg42b63b22007-01-21 21:01:33 +0000402 * ChangeLog: Split off older entries into...
403 * ChangeLog.22: This new file.
404
4052007-01-21 Werner Lemberg <wl@gnu.org>
406
Werner Lemberg555258f2007-01-21 09:46:37 +0000407 * docs/CHANGES: Document SHZ fix.
408
4092007-01-21 George Williams <gww@silcom.com>
410
411 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
412 points.
413
4142007-01-21 Werner Lemberg <wl@gnu.org>
415
Werner Lemberg011d1112007-01-21 09:36:00 +0000416 * src/sfnt/ttmtx.c (tt_face_get_metrics)
417 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
418
Werner Lemberg87a5a432007-01-17 12:44:39 +00004192007-01-17 Werner Lemberg <wl@gnu.org>
420
Werner Lembergb8003292007-01-17 12:56:25 +0000421
422 * Version 2.3.0 released.
423 =========================
424
425
426 Tag sources with `VER-2-3-0-FINAL'.
427
4282007-01-17 Werner Lemberg <wl@gnu.org>
429
Werner Lemberg87a5a432007-01-17 12:44:39 +0000430 * docs/release: Updated.
431
David Turner22122722007-01-16 20:06:44 +00004322007-01-16 David Turner <david@freetype.org>
433
Werner Lemberg87a5a432007-01-17 12:44:39 +0000434 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
435 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
436 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
437 warnings.
David Turner22122722007-01-16 20:06:44 +0000438
Werner Lemberg267e1d72007-01-15 07:48:09 +00004392007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
440
441 * builds/amiga/makefile, builds/amiga/makefile.os4,
442 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
443
444 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
445
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004462007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
447
448 Fix various compiler warnings.
449
450 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
451 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
452 s/index/strike_index/.
453 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
454
455 * src/gxvalid/gxvmorx5.c
456 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
457
458 * src/truetype/ttinterp.c (Compute_Point_Displacement),
459 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
460 uninitialized variables.
461
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004622007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
463
464 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
465
Werner Lemberg281c1482007-01-13 22:50:51 +00004662007-01-13 Werner Lemberg <wl@gnu.org>
467
468 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
469 versions up to 0x3FF without complaining.
470
Werner Lembergac250b22007-01-13 14:01:36 +00004712007-01-13 Derek Clegg <dclegg@apple.com>
472
473 Add FT_Get_PS_Font_Info interface to CFF driver.
474
475 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
476 (CFF_FontRec): Add `font_info' field.
477
478 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
479 (cff_font_done): Free font->font_info if necessary.
480
481 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
482 (cff_service_ps_info): Register cff_ps_get_font_info.
483
Werner Lemberg23df31a2007-01-13 08:45:00 +00004842007-01-13 Werner Lemberg <wl@gnu.org>
485
486 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
487 with C++ compiler.
488
489 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
490 af_glyph_hints_dump_edges): Ditto.
491
492 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
493 `modules.cfg').
494
495 * src/sfnt/ttsbit0.h: Remove.
496
497 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
498
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004992007-01-12 David Turner <david@freetype.org>
500
501 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
502 bug in the bitmap emboldener if the pitch of the source bitmap is
503 much larger than its width.
504
505 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
506 compilation warning.
507
Werner Lemberg6d96d312007-01-12 10:30:19 +00005082007-01-12 Werner Lemberg <wl@gnu.org>
509
510 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
511 `automake' CVS module from sources.redhat.com.
512
Werner Lemberg17432b52007-01-12 09:28:44 +00005132007-01-11 Werner Lemberg <wl@gnu.org>
514
515 * src/type1/t1load.c (is_space): Removed.
516 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
517 (parse_charstrings): Use IS_PS_TOKEN.
518
519
520 * autogen.sh: Avoid bash specific syntax.
521
David Turner038ace22007-01-11 15:00:59 +00005222007-01-11 David Turner <david@freetype.org>
523
Werner Lemberg17432b52007-01-12 09:28:44 +0000524 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000525
Werner Lemberg17432b52007-01-12 09:28:44 +0000526 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000527
Werner Lemberg17432b52007-01-12 09:28:44 +0000528 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
529 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000530 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000531
Werner Lemberg17432b52007-01-12 09:28:44 +0000532 * autogen.sh: Small fix to get it working on Mac OS X properly:
533 The issue is that GNU libtool is called `glibtool' on this platform,
534 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000535
David Turner2628ea92007-01-10 13:15:56 +00005362007-01-10 David Turner <david@freetype.org>
537
Werner Lemberg17432b52007-01-12 09:28:44 +0000538 * all-sources: Tag all sources with VER-2-3-0-RC1 and
539 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000540
Werner Lemberg17432b52007-01-12 09:28:44 +0000541 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
542 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
543 version number to 2.3.0.
544
545 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
546 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000547
548 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000549 include/freetype/ftlcdfil.h: Update reference documentation with
550 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000551
Werner Lemberg17432b52007-01-12 09:28:44 +0000552 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
553 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000554
Werner Lembergbf02d392007-01-10 07:07:37 +00005552007-01-10 Derek Clegg <dclegg@apple.com>
556
557 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
558 values.
559
David Turnerf48b60e2007-01-08 15:15:32 +00005602007-01-08 David Turner <david@freetype.org>
561
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000562 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000563
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000564 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
565 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000566 corresponding to a given character pixel size.
567
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000568 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
569 `gasp' table, in order to avoid potential problems with later
570 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000571
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000572 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
573 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000574
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000575 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
576 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
577 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
578 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000579
Werner Lemberge6b6f372007-01-07 00:06:47 +00005802007-01-07 Werner Lemberg <wl@gnu.org>
581
Werner Lembergb8004d22007-01-07 09:13:38 +0000582 * src/cid/cidparse.c (cid_parser_new): Improve error message for
583 Type 11 fonts.
584 Scan for `/sfnts' token.
585
5862007-01-07 Werner Lemberg <wl@gnu.org>
587
588 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000589
Werner Lembergbe5f7972007-01-06 07:51:48 +00005902007-01-06 Werner Lemberg <wl@gnu.org>
591
592 * src/cff/cffload.c (cff_index_init): Remove unused variable.
593 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
594
David Turnera8cf42b2007-01-04 16:46:46 +00005952007-01-04 David Turner <david@freetype.org>
596
Werner Lembergf6294392007-01-06 07:47:45 +0000597 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
598 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000599
Werner Lembergf6294392007-01-06 07:47:45 +0000600
601 Do not allocate interpreter-specific tables in memory if we are not
602 going to load glyphs with the bytecode interpreter anyway.
603
604 * src/truetype/ttgload.c (tt_loader_init): Load execution context
605 only if glyph is hinted.
606 Updated.
607 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
608 and `cvs_ready'.
609 Add `tt_size_ready_bytecode' declaration.
610 * src/truetype/ttobjs.c (tt_size_done_bytecode,
611 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
612 (tt_size_init): Move most code into `tt_size_init_bytecode'.
613 (tt_size_done): Move most code into `tt_size_done_bytecode'.
614 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000615
David Turner91a34022007-01-05 14:47:08 +0000616
Werner Lembergf6294392007-01-06 07:47:45 +0000617 Don't extract the metrics table from the SFNT font file. Instead,
618 reparse it on each glyph load. The runtime difference is not
619 noticeable, and it can save a lot of heap memory when memory-mapped
620 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000621
Werner Lembergf6294392007-01-06 07:47:45 +0000622 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
623 `horz_metrics_offset' and `vert_metrics_ofset'.
624 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
625 Updated.
626
627
628 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
629
630
631 Do not load the CFF index offsets into memory, since this wastes a
632 *lot* of heap memory with large Asian CFF fonts. There is no
633 significant performance loss.
634
635 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
636 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
637 `data_size'.
638 (CFF_CharsetRec): Add field `num_glyphs'.
639
640 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
641 cff_charset_cid_to_gindex): New functions.
642 (cff_new_index): Renamed to...
643 (cff_index_init): This. Update all callers.
644 Updated -- some code has been moved to `cff_index_load_offsets'.
645 (cff_done_index): Renamed to...
646 (cff_index_done): This. Update all callers.
647 (cff_index_get_pointers, cff_index_access_element): Updated to use
648 stream offsets.
649 (cff_charset_compute_cids): Set `num_glyphs' field.
650 (cff_encoding_load): Updated.
651
652 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000653
6542007-01-04 David Turner <david@freetype.org>
655
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000656 * docs/INSTALL.UNIX: Simplify some parts, add reference to
657 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000658
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000659 * README.CVS: Add common problem description and solution
660 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000661
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000662 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000663
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000664 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000665
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000666 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000667
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000668 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
669 (TWorker): This.
670 Remove `count_table' and `memory'.
671 Make `grays' a pointer.
672 (TRaster): New structure.
673 (count_table): New static array.
674 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
675 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
676 ft_black_set_mode, ft_black_render): Updated.
677 (ft_black_init): Don't initialize `count_table'.
678 (ft_black_reset): Use the render pool. This saves about 6KB of
679 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000680
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000681 * src/smooth/ftgrays.c (TRaster): Replaced with...
682 (TWorker): This.
683 Remove `memory'.
684 (TRaster): New structure.
685
686 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
687 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
688 gray_render_span, gray_raster_render): Updated.
689 (gray_raster_reset): Use the render pool. This saves about 6KB of
690 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000691
David Turner8a6c44e2007-01-04 17:03:11 +0000692 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
693 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000694 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
695 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
696 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000697
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000698 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
699 Remove a typo that results in no hinting and a memory leak with some
700 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000701
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000702 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000703 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000704 CFF_Faces in it. We need to close all faces before destroying the
705 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000706
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007072007-01-02 Werner Lemberg <wl@gnu.org>
708
709 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
710 Remove compiler warning.
711
David Turner9207e002007-01-02 16:58:13 +00007122007-01-02 David Turner <david@freetype.org>
713
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000714 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000715
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007162006-12-31 Masatake YAMATO <jet@gyve.org>
717
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000718 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
719 function.
720 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000721 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000722 `gxv_kern_subtable_fmt0_pairs_validate'.
723
David Turner115b4422006-12-22 11:37:05 +00007242006-12-22 David Turner <david@freetype.org>
725
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000726 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
727 warnings.
David Turner115b4422006-12-22 11:37:05 +0000728
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000729 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
730 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000731
Werner Lemberg4755bf72006-12-16 08:58:44 +00007322006-12-16 Anders Kaseorg <anders@kaseorg.com>
733
734 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
735 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
736
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
738
Werner Lemberg9b774e22007-01-16 06:11:27 +0000739 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000740 sync with the modification by Jens Claudius on 2006-08-22; cf.
741 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 +0000742
7432006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
744
745 * src/base/ftmac.c: Specialized for Mac OS X only.
746 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
747 * builds/unix/configure.raw: Ditto. When explicit switches for
748 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
749 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
750
7512006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
752
753 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
754 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
755 instead of src/base/ftmac.c
756 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
757 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
758 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
759 that cannot be built at present.
760
7612006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
762
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000763 * src/base/ftobjs.c: Improvement of resource fork handler for
764 POSIX, cf.
765 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000766 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
767 format or .dfont, to simulate the face index number counted by ftmac.c.
768 (IsMacResource): Return the number of scalable faces correctly.
769
Werner Lembergec5b4502006-12-10 07:51:38 +00007702006-12-10 Werner Lemberg <wl@gnu.org>
771
772 * builds/toplevel.mk (version): Protect against `distclean' target.
773
Werner Lembergb26b3142006-12-09 20:01:43 +00007742006-12-09 Werner Lemberg <wl@gnu.org>
775
776 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
777 or `type'.
778
779 * builds/freetype.mk (version): Extracted from freetype.h, using
780 GNU make's built-in string functions.
781 (refdoc): Use $(version) instead of static version number.
782
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007832006-12-08 Werner Lemberg <wl@gnu.org>
784
785 * builds/toplevel.mk (dist): Extract version number from freetype.h.
786
Werner Lemberg15c29502006-12-09 07:29:54 +00007872006-12-08 Vladimir Volovich <vvv@vsu.ru>
788
789 * src/tools/apinames (State): Remove final comma in structure -- xlc
790 v5 under AIX 4.3 doesn't like this.
791
David Turnerdbf3b432006-12-07 21:18:09 +00007922006-12-07 David Turner <david@freetype.org>
793
Werner Lemberg256a3512006-12-08 06:49:33 +0000794 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
795 to the spacing of auto-fitted glyphs. This only impacts rare
796 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000797
Werner Lemberg11171312006-12-03 09:43:40 +00007982006-12-03 Werner Lemberg <wl@gnu.org>
799
800 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
801
Werner Lemberg960ba592006-12-01 08:20:47 +00008022006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000803
Werner Lemberg960ba592006-12-01 08:20:47 +0000804 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
805 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
806 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000807
David Turner80658e52006-11-28 08:09:20 +0000808
Werner Lemberg960ba592006-12-01 08:20:47 +0000809 * include/freetype/ftxf86.h: Fix and extend comment so that it
810 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000811
Werner Lemberg960ba592006-12-01 08:20:47 +0000812 * include/freetype/ftchapters.h: Add `font_format' section.
813
814
815 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
816 to TOC in index page.
817
8182006-11-28 David Turner <david@freetype.org>
819
820 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
821 trying to render into a zero-width/height bitmap, not an error code.
822
823 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
824
825 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
826 ones instead.
827
828 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
829 variable.
David Turner80658e52006-11-28 08:09:20 +0000830
Werner Lemberg8636c292006-11-26 22:28:13 +00008312006-11-26 Pierre Hanser <hanser@club-internet.fr>
832
833 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
834
Werner Lemberg960ba592006-12-01 08:20:47 +00008352006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000836
Werner Lemberg960ba592006-12-01 08:20:47 +0000837 * src/autofit/afhints.c (af_glyph_hints_dump_points,
838 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
839 Add stubs to link the `ftgrid' test program when debugging is
840 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000841
Werner Lemberg960ba592006-12-01 08:20:47 +00008422006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000843
844 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000845 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
846
847 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
848 Emit more sensible information.
849
850 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
851
852 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
853 rounding of blue values.
854 (af_latin_hints_compute_segments): Hint segment heights.
855 (af_latin_hints_link_segments): Reduce `len_score' value.
856 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
857 value and use `height' member for comparisons.
858 (af_latin_hint_edges): Extend logging message.
859 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000860
Werner Lemberg91959bf2006-11-22 10:36:55 +00008612006-11-22 Werner Lemberg <wl@gnu.org>
862
863 Fix Savannah bug #15553.
864
865 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
866 program after a change from mono to grayscaling (and vice versa).
867 Use correct constant for comparison to get `exec->grayscale'.
868
Werner Lemberg913a3652006-11-19 09:19:17 +00008692006-11-18 Werner Lemberg <wl@gnu.org>
870
871 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000872 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000873 This patch fixes Savannah bug #18301.
874
875 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
876 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
877 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
878 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
879 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
880 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
881 (FNT_Load_Glyph): Check validity of `glyph_index'.
882
David Turner7bab6ae2006-11-13 11:25:06 +00008832006-11-13 David Turner <david@freetype.org>
884
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000885 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
886 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000887
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000888 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
889 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
890 when building the library to change the default LCD filter to be
891 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000892
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000893 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000894
David Turner8765c712006-11-10 16:49:42 +00008952006-11-10 David Turner <david@freetype.org>
896
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000897 * src/smooth/ftsmooth.c: API change for the LCD
898 filter. The FT_LcdFilter value is an enumeration describing which
899 filter to apply, with new values FT_LCD_FILTER_LIGHT and
900 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
901 algorithm which produces strong color fringes for everything
902 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000903
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000904 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
905 second parameter to an enum type.
906
907 * src/base/ftlcdfil.c (USE_LEGACY): Define.
908 (_ft_lcd_filter): Rename to...
909 (_ft_lcd_filter_fir): This.
910 Update parameters.
911 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
912 (FT_Library_Set_LcdFilter): Update parameters.
913 Handle new filter modes.
914
915 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
916 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
917 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
918 callback and update other fields.
919
920 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
921 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
922 Other minor improvements.
923
924 * src/autofit/aflatin.c: Various tiny improvements that drastically
925 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
926 (af_latin_hints_compute_edges): Fix typo.
927 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000928
David Turner4e9cc3c2006-11-09 16:31:52 +00009292006-11-09 David Turner <david@freetype.org>
930
Werner Lemberg49c77a82006-11-09 21:51:57 +0000931 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
932 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000933
Werner Lemberg5e430892006-11-07 09:35:03 +00009342006-11-07 Zhe Su <james.su@gmail.com>
935
936 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
937 also.
938
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009392006-11-03 Werner Lemberg <wl@gnu.org>
940
941 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
942
David Turner40604742006-11-02 16:37:35 +00009432006-11-02 David Turner <david@freetype.org>
944
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000945 Add a few tweaks to better handle serif fonts.
946 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000947
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000948 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
949 segments that are less than 1.5 pixels high. This gets rid of
950 *many* corner cases with serifs.
951 (af_latin_align_linked_edge): Add logging message.
952 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
953 Add logging messages.
954 Handle AF_EDGE_FLAG flag specially.
955
956 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
957 _af_debug_disable_blue_hints, and _af_debug_hints variables.
958
959 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
960 Update external declarations.
961 (af_corner_orientation, af_corner_is_flat): Replaced by...
962
963 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
964 ft_corner_is_flat): These declarations.
965
966 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
967 Comment out. Replaced by...
968
969 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
970 These functions. Update all callers.
971 (FT_Add64) [!FT_LONG64]: Simplify.
972
973 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
974 (af_direction_compute): Add a missing FT_ABS call. This bug caused
975 production of garbage by missing lots of segments.
976
977 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
978
979 * src/autofit/afloader.c (af_loader_init, af_loader_done)
980 [AF_DEBUG]: Set _af_debug_hints.
981
982
983 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
984 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
985 and ft_corner_orientation.
986
987
988 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000989
Werner Lemberge88c5262006-10-24 05:46:26 +00009902006-10-24 Werner Lemberg <wl@gnu.org>
991
992 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
993
994 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
995 as argument.
996
David Turnera1861392006-10-23 16:00:59 +00009972006-10-23 Zhe Su <zsu@novell.com>
998
Werner Lemberg715e96e2006-10-24 05:28:45 +0000999 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1000 better deal with broken Asian fonts with strange glyphs, having
1001 self-intersections and other peculiarities. The used algorithm is
1002 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001003
David Turnere140f142006-10-23 08:56:57 +000010042006-10-23 David Turner <david@freetype.org>
1005
Werner Lemberg715e96e2006-10-24 05:28:45 +00001006 Speed up the CFF font loader. With some large CFF fonts,
1007 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001008
Werner Lemberg715e96e2006-10-24 05:28:45 +00001009 * src/cff/cffload.c (cff_get_offset): Removed.
1010 (cff_new_index): Inline functionality of `cff_get_offset'.
1011 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1012 (cff_charset_done): Call `cff_charset_free_cids'.
1013 (cff_charset_load): Call `cff_charset_compute_cids'.
1014 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1015
1016 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1017 with FT_NEXT_XXX.
1018
1019
1020 Speed up the Postscript hinter, with more than 100% speed increase
1021 on my machine.
1022
1023 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1024 psh_corner_orientation): New functions.
1025 (psh_glyph_compute_inflections): Merge loops for efficiency.
1026 Use `psh_corner_orientation'.
1027 (psh_glyph_init): Use `psh_corner_is_flat'.
1028 (psh_hint_table_find_strong_point): Renamed to...
1029 (psh_hint_table_find_strong_points): This.
1030 Rewrite, adding argument to handle all points at once.
1031 Update all callers.
1032 (PSH_MAX_STRONG_INTERNAL): New macro.
1033 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001034
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010352006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1036
1037 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001038 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001039
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010402006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1041
1042 * docs/INSTALL.CROSS: New document file for cross-building.
1043
1044 * builds/unix/configure.raw: Preliminary cross-building support.
1045 Find native C compiler and pass it by CC_BUILD, and
1046 find suffix for native executable and pass it by EXEEXT_BUILD.
1047 Also suffix for target executable is passed by EXEEXT.
1048
Werner Lembergb9e6d692006-10-15 08:58:40 +00001049 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1050 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001051 CC_BUILD and EXEEXT_BUILD.
1052
Werner Lembergb9e6d692006-10-15 08:58:40 +00001053 * builds/exports.mk (APINAMES_EXE): Change the extension for
1054 apinames from the suffix for target (E) to that for building host
1055 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001056
Werner Lemberg82a07e92006-10-12 06:20:44 +000010572006-10-12 Werner Lemberg <wl@gnu.org>
1058
1059 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1060 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1061 which reference those files.
1062
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010632006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1064
Werner Lembergb9e6d692006-10-15 08:58:40 +00001065 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1066 embedded in freetype2.pc and freetype-config. Use it to record
1067 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001068
1069 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1070
1071 * builds/unix/freetype-config.in: Ditto.
1072
Werner Lemberg28e17d92006-10-11 17:27:47 +000010732006-10-11 Werner Lemberg <wl@gnu.org>
1074
1075 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1076 development.
1077
Jens Claudius336d2292006-10-03 08:53:37 +000010782006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1079
1080 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1081 argument to ft_setjmp.
1082
1083 * include/freetype/internal/ftvalid.h: Add comment that
1084 ft_validator_run must not be used.
1085
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010862006-10-01 Werner Lemberg <wl@gnu.org>
1087
1088 * src/base/ftbase.c: Undo change from 2006-09-30.
1089
1090 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1091
10922006-09-30 David Turner <david@freetype.org>
1093
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001094 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1095 s/unpatented_hinting/ignore_unpatented_hinter/.
1096 Update all callers.
1097
1098 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1099 auto-hinting shall be used or not.
1100
1101 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001102
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011032006-09-30 Werner Lemberg <wl@gnu.org>
1104
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001105 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1106 in use).
1107
1108 * src/base/ftbase.c: Include `ftlcdfil.c'.
1109
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011102006-09-29 Werner Lemberg <wl@gnu.org>
1111
1112 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1113 overlapping segments. Bug reported by Stefan Koch.
1114
David Turnerad830712006-09-27 16:20:59 +000011152006-09-28 David Turner <david@freetype.org>
1116
Werner Lemberg2c002e12006-09-29 21:31:53 +00001117 Fix a bug in the automatic unpatented hinting support which prevents
1118 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001119
Werner Lemberg2c002e12006-09-29 21:31:53 +00001120 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1121 s/force_autohint/unpatented_hinting/. Update all callers.
1122
1123 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1124
1125 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001126
David Turner8a317cf2006-09-27 07:52:48 +000011272006-09-27 David Turner <david@freetype.org>
1128
Werner Lemberg2c002e12006-09-29 21:31:53 +00001129 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001130
David Turner8a317cf2006-09-27 07:52:48 +00001131
David Turnere140f142006-10-23 08:56:57 +00001132 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001133 In a default build, the function `FT_Library_SetLcdFilter' returns
1134 `FT_Err_Unimplemented_Feature'; you need to #define
1135 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1136 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001137
Werner Lemberg2c002e12006-09-29 21:31:53 +00001138 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001139
Werner Lemberg2c002e12006-09-29 21:31:53 +00001140 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1141 typedef.
1142 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1143 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001144
Werner Lemberg2c002e12006-09-29 21:31:53 +00001145 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1146 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001147
Werner Lemberg2c002e12006-09-29 21:31:53 +00001148 Handle subpixel rendering.
1149 Simplify function.
1150 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1151 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1152
1153 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1154 pointing to <freetype/ftlcdfil.h>.
1155
1156 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1157 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1158
1159 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001160
Werner Lemberge20df4a2006-09-27 06:29:21 +000011612006-09-26 David Bustin
1162
1163 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1164 correctly. Reported as Savannah bug #17843.
1165
David Turner6f8c6222006-09-26 15:42:44 +000011662006-09-26 David Turner <david@freetype.org>
1167
Werner Lemberg110246c2006-09-26 21:55:44 +00001168 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1169 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1170 horizontal and vertical hinting for the purpose of debugging the
1171 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001172
Werner Lemberg110246c2006-09-26 21:55:44 +00001173 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1174 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001175
Werner Lemberg110246c2006-09-26 21:55:44 +00001176 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1177
1178 * include/freetype/config/ftoption.h, devel/ftoption.h
1179 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1180 we want to compile LCD-optimized rendering code (à la ClearType) or
1181 not. The macro *must* be disabled in default builds of the library
1182 for patent reasons.
1183
1184 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1185 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1186 isn't defined at compile time. This only changes the content of the
1187 rendered glyph to match the one of normal gray-level rendering,
1188 hence clients should not need to be modified.
1189
1190 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001191
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011922006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1193
1194 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1195 LWFN fails and both are available.
1196
David Turnerf3050052006-09-11 12:00:32 +000011972006-09-11 David Turner <david@freetype.org>
1198
Werner Lembergf9644552006-09-12 13:48:10 +00001199 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1200 report their English names through an Apple Roman
1201 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001202
Werner Lembergf9644552006-09-12 13:48:10 +00001203 If the font uses another name entry with language_id == English, it
1204 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001205
Werner Lembergf9644552006-09-12 13:48:10 +00001206 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1207 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001208
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012092006-09-05 Werner Lemberg <wl@gnu.org>
1210
1211 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001212 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001213 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1214 `HAN NOM B.ttf').
1215
1216 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1217
David Turner772e55d2006-09-05 09:45:15 +000012182006-09-05 David Turner <david@freetype.org>
1219
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001220 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001221
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001222 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1223 (TRaster): Remove `count_ex' and `count_ey'.
1224 (gray_find_cell): Remove 2nd and 3rd argument.
1225 (gray_alloc_cell): Merged with `gray_find_cell'.
1226 (gray_record_cell): Simplify.
1227 (gray_set_cell): Rewrite.
1228 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1229 (gray_render_span): Don't use FT_MEM_SET for small values.
1230 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1231 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1232 bitmap scanline.
1233 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001234
David Turneraa557a92006-09-04 16:42:44 +000012352006-09-04 David Turner <david@freetype.org>
1236
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001237 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1238 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001239
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012402006-09-03 Werner Lemberg <wl@gnu.org>
1241
1242 * devel/ftoption.h: Synchronize with
1243 include/freetype/config/ftoption.h.
1244
1245 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1246 variable declaration.
1247 (gray_convert_glyph): Fix compiler warnings.
1248
David Turner6d79f212006-09-01 14:09:35 +000012492006-09-01 David Turner <david@freetype.org>
1250
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001251 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1252 to recognize a few fonts that require the automatic unpatented
1253 loader.
David Turnerbd502952006-09-01 19:05:24 +00001254
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001255 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1256 rasterizer. The speed improvement is between 15% and 25%, depending
1257 on the font data.
1258
1259 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1260 (TCell): Redefine.
1261 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1262 (gray_init_cells): Updated.
1263 (gray_find_cell, gray_alloc_cell): New functions.
1264 (gray_record_cell): Rewritten to use `gray_find_cell' and
1265 `gray_alloc_cell'.
1266 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1267 QSORT_THRESHOLD):
1268 Removed.
1269 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1270 gray_dump_cells): Removed.
1271 (gray_sweep): Rewritten.
1272 (gray_convert_glyph): Rewrite code which used one of the sorting
1273 functions.
1274 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001275
Werner Lembergd898aed2006-08-29 09:50:34 +000012762006-08-29 Dr. Werner Fink <werner@suse.de>
1277
1278 * configure: Make it possible to handle configure options which
1279 have strings containing spaces.
1280
12812006-08-27 David Turner <david@freetype.org>
1282
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001283 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1284 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1285 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1286
1287 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1288 src/truetype/truetype.c, src/truetype/ttdriver.c,
1289 src/truetype/ttgload.c, src/truetype/ttgload.h,
1290 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1291 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1292 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1293
1294 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1295 member `force_autohint'.
1296
1297 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1298
1299 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1300 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001301
Jens Claudiusa787f452006-08-27 11:26:18 +000013022006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1303
1304 Fix miscellaneous compiler warnings.
1305
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001306 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1307 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001308
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001309 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1310 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1311 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001312
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001313 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1314 volatileness of argument to ft_longjmp. Spotted by Werner
1315 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001316
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001317 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1318 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001319
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001320 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1321 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001322
Werner Lembergc4c35b72006-08-27 08:03:46 +000013232006-08-27 Werner Lemberg <wl@gnu.org>
1324
1325 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1326 Reported by Jens.
1327
Jens Claudius088e44e2006-08-22 14:24:30 +000013282006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001329
Jens Claudius088e44e2006-08-22 14:24:30 +00001330 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001331 about addresses of volatile objects passed as function arguments as
1332 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001333
Werner Lembergc4c35b72006-08-27 08:03:46 +00001334 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1335 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001336
1337 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1338 argument `table' a pointer to a volatile object.
1339
1340 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1341 argument `table' a pointer to a volatile object.
1342
Jens Claudius2652bd52006-08-18 17:20:37 +000013432006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1344
1345 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1346 variable `_sfnt' as volatile since it must keep its value across
1347 a call to ft_setjmp.
1348 (gxv_validate): Same for local variables `memory' and `valid'.
1349 (classic_kern_validate): Same for local variables `memory',
1350 `ckern', and `valid'.
1351
1352 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1353 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1354 `jstf', and 'valid'.
1355
1356 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1357 local variable `cmap'.
1358
David Turner9fbfc6a2006-08-16 09:11:31 +000013592006-08-16 David Turner <david@freetype.org>
1360
Werner Lemberg12342992006-08-19 11:18:09 +00001361 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1362 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001363
Werner Lemberg12342992006-08-19 11:18:09 +00001364 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1365 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001366
David Turner33f5f242006-08-16 16:50:55 +00001367
Werner Lemberg12342992006-08-19 11:18:09 +00001368 Improvements to native TrueType hinting. This is a first try,
1369 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1370
1371 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1372 `extra_points2'.
1373
1374 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1375 `orus'.
1376
1377 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1378 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1379 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1380 handle `extra_points2'.
1381
1382 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1383 Remove compiler warning.
1384 (cur_to_arg): Remove macro.
1385 (TT_Hint_Glyph): Updated.
1386 (TT_Process_Simple_Glyph): Handle `orus'.
1387
1388 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1389 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1390 (LOC_Ins_IUP): Renamed to...
1391 (IUP_WorkerRec): This.
1392 Add `orus' member.
1393 (Shift): Renamed to...
1394 (_iup_worker_shift): This.
1395 Updated.
1396 (Interp): Renamed to...
1397 (_iup_worker_interpolate): This.
1398 Updated to handle `orus'.
1399 (Ins_IUP): Updated.
1400
1401 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1402 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001403
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014042006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1405
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001406 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001407 build ftvalid in ft2demos. This has been inadvertedly changed
1408 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001409
14102006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1411
Werner Lemberg12342992006-08-19 11:18:09 +00001412 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1413 Jens:
1414 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001415
Werner Lemberg12342992006-08-19 11:18:09 +00001416 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1417 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001418
1419 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1420
Jens Claudius9950adc2006-08-13 12:14:36 +000014212006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1422
Werner Lemberg12342992006-08-19 11:18:09 +00001423 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1424 T1_TOKEN_TYPE_KEY.
1425 (T1_FieldRec): Add `dict'.
1426 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1427 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1428 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001429
Werner Lemberg12342992006-08-19 11:18:09 +00001430 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1431 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001432
1433 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1434
1435 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001436 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1437 not T1_TOKEN_TYPE_ANY.
1438 (ps_parser_load_field): Make sure a token that should be a string or
1439 name is really a string or name.
1440 Avoid memory leak if a keyword has been already encountered and its
1441 value is overwritten.
1442 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1443 T1_FIELD_XXX.
1444 (parse_dict): Ignore keywords that occur in the wrong dictionary
1445 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001446
Werner Lemberg12342992006-08-19 11:18:09 +00001447 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1448 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001449
Werner Lemberg12342992006-08-19 11:18:09 +00001450 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1451 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001452
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014532006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1454
1455 Move creation of field `buildchar' of T1_DecoderRec out of
1456 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1457 of it.
1458
1459 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1460 and `T1_Compute_Max_Advance'.
1461
1462 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1463 Remove field `face', add `len_buildchar'.
1464
1465 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1466 field `buildchar'.
1467
1468 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1469 finisher for T1_Decoder.
1470 (cid_slot_load_glyph): Do not ignore failure when initializing the
1471 T1_Decoder.
1472
1473 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1474 Updated.
1475 (t1_decoder_init): Remove initialization of fields `buildchar' and
1476 `len_buildchar'.
1477 (t1_decoder_done): Remove deallocation of field `buildchar'.
1478
1479 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1480 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1481 T1_Decoder.
1482 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1483 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1484 case of error.
1485
1486 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1487 `buildchar' of T1_FaceRec.
1488
1489 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1490 `buildchar' of T1_FaceRec.
1491
Werner Lemberg1a380e02006-07-14 18:28:08 +000014922006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1493
1494 * freetype2/include/freetype/internal/psaux.h: New macros
1495 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1496 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1497 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1498 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1499 (T1_DecoderRec): New fields `buildchar' and `face'.
1500 (IS_PS_TOKEN): New macro.
1501
1502 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1503 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1504
1505 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1506 `default_design_vector' and `num_default_design_vector'.
1507
1508 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1509 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1510 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1511
1512 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1513 `token' argument to be NULL if we want only to count the number of
1514 tokens.
1515 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1516 want to skip the array.
1517 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1518 want to skip the array.
1519
1520 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1521 support for (partially commented out) othersubrs 19-25, 27, and 28.
1522 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1523 (t1_decoder_done): Release new field `buildchar'.
1524
1525 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1526 functions.
1527 (t1_keywords): Register them.
1528 (t1_allocate_blend): Updated.
1529 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1530 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1531 (parse_dict): Remove `keyword_flags' argument.
1532 Use new macro IS_PS_TOKEN.
1533 Changed function so that later PostScript definitions override
1534 earlier ones.
1535 (t1_init_loader): Initialize new field `keywords_encountered'.
1536 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1537 `len_buildchar'.
1538 Remove `keywords_flags'.
1539
1540 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1541 `keywords_encountered'.
1542 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1543
1544 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1545 New entries for parsing /NDV, /CDV, and /DesignVector.
1546
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015472006-07-07 Werner Lemberg <wl@gnu.org>
1548
1549 Add many checks to protect against malformed PCF files.
1550
1551 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1552 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1553
1554 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1555 data and check that tables don't overlap (using a simple
1556 bubblesort).
1557 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1558 New macros which give the size of data structures in the data
1559 stream.
1560 (pcf_get_properties): Use rough estimates to get array size limits.
1561 Assign `face->nprops' and `face->properties' earlier so that a call
1562 to PCF_Face_Done can do the clean-up in case of error.
1563 Protect against invalid string offsets.
1564 (pcf_get_metrics): Clean up code.
1565 Adjust tracing message levels.
1566 Use rough estimate to get array size limit.
1567 (pcf_get_bitmaps): Clean up code.
1568 Adjust tracing message levels.
1569 Use rough estimates to get offset limits.
1570 (pcf_get_encodings): Adjust tracing message level.
1571 (pcf_get_accel): Clean up code.
1572
Werner Lemberg8eb05252006-06-27 06:20:01 +000015732006-06-26 Werner Lemberg <wl@gnu.org>
1574
1575 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1576 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1577
Werner Lemberg24703f82006-06-26 19:12:51 +000015782006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1579
1580 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1581 (t1_decoder_parse_charstrings): Operator with
1582 opcode 15 pops its two arguments.
1583 Handle the case where the pops of an othersubr may be part of a
1584 subroutine.
1585 Handle unknown othersubrs gracefully: count their operands and let
1586 the following pop operators push the operands as the results onto
1587 the Type1 stack.
1588 Improve handling of setcurrentpoint opcode.
1589
Werner Lembergc011f4c2006-06-26 09:40:00 +000015902006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1591
1592 The Type 1 parser now skips over top-level procedures as required
1593 for a `Simplified Parser'. This makes the parser more robust as it
1594 doesn't poke around in PostScript code. Additionally, it makes the
1595 FontDirectory hackery in src/type1/t1load.c unnecessary.
1596
1597 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1598 (skip_literal_string): Add FT_Error as return value.
1599 Handle escapes better.
1600 (skip_string): Add FT_Error as return value.
1601 Don't set `parser->error' but return error code directly.
1602 (skip_procedure): New function.
1603 (ps_parser_skip_PS_token): Handle procedures.
1604 Update code.
1605 (ps_parser_to_token): Update code.
1606 (ps_parser_load_field_table): Handle bbox entries also.
1607
1608 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1609 Add commented-out code for synthetic fonts.
1610
Werner Lemberga2da05c2006-06-25 06:27:27 +000016112006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1612
1613 Fix two hinting bugs as reported in
1614 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1615
1616 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1617 `first_point' member.
1618
1619 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1620 `first_point'.
1621 (TT_Process_Composite_Glyph): Always untouch points.
1622
1623 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1624 `first_point' and `last_point' in case of composite glyphs.
1625 (Ins_IUP): Fix computation of `end_point'.
1626
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016272006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1628
Werner Lembergef3d2c22006-06-25 06:07:14 +00001629 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1630 Mac. The original patch was written by David Sachitano and Lawrence
1631 Coopet, and modified by Sean McBride for MPW compatibility. Only
1632 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001633
Werner Lembergef3d2c22006-06-25 06:07:14 +00001634 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1635 Mac OS X platforms.
1636 (OS_INLINE): Undefine before definition.
1637 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1638 FontAssociation table in FOND resource.
1639 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1640 and fontSize at each entry of FontAssociation table in FOND
1641 resource.
1642 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1643 ffStylOff of FamilyRecord header of FOND resource, the header,
1644 fontSize, fontID at each entry of FontAssociation table, and
1645 StyleMapping table.
1646 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001647
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016482006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1649
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001650 Public API of TrueTypeGX, OpenType, and classic kern table validator
1651 should return `FT_Err_Unimplemented_Feature' if validation service
1652 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001653 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001654 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1655
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001656 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1657 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1658 unavailable.
1659 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1660 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001661
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001662 * src/base/ftotval.c (FT_OpenType_Validate): Return
1663 FT_Err_Unimplemented_Feature if OpenType validation service is
1664 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001665
Werner Lembergb10e45a2006-06-08 07:32:56 +000016662006-06-08 Werner Lemberg <wl@gnu.org>
1667
1668 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1669 errors.
1670
David Turner5f1f7502006-06-07 05:11:50 +000016712006-06-07 David Turner <david@freetype.org>
1672
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001673 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1674 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1675 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001676
David Turner457b4a82006-06-06 08:14:14 +000016772006-06-06 David Turner <david@freetype.org>
1678
Werner Lemberg4836f952006-06-06 12:54:08 +00001679 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001680
Werner Lemberg4836f952006-06-06 12:54:08 +00001681 We change `ps_unicodes_init' so that it also takes a
1682 `free_glyph_name' callback to release the glyph names returned by
1683 `get_glyph_name'
1684
1685 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1686 Renamed to ...
1687 (PS_GetGlyphNameFunc): This.
1688 (PS_FreeGlyphNameFunc): New typedef.
1689 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1690
1691 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1692 argument.
1693 (cff_sid_free_glyph_name): New function.
1694 (cff_cmap_unicode_init): Updated.
1695
1696 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1697
1698 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1699 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001700
1701
David Turner09717352006-06-04 14:33:08 +000017022006-06-04 David Turner <david@freetype.org>
1703
Werner Lembergd724f202006-06-04 15:17:41 +00001704 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1705 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001706 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001707
Werner Lembergd724f202006-06-04 15:17:41 +00001708 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1709 of `face->num_glyphs' which missed the last glyph, due to
1710 the offset-by-1 computation, since the PFR format doesn't
1711 guarantee that glyph index 0 corresponds to the `missing
1712 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001713
Werner Lemberg33779662006-05-26 06:30:05 +000017142006-05-25 Werner Lemberg <wl@gnu.org>
1715
1716 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1717 `-no-undefined'. Reported by Christian Biesinger.
1718
Werner Lemberg24773d62006-05-20 08:53:13 +000017192006-05-19 Brian Weed <bw@imaginengine.com>
1720
1721 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1722 have debug information, and debug libraries use `C7 compatible'
1723 debug info.
1724
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017252006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1726
Werner Lemberga6523a62006-05-20 08:47:01 +00001727 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001728 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001729
Werner Lemberga6523a62006-05-20 08:47:01 +00001730 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1731 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001732
1733 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001734 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001735
17362006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1737
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001738 * build/unix/configure.raw: Add a fallback to disable Carbon
1739 dependency, if configured with no options on Mac OS X.
1740
17412006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1742
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001743 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001744 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001745 the second part of Savannah bug #16590.
1746
Werner Lemberg545c4e52006-05-17 22:55:04 +000017472006-05-18 Werner Lemberg <wl@gnu.org>
1748
1749 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1750 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1751
David Turnerdc3ff312006-05-17 12:59:35 +000017522006-05-17 David Turner <david@freetype.org>
1753
Werner Lemberg545c4e52006-05-17 22:55:04 +00001754 This is a major patch used to drastically improve the performance of
1755 loading glyphs. This both speeds up loading the glyph vectors
1756 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001757
Werner Lemberg545c4e52006-05-17 22:55:04 +00001758 We now use inline assembler code with GCC to implement `FT_MulFix',
1759 which is probably the most important function related to the
1760 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001761
Werner Lemberg545c4e52006-05-17 22:55:04 +00001762 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001763
1764
Werner Lemberg545c4e52006-05-17 22:55:04 +00001765 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1766 `cursor' and `limit'.
1767
1768 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1769 New functions.
1770 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1771 [TEST]: Remove.
1772
1773 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1774 code.
1775
1776 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1777 `FT_ZERO'
1778 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1779 (af_glyph_hints_reload: Rewrite recognition of weak points.
1780
1781 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1782 constant values out of the loops.
1783
1784 * src/autofit/aftypes.h: Updated.
1785
1786 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1787
1788 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1789 product to get orientation.
1790
1791 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1792 (FT_Stream_OpenGzip): Use it to handle small files directly in
1793 memory.
1794
1795 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1796 Improve performance.
1797
1798 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1799 `limit'.
1800
1801 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1802 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1803 exceedingly large values of number of contours. Speed up by
1804 reducing the number of loops.
1805
1806 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1807
1808
1809 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1810 used to detect rogue clients from 4 to 16. This is to prevent some
1811 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1812 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001813
Werner Lembergde2d90a2006-05-17 08:54:30 +000018142007-05-17 Werner Lemberg <wl@gnu.org>
1815
1816 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001817 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001818
18192006-05-16 Werner Lemberg <wl@gnu.org>
1820
1821 * docs/PROBLEMS: Updated icl issues.
1822
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001823----------------------------------------------------------------------------
1824
Werner Lemberg42b63b22007-01-21 21:01:33 +00001825Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001826David Turner, Robert Wilhelm, and Werner Lemberg.
1827
1828This file is part of the FreeType project, and may only be used, modified,
1829and distributed under the terms of the FreeType project license,
1830LICENSE.TXT. By continuing to use, modify, or distribute this file you
1831indicate that you have read the license and understand and accept it
1832fully.
1833
1834
1835Local Variables:
1836version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001837coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001838End: