blob: d694fe7f1caa1995f80cf7e299dc0510d79784f2 [file] [log] [blame]
David Turner1dcb4442007-04-06 08:19:04 +000012007-04-06 David Turner <david@freetype.org>
2
3 * src/base/ftbimap.c (ft_bitmap_assure_buffer): fixed buffer-overwrite bug
4
5
Werner Lemberg9f83e052007-04-05 02:28:23 +000062007-04-04 Werner Lemberg <wl@gnu.org>
7
8 * Version 2.3.3 released.
9 =========================
10
11
12 Tag sources with `VER-2-3-3'.
13
14 * docs/CHANGES: Mention CVE-2007-1351.
15
David Turner7338ec22007-04-03 14:30:34 +0000162007-04-03 David Turner <david@freetype.org>
17
18 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000019 if one of the resolution values is 0, treat it as if it were the
20 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000021
David Turnere6472c12007-04-02 13:13:54 +0000222007-04-02 David Turner <david@freetype.org>
23
Werner Lemberg94f12272007-04-03 07:19:53 +000024 Add special code to detect `extra-light' fonts and do not snap their
25 stem widths too much to avoid bizarre hinting effects.
26
27 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
28 `extra_light' members.
29
30 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
31 them.
32 (af_latin_metrics_scale_dim): Set `extra_light'.
33 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000034
David Turner3f539692007-03-28 14:53:40 +0000352007-03-28 David Turner <david@freetype.org>
36
Werner Lemberg644b1ad2007-03-28 21:17:11 +000037 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000038 padding.
39
Werner Lemberga08b2172007-03-28 07:17:17 +0000402007-03-28 Werner Lemberg <wl@gnu.org>
41
42 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
43 gracefully.
44 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000045 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000046 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
47 number of code points in Unicode.
48
Werner Lemberg644b1ad2007-03-28 21:17:11 +000049 * builds/win32/visualc/index.html,
50 builds/win32/visualc/freetype.dsp,
51 builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
52 s/232/233/.
53
54 * docs/CHANGES: Mention ftdiff.
55
David Turner3b242d32007-03-26 12:03:04 +0000562007-03-26 David Turner <david@freetype.org>
57
Werner Lemberg644b1ad2007-03-28 21:17:11 +000058 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
59 corresponding code.
60 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000061
Werner Lemberga08b2172007-03-28 07:17:17 +000062 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000063 computations in order to ignore single-point contours. These are
64 never rasterized and correspond in certain fonts to mark-attach
65 points that are very far from the glyph's real outline, ruining the
66 computation.
David Turnerf58caa02007-03-26 12:39:25 +000067
Werner Lemberga08b2172007-03-28 07:17:17 +000068 * src/autofit/afloader.c (af_loader_load_g): In the case of
69 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
70 Otherwise code that uses them will most certainly ruin the fixed
71 advance property.
David Turner23553d62007-03-26 13:37:17 +000072
Werner Lemberg644b1ad2007-03-28 21:17:11 +000073 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
74 documentation and bump version number to 2.3.3.
75
76 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
77
78 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +000079
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000802007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
81
Werner Lemberg644b1ad2007-03-28 21:17:11 +000082 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
83 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000084 * builds/vms/ftconfig.h: Ditto.
85 * include/freetype/config/ftconfig.h: Ditto.
86
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000872007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
88
Werner Lemberg14ffe092007-03-22 06:12:43 +000089 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
90 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000091 proposed by Sean McBride:
92 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
93
942007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
95
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000096 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
97 setjmp, proposed by Sean McBride:
98 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
99
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001002007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
101
Werner Lembergc9f6c662007-03-21 13:30:14 +0000102 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
103 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
104 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000105
David Turner74c34eb2007-03-18 07:19:31 +00001062007-03-18 David Turner <david@freetype.org>
107
Werner Lembergc9f6c662007-03-21 13:30:14 +0000108 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
109 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000110
Werner Lembergc9f6c662007-03-21 13:30:14 +0000111 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000112
David Turner89020d92007-03-17 17:48:57 +00001132007-03-17 David Turner <david@freetype.org>
114
Werner Lembergc9f6c662007-03-21 13:30:14 +0000115 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
116 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000117
Werner Lemberg25d592a2007-03-09 07:59:35 +00001182007-03-09 Werner Lemberg <wl@gnu.org>
119
120 * Version 2.3.2 released.
121 =========================
122
123
124 Tag sources with `VER-2-3-2'.
125
126 * builds/win32/visualc/index.html,
127 builds/win32/visualc/freetype.dsp,
128 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
129 s/231/232/.
130
David Turner3a51afa2007-03-08 10:50:38 +00001312007-03-08 David Turner <david@freetype.org>
132
Werner Lemberg25d592a2007-03-09 07:59:35 +0000133 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000134
Werner Lemberg25d592a2007-03-09 07:59:35 +0000135 * builds/unix/configure.raw (version_info): Set to 9:13:3.
136
137 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
138
139 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000140
Werner Lemberg1e259de2007-03-08 15:39:21 +0000141 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
142 function to work properly, over-writing user-provided buffers in
143 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000144
David Turner121cad52007-03-08 16:43:50 +0000145
Werner Lemberg3d92f082007-03-06 11:59:24 +00001462007-03-05 Werner Lemberg <wl@gnu.org>
147
148 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
149 macro for `strstr'.
150
151 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
152 `trick_names', as suggested by Ivan Nincic.
153
David Turner085bc6e2007-03-05 17:40:03 +00001542007-03-05 David Turner <david@freetype.org>
155
Werner Lembergd112cf02007-03-06 12:06:56 +0000156 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
157 case FT_Init_FreeType fails for some reason. Problem reported by
158 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000159
Werner Lembergd112cf02007-03-06 12:06:56 +0000160 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
161 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
162 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
163 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000164
Werner Lembergd112cf02007-03-06 12:06:56 +0000165 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
166 signed values, not unsigned ones. Problem reported by Johannes
167 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000168
David Turner601aefe2007-02-21 16:47:49 +00001692007-02-21 David Turner <david@freetype.org>
170
Werner Lembergde5e6862007-02-25 21:06:43 +0000171 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
172 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000173
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001742007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
175
176 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
177 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
178 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
179
Werner Lemberga0915172007-02-16 08:12:50 +00001802007-02-16 Werner Lemberg <wl@gnu.org>
181
182 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
183 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
184
David Turner2c4500e2007-02-14 15:08:47 +00001852007-02-14 David Turner <david@freetype.org>
186
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000187 It seems that the following changes fix most of the known
188 interpreter problems with my fonts, but more testing is needed,
189 though.
190
191 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
192 (TT_MulFix14): Rewrite.
193 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
194 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000195
Werner Lembergc6a14082007-02-12 22:08:15 +00001962007-02-12 Werner Lemberg <wl@gnu.org>
197
198 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
199 warnings.
200
201 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
202 (bdf_interpret_style): Ditto.
203
David Turnerc0f9c4a2007-02-12 14:55:03 +00002042007-02-12 David Turner <david@freetype.org>
205
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000206 Simplify projection and dual-projection code interface.
207
Werner Lemberg406d25f2007-02-12 22:01:18 +0000208 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
209 FT_Vector' as argument type.
210 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
211 Updated.
212 (CUR_fast_project, CUR_fast_dualproj): New macros.
213 (Project, Dual_Project, Project_x, Project_y): Updated.
214 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
215 macros.
216
217
218 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
219 adjustments for the non-light auto-hinted modes. Gets rid of
220 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000221
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000222 * src/autofit/aflatin.c (af_latin_hints_link_segments,
223 af_latin_hints_compute_edges): Slight optimization of the segment
224 linker and better handling of serif segments to get rid of broken
225 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000226
David Turnerc0f9c4a2007-02-12 14:55:03 +0000227
Werner Lemberg442bfb82007-02-12 21:44:10 +0000228 Introduce new string functions and the corresponding macros to get
229 rid of various uses of strcpy and other `evil' functions, as well as
230 to simplify a few things.
231
232 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
233 ft_mem_strcpyn): New declarations.
234 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
235 macros.
236 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
237 functions.
238
239 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
240 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
241 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
242 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
243 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
244 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
245 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
246 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000247
Werner Lemberg406d25f2007-02-12 22:01:18 +0000248 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
249
Werner Lemberg582067d2007-02-11 15:03:05 +00002502007-02-11 Werner Lemberg <wl@gnu.org>
251
252 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
253 non-spacing glyphs.
254
Werner Lemberg8f474532007-02-07 08:31:01 +00002552007-02-07 Tom Parker <palfrey@tevp.net>
256
257 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
258 pointer.
259
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002602007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
261
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000262 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
263 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000264 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000265 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
266 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
267 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
268 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000269
270 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
271 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000272 * builds/mac/ftmac.c: Ditto.
273
2742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
275
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000276 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000277 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000278 #include <ftmac.c>.
279
2802007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
281
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000282 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
283 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
284 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
285 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
286 FT_GetFilePath_From_Mac_ATS_Name.
287 * builds/mac/ftmac.c: Ditto.
288
2892007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
290
Werner Lembergdcbb7082007-02-08 08:54:09 +0000291 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000292 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
293 for passing to FT_New_Face_From_FSSpec.
294
2952007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
296
Werner Lembergdcbb7082007-02-08 08:54:09 +0000297 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000298 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000299
300 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
301 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000302 * builds/mac/ftmac.c (OS_INLINE): Ditto.
303
Werner Lemberg313d7772007-02-01 08:10:45 +00003042007-02-01 Werner Lemberg <wl@gnu.org>
305
306 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
307 Explain why applications shouldn't use it. Found by Alexei.
308
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003092007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000310
311 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
312 message.
313
314 * src/gxvalid/gxvmort1.c
315 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
316 message.
317
Werner Lemberg53935932007-01-31 08:53:02 +00003182007-01-31 Werner Lemberg <wl@gnu.org>
319
320
321 * Version 2.3.1 released.
322 =========================
323
324
325 Tag sources with `VER-2-3-1-FINAL'.
326
327 * builds/win32/visualc/freetype.dsp,
328 builds/win32/visualc/freetype.vcproj: s/230/231/.
329 * builds/win32/visualc/index.html: s/221/231/.
330
331 * vms_make.com: Add `ftgasp'.
332
David Turnera7ee6082007-01-30 10:33:53 +00003332007-01-30 David Turner <david@freetype.org>
334
Werner Lemberg53935932007-01-31 08:53:02 +0000335 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000336
Werner Lemberg53935932007-01-31 08:53:02 +0000337 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000338
Werner Lemberg25d592a2007-03-09 07:59:35 +0000339 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000340 s/2.3.0/2.3.1/.
341
342 * builds/unix/configure.raw (version_info): Set to 9:12:3.
343
344
345 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
346 (af_loader_load_g): Disable the warper (i.e., the light hinting
347 improvements) to make a 2.3.1 bugfix release before introducing a
348 new feature. This should give us more time to tune and improve the
349 warper for the next release.
350
351 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000352
David Turnerd91eebd2007-01-26 15:05:41 +00003532007-01-25 David Turner <david@freetype.org>
354
Werner Lembergbf241762007-01-26 16:08:49 +0000355 For light auto-hinting, improve glyph advance widths and resurrect
356 normal/full hinting to its normal quality.
357
358 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
359 and `xmax_delta'.
360 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
361 and `xmax_delta'.
362
363 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
364 preprocessor conditional with if-clause, handling both light and
365 normal mode.
366
367 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
368 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000369
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003702007-01-25 Werner Lemberg <wl@gnu.org>
371
372 * docs/release: Updated -- Savannah uses a new uploading scheme.
373
David Turnera42567b2007-01-25 12:23:37 +00003742007-01-25 David Turner <david@freetype.org>
375
Werner Lembergd7855662007-01-25 13:53:56 +0000376 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000377
Werner Lembergd7855662007-01-25 13:53:56 +0000378 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
379 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
380 functions.
David Turnera42567b2007-01-25 12:23:37 +0000381
Werner Lembergd7855662007-01-25 13:53:56 +0000382 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000383
Werner Lembergb1be9e82007-01-25 11:50:00 +00003842007-01-25 Werner Lemberg <wl@gnu.org>
385
386 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000387 correctly in a sanity check. Since this function is only used to
388 load local and global functions, any charstring that called the last
389 local/global function would fail otherwise. This fixes Savannah bug
390 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000391
392 * docs/CHANGES: Document it.
393
David Turnerb6de8d12007-01-23 15:51:50 +00003942007-01-23 David Turner <david@freetype.org>
395
Werner Lembergb1be9e82007-01-25 11:50:00 +0000396 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
397 prevented compilation when disabling both the unpatented and the
398 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000399
Werner Lembergb1be9e82007-01-25 11:50:00 +0000400
401 Fix and enable the warper to improve `light' hinting mode. This is
402 not necessarily a final version, but it seems to work well.
403
404 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
405 Disable code.
406 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
407 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
408
409 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
410 (af_warper_compute_line_best): Fix array size of `scores'.
411 (af_warper_compute): Better handling of border cases.
412 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
413 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000414
Werner Lemberg011d1112007-01-21 09:36:00 +00004152007-01-21 Werner Lemberg <wl@gnu.org>
416
Werner Lemberg42b63b22007-01-21 21:01:33 +0000417 * ChangeLog: Split off older entries into...
418 * ChangeLog.22: This new file.
419
4202007-01-21 Werner Lemberg <wl@gnu.org>
421
Werner Lemberg555258f2007-01-21 09:46:37 +0000422 * docs/CHANGES: Document SHZ fix.
423
4242007-01-21 George Williams <gww@silcom.com>
425
426 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
427 points.
428
4292007-01-21 Werner Lemberg <wl@gnu.org>
430
Werner Lemberg011d1112007-01-21 09:36:00 +0000431 * src/sfnt/ttmtx.c (tt_face_get_metrics)
432 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
433
Werner Lemberg87a5a432007-01-17 12:44:39 +00004342007-01-17 Werner Lemberg <wl@gnu.org>
435
Werner Lembergb8003292007-01-17 12:56:25 +0000436
437 * Version 2.3.0 released.
438 =========================
439
440
441 Tag sources with `VER-2-3-0-FINAL'.
442
4432007-01-17 Werner Lemberg <wl@gnu.org>
444
Werner Lemberg87a5a432007-01-17 12:44:39 +0000445 * docs/release: Updated.
446
David Turner22122722007-01-16 20:06:44 +00004472007-01-16 David Turner <david@freetype.org>
448
Werner Lemberg87a5a432007-01-17 12:44:39 +0000449 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
450 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
451 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
452 warnings.
David Turner22122722007-01-16 20:06:44 +0000453
Werner Lemberg267e1d72007-01-15 07:48:09 +00004542007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
455
456 * builds/amiga/makefile, builds/amiga/makefile.os4,
457 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
458
459 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
460
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004612007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
462
463 Fix various compiler warnings.
464
465 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
466 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
467 s/index/strike_index/.
468 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
469
470 * src/gxvalid/gxvmorx5.c
471 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
472
473 * src/truetype/ttinterp.c (Compute_Point_Displacement),
474 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
475 uninitialized variables.
476
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004772007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
478
479 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
480
Werner Lemberg281c1482007-01-13 22:50:51 +00004812007-01-13 Werner Lemberg <wl@gnu.org>
482
483 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
484 versions up to 0x3FF without complaining.
485
Werner Lembergac250b22007-01-13 14:01:36 +00004862007-01-13 Derek Clegg <dclegg@apple.com>
487
488 Add FT_Get_PS_Font_Info interface to CFF driver.
489
490 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
491 (CFF_FontRec): Add `font_info' field.
492
493 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
494 (cff_font_done): Free font->font_info if necessary.
495
496 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
497 (cff_service_ps_info): Register cff_ps_get_font_info.
498
Werner Lemberg23df31a2007-01-13 08:45:00 +00004992007-01-13 Werner Lemberg <wl@gnu.org>
500
501 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
502 with C++ compiler.
503
504 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
505 af_glyph_hints_dump_edges): Ditto.
506
507 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
508 `modules.cfg').
509
510 * src/sfnt/ttsbit0.h: Remove.
511
512 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
513
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005142007-01-12 David Turner <david@freetype.org>
515
516 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
517 bug in the bitmap emboldener if the pitch of the source bitmap is
518 much larger than its width.
519
520 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
521 compilation warning.
522
Werner Lemberg6d96d312007-01-12 10:30:19 +00005232007-01-12 Werner Lemberg <wl@gnu.org>
524
525 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
526 `automake' CVS module from sources.redhat.com.
527
Werner Lemberg17432b52007-01-12 09:28:44 +00005282007-01-11 Werner Lemberg <wl@gnu.org>
529
530 * src/type1/t1load.c (is_space): Removed.
531 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
532 (parse_charstrings): Use IS_PS_TOKEN.
533
534
535 * autogen.sh: Avoid bash specific syntax.
536
David Turner038ace22007-01-11 15:00:59 +00005372007-01-11 David Turner <david@freetype.org>
538
Werner Lemberg17432b52007-01-12 09:28:44 +0000539 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000540
Werner Lemberg17432b52007-01-12 09:28:44 +0000541 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000542
Werner Lemberg17432b52007-01-12 09:28:44 +0000543 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
544 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000545 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000546
Werner Lemberg17432b52007-01-12 09:28:44 +0000547 * autogen.sh: Small fix to get it working on Mac OS X properly:
548 The issue is that GNU libtool is called `glibtool' on this platform,
549 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000550
David Turner2628ea92007-01-10 13:15:56 +00005512007-01-10 David Turner <david@freetype.org>
552
Werner Lemberg17432b52007-01-12 09:28:44 +0000553 * all-sources: Tag all sources with VER-2-3-0-RC1 and
554 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000555
Werner Lemberg17432b52007-01-12 09:28:44 +0000556 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
557 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
558 version number to 2.3.0.
559
560 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
561 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000562
563 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000564 include/freetype/ftlcdfil.h: Update reference documentation with
565 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000566
Werner Lemberg17432b52007-01-12 09:28:44 +0000567 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
568 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000569
Werner Lembergbf02d392007-01-10 07:07:37 +00005702007-01-10 Derek Clegg <dclegg@apple.com>
571
572 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
573 values.
574
David Turnerf48b60e2007-01-08 15:15:32 +00005752007-01-08 David Turner <david@freetype.org>
576
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000577 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000578
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000579 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
580 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000581 corresponding to a given character pixel size.
582
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000583 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
584 `gasp' table, in order to avoid potential problems with later
585 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000586
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000587 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
588 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000589
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000590 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
591 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
592 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
593 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000594
Werner Lemberge6b6f372007-01-07 00:06:47 +00005952007-01-07 Werner Lemberg <wl@gnu.org>
596
Werner Lembergb8004d22007-01-07 09:13:38 +0000597 * src/cid/cidparse.c (cid_parser_new): Improve error message for
598 Type 11 fonts.
599 Scan for `/sfnts' token.
600
6012007-01-07 Werner Lemberg <wl@gnu.org>
602
603 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000604
Werner Lembergbe5f7972007-01-06 07:51:48 +00006052007-01-06 Werner Lemberg <wl@gnu.org>
606
607 * src/cff/cffload.c (cff_index_init): Remove unused variable.
608 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
609
David Turnera8cf42b2007-01-04 16:46:46 +00006102007-01-04 David Turner <david@freetype.org>
611
Werner Lembergf6294392007-01-06 07:47:45 +0000612 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
613 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000614
Werner Lembergf6294392007-01-06 07:47:45 +0000615
616 Do not allocate interpreter-specific tables in memory if we are not
617 going to load glyphs with the bytecode interpreter anyway.
618
619 * src/truetype/ttgload.c (tt_loader_init): Load execution context
620 only if glyph is hinted.
621 Updated.
622 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
623 and `cvs_ready'.
624 Add `tt_size_ready_bytecode' declaration.
625 * src/truetype/ttobjs.c (tt_size_done_bytecode,
626 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
627 (tt_size_init): Move most code into `tt_size_init_bytecode'.
628 (tt_size_done): Move most code into `tt_size_done_bytecode'.
629 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000630
David Turner91a34022007-01-05 14:47:08 +0000631
Werner Lembergf6294392007-01-06 07:47:45 +0000632 Don't extract the metrics table from the SFNT font file. Instead,
633 reparse it on each glyph load. The runtime difference is not
634 noticeable, and it can save a lot of heap memory when memory-mapped
635 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000636
Werner Lembergf6294392007-01-06 07:47:45 +0000637 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
638 `horz_metrics_offset' and `vert_metrics_ofset'.
639 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
640 Updated.
641
642
643 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
644
645
646 Do not load the CFF index offsets into memory, since this wastes a
647 *lot* of heap memory with large Asian CFF fonts. There is no
648 significant performance loss.
649
650 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
651 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
652 `data_size'.
653 (CFF_CharsetRec): Add field `num_glyphs'.
654
655 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
656 cff_charset_cid_to_gindex): New functions.
657 (cff_new_index): Renamed to...
658 (cff_index_init): This. Update all callers.
659 Updated -- some code has been moved to `cff_index_load_offsets'.
660 (cff_done_index): Renamed to...
661 (cff_index_done): This. Update all callers.
662 (cff_index_get_pointers, cff_index_access_element): Updated to use
663 stream offsets.
664 (cff_charset_compute_cids): Set `num_glyphs' field.
665 (cff_encoding_load): Updated.
666
667 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000668
6692007-01-04 David Turner <david@freetype.org>
670
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000671 * docs/INSTALL.UNIX: Simplify some parts, add reference to
672 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000673
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000674 * README.CVS: Add common problem description and solution
675 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000676
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000677 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000678
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000679 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000680
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000681 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000682
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000683 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
684 (TWorker): This.
685 Remove `count_table' and `memory'.
686 Make `grays' a pointer.
687 (TRaster): New structure.
688 (count_table): New static array.
689 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
690 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
691 ft_black_set_mode, ft_black_render): Updated.
692 (ft_black_init): Don't initialize `count_table'.
693 (ft_black_reset): Use the render pool. This saves about 6KB of
694 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000695
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000696 * src/smooth/ftgrays.c (TRaster): Replaced with...
697 (TWorker): This.
698 Remove `memory'.
699 (TRaster): New structure.
700
701 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
702 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
703 gray_render_span, gray_raster_render): Updated.
704 (gray_raster_reset): Use the render pool. This saves about 6KB of
705 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000706
David Turner8a6c44e2007-01-04 17:03:11 +0000707 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
708 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000709 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
710 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
711 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000712
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000713 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
714 Remove a typo that results in no hinting and a memory leak with some
715 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000716
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000717 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000718 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000719 CFF_Faces in it. We need to close all faces before destroying the
720 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000721
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007222007-01-02 Werner Lemberg <wl@gnu.org>
723
724 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
725 Remove compiler warning.
726
David Turner9207e002007-01-02 16:58:13 +00007272007-01-02 David Turner <david@freetype.org>
728
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000729 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000730
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007312006-12-31 Masatake YAMATO <jet@gyve.org>
732
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000733 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
734 function.
735 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000736 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000737 `gxv_kern_subtable_fmt0_pairs_validate'.
738
David Turner115b4422006-12-22 11:37:05 +00007392006-12-22 David Turner <david@freetype.org>
740
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000741 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
742 warnings.
David Turner115b4422006-12-22 11:37:05 +0000743
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000744 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
745 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000746
Werner Lemberg4755bf72006-12-16 08:58:44 +00007472006-12-16 Anders Kaseorg <anders@kaseorg.com>
748
749 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
750 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
751
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007522006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
753
Werner Lemberg9b774e22007-01-16 06:11:27 +0000754 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000755 sync with the modification by Jens Claudius on 2006-08-22; cf.
756 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 +0000757
7582006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
759
760 * src/base/ftmac.c: Specialized for Mac OS X only.
761 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
762 * builds/unix/configure.raw: Ditto. When explicit switches for
763 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
764 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
765
7662006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
767
768 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
769 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
770 instead of src/base/ftmac.c
771 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
772 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
773 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
774 that cannot be built at present.
775
7762006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
777
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000778 * src/base/ftobjs.c: Improvement of resource fork handler for
779 POSIX, cf.
780 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000781 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
782 format or .dfont, to simulate the face index number counted by ftmac.c.
783 (IsMacResource): Return the number of scalable faces correctly.
784
Werner Lembergec5b4502006-12-10 07:51:38 +00007852006-12-10 Werner Lemberg <wl@gnu.org>
786
787 * builds/toplevel.mk (version): Protect against `distclean' target.
788
Werner Lembergb26b3142006-12-09 20:01:43 +00007892006-12-09 Werner Lemberg <wl@gnu.org>
790
791 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
792 or `type'.
793
794 * builds/freetype.mk (version): Extracted from freetype.h, using
795 GNU make's built-in string functions.
796 (refdoc): Use $(version) instead of static version number.
797
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007982006-12-08 Werner Lemberg <wl@gnu.org>
799
800 * builds/toplevel.mk (dist): Extract version number from freetype.h.
801
Werner Lemberg15c29502006-12-09 07:29:54 +00008022006-12-08 Vladimir Volovich <vvv@vsu.ru>
803
804 * src/tools/apinames (State): Remove final comma in structure -- xlc
805 v5 under AIX 4.3 doesn't like this.
806
David Turnerdbf3b432006-12-07 21:18:09 +00008072006-12-07 David Turner <david@freetype.org>
808
Werner Lemberg256a3512006-12-08 06:49:33 +0000809 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
810 to the spacing of auto-fitted glyphs. This only impacts rare
811 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000812
Werner Lemberg11171312006-12-03 09:43:40 +00008132006-12-03 Werner Lemberg <wl@gnu.org>
814
815 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
816
Werner Lemberg960ba592006-12-01 08:20:47 +00008172006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000818
Werner Lemberg960ba592006-12-01 08:20:47 +0000819 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
820 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
821 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000822
David Turner80658e52006-11-28 08:09:20 +0000823
Werner Lemberg960ba592006-12-01 08:20:47 +0000824 * include/freetype/ftxf86.h: Fix and extend comment so that it
825 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000826
Werner Lemberg960ba592006-12-01 08:20:47 +0000827 * include/freetype/ftchapters.h: Add `font_format' section.
828
829
830 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
831 to TOC in index page.
832
8332006-11-28 David Turner <david@freetype.org>
834
835 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
836 trying to render into a zero-width/height bitmap, not an error code.
837
838 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
839
840 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
841 ones instead.
842
843 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
844 variable.
David Turner80658e52006-11-28 08:09:20 +0000845
Werner Lemberg8636c292006-11-26 22:28:13 +00008462006-11-26 Pierre Hanser <hanser@club-internet.fr>
847
848 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
849
Werner Lemberg960ba592006-12-01 08:20:47 +00008502006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000851
Werner Lemberg960ba592006-12-01 08:20:47 +0000852 * src/autofit/afhints.c (af_glyph_hints_dump_points,
853 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
854 Add stubs to link the `ftgrid' test program when debugging is
855 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000856
Werner Lemberg960ba592006-12-01 08:20:47 +00008572006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000858
859 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000860 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
861
862 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
863 Emit more sensible information.
864
865 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
866
867 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
868 rounding of blue values.
869 (af_latin_hints_compute_segments): Hint segment heights.
870 (af_latin_hints_link_segments): Reduce `len_score' value.
871 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
872 value and use `height' member for comparisons.
873 (af_latin_hint_edges): Extend logging message.
874 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000875
Werner Lemberg91959bf2006-11-22 10:36:55 +00008762006-11-22 Werner Lemberg <wl@gnu.org>
877
878 Fix Savannah bug #15553.
879
880 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
881 program after a change from mono to grayscaling (and vice versa).
882 Use correct constant for comparison to get `exec->grayscale'.
883
Werner Lemberg913a3652006-11-19 09:19:17 +00008842006-11-18 Werner Lemberg <wl@gnu.org>
885
886 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000887 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000888 This patch fixes Savannah bug #18301.
889
890 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
891 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
892 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
893 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
894 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
895 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
896 (FNT_Load_Glyph): Check validity of `glyph_index'.
897
David Turner7bab6ae2006-11-13 11:25:06 +00008982006-11-13 David Turner <david@freetype.org>
899
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000900 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
901 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000902
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000903 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
904 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
905 when building the library to change the default LCD filter to be
906 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000907
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000908 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000909
David Turner8765c712006-11-10 16:49:42 +00009102006-11-10 David Turner <david@freetype.org>
911
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000912 * src/smooth/ftsmooth.c: API change for the LCD
913 filter. The FT_LcdFilter value is an enumeration describing which
914 filter to apply, with new values FT_LCD_FILTER_LIGHT and
915 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
916 algorithm which produces strong color fringes for everything
917 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000918
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000919 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
920 second parameter to an enum type.
921
922 * src/base/ftlcdfil.c (USE_LEGACY): Define.
923 (_ft_lcd_filter): Rename to...
924 (_ft_lcd_filter_fir): This.
925 Update parameters.
926 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
927 (FT_Library_Set_LcdFilter): Update parameters.
928 Handle new filter modes.
929
930 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
931 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
932 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
933 callback and update other fields.
934
935 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
936 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
937 Other minor improvements.
938
939 * src/autofit/aflatin.c: Various tiny improvements that drastically
940 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
941 (af_latin_hints_compute_edges): Fix typo.
942 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000943
David Turner4e9cc3c2006-11-09 16:31:52 +00009442006-11-09 David Turner <david@freetype.org>
945
Werner Lemberg49c77a82006-11-09 21:51:57 +0000946 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
947 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000948
Werner Lemberg5e430892006-11-07 09:35:03 +00009492006-11-07 Zhe Su <james.su@gmail.com>
950
951 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
952 also.
953
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009542006-11-03 Werner Lemberg <wl@gnu.org>
955
956 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
957
David Turner40604742006-11-02 16:37:35 +00009582006-11-02 David Turner <david@freetype.org>
959
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000960 Add a few tweaks to better handle serif fonts.
961 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000962
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000963 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
964 segments that are less than 1.5 pixels high. This gets rid of
965 *many* corner cases with serifs.
966 (af_latin_align_linked_edge): Add logging message.
967 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
968 Add logging messages.
969 Handle AF_EDGE_FLAG flag specially.
970
971 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
972 _af_debug_disable_blue_hints, and _af_debug_hints variables.
973
974 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
975 Update external declarations.
976 (af_corner_orientation, af_corner_is_flat): Replaced by...
977
978 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
979 ft_corner_is_flat): These declarations.
980
981 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
982 Comment out. Replaced by...
983
984 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
985 These functions. Update all callers.
986 (FT_Add64) [!FT_LONG64]: Simplify.
987
988 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
989 (af_direction_compute): Add a missing FT_ABS call. This bug caused
990 production of garbage by missing lots of segments.
991
992 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
993
994 * src/autofit/afloader.c (af_loader_init, af_loader_done)
995 [AF_DEBUG]: Set _af_debug_hints.
996
997
998 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
999 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1000 and ft_corner_orientation.
1001
1002
1003 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001004
Werner Lemberge88c5262006-10-24 05:46:26 +000010052006-10-24 Werner Lemberg <wl@gnu.org>
1006
1007 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1008
1009 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1010 as argument.
1011
David Turnera1861392006-10-23 16:00:59 +000010122006-10-23 Zhe Su <zsu@novell.com>
1013
Werner Lemberg715e96e2006-10-24 05:28:45 +00001014 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1015 better deal with broken Asian fonts with strange glyphs, having
1016 self-intersections and other peculiarities. The used algorithm is
1017 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001018
David Turnere140f142006-10-23 08:56:57 +000010192006-10-23 David Turner <david@freetype.org>
1020
Werner Lemberg715e96e2006-10-24 05:28:45 +00001021 Speed up the CFF font loader. With some large CFF fonts,
1022 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001023
Werner Lemberg715e96e2006-10-24 05:28:45 +00001024 * src/cff/cffload.c (cff_get_offset): Removed.
1025 (cff_new_index): Inline functionality of `cff_get_offset'.
1026 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1027 (cff_charset_done): Call `cff_charset_free_cids'.
1028 (cff_charset_load): Call `cff_charset_compute_cids'.
1029 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1030
1031 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1032 with FT_NEXT_XXX.
1033
1034
1035 Speed up the Postscript hinter, with more than 100% speed increase
1036 on my machine.
1037
1038 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1039 psh_corner_orientation): New functions.
1040 (psh_glyph_compute_inflections): Merge loops for efficiency.
1041 Use `psh_corner_orientation'.
1042 (psh_glyph_init): Use `psh_corner_is_flat'.
1043 (psh_hint_table_find_strong_point): Renamed to...
1044 (psh_hint_table_find_strong_points): This.
1045 Rewrite, adding argument to handle all points at once.
1046 Update all callers.
1047 (PSH_MAX_STRONG_INTERNAL): New macro.
1048 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001049
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010502006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1051
1052 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001053 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001054
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010552006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1056
1057 * docs/INSTALL.CROSS: New document file for cross-building.
1058
1059 * builds/unix/configure.raw: Preliminary cross-building support.
1060 Find native C compiler and pass it by CC_BUILD, and
1061 find suffix for native executable and pass it by EXEEXT_BUILD.
1062 Also suffix for target executable is passed by EXEEXT.
1063
Werner Lembergb9e6d692006-10-15 08:58:40 +00001064 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1065 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001066 CC_BUILD and EXEEXT_BUILD.
1067
Werner Lembergb9e6d692006-10-15 08:58:40 +00001068 * builds/exports.mk (APINAMES_EXE): Change the extension for
1069 apinames from the suffix for target (E) to that for building host
1070 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001071
Werner Lemberg82a07e92006-10-12 06:20:44 +000010722006-10-12 Werner Lemberg <wl@gnu.org>
1073
1074 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1075 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1076 which reference those files.
1077
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010782006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1079
Werner Lembergb9e6d692006-10-15 08:58:40 +00001080 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1081 embedded in freetype2.pc and freetype-config. Use it to record
1082 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001083
1084 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1085
1086 * builds/unix/freetype-config.in: Ditto.
1087
Werner Lemberg28e17d92006-10-11 17:27:47 +000010882006-10-11 Werner Lemberg <wl@gnu.org>
1089
1090 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1091 development.
1092
Jens Claudius336d2292006-10-03 08:53:37 +000010932006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1094
1095 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1096 argument to ft_setjmp.
1097
1098 * include/freetype/internal/ftvalid.h: Add comment that
1099 ft_validator_run must not be used.
1100
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011012006-10-01 Werner Lemberg <wl@gnu.org>
1102
1103 * src/base/ftbase.c: Undo change from 2006-09-30.
1104
1105 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1106
11072006-09-30 David Turner <david@freetype.org>
1108
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001109 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1110 s/unpatented_hinting/ignore_unpatented_hinter/.
1111 Update all callers.
1112
1113 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1114 auto-hinting shall be used or not.
1115
1116 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001117
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011182006-09-30 Werner Lemberg <wl@gnu.org>
1119
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001120 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1121 in use).
1122
1123 * src/base/ftbase.c: Include `ftlcdfil.c'.
1124
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011252006-09-29 Werner Lemberg <wl@gnu.org>
1126
1127 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1128 overlapping segments. Bug reported by Stefan Koch.
1129
David Turnerad830712006-09-27 16:20:59 +000011302006-09-28 David Turner <david@freetype.org>
1131
Werner Lemberg2c002e12006-09-29 21:31:53 +00001132 Fix a bug in the automatic unpatented hinting support which prevents
1133 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001134
Werner Lemberg2c002e12006-09-29 21:31:53 +00001135 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1136 s/force_autohint/unpatented_hinting/. Update all callers.
1137
1138 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1139
1140 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001141
David Turner8a317cf2006-09-27 07:52:48 +000011422006-09-27 David Turner <david@freetype.org>
1143
Werner Lemberg2c002e12006-09-29 21:31:53 +00001144 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001145
David Turner8a317cf2006-09-27 07:52:48 +00001146
David Turnere140f142006-10-23 08:56:57 +00001147 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001148 In a default build, the function `FT_Library_SetLcdFilter' returns
1149 `FT_Err_Unimplemented_Feature'; you need to #define
1150 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1151 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001152
Werner Lemberg2c002e12006-09-29 21:31:53 +00001153 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001154
Werner Lemberg2c002e12006-09-29 21:31:53 +00001155 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1156 typedef.
1157 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1158 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001159
Werner Lemberg2c002e12006-09-29 21:31:53 +00001160 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1161 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001162
Werner Lemberg2c002e12006-09-29 21:31:53 +00001163 Handle subpixel rendering.
1164 Simplify function.
1165 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1166 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1167
1168 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1169 pointing to <freetype/ftlcdfil.h>.
1170
1171 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1172 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1173
1174 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001175
Werner Lemberge20df4a2006-09-27 06:29:21 +000011762006-09-26 David Bustin
1177
1178 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1179 correctly. Reported as Savannah bug #17843.
1180
David Turner6f8c6222006-09-26 15:42:44 +000011812006-09-26 David Turner <david@freetype.org>
1182
Werner Lemberg110246c2006-09-26 21:55:44 +00001183 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1184 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1185 horizontal and vertical hinting for the purpose of debugging the
1186 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001187
Werner Lemberg110246c2006-09-26 21:55:44 +00001188 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1189 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001190
Werner Lemberg110246c2006-09-26 21:55:44 +00001191 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1192
1193 * include/freetype/config/ftoption.h, devel/ftoption.h
1194 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1195 we want to compile LCD-optimized rendering code la ClearType) or
1196 not. The macro *must* be disabled in default builds of the library
1197 for patent reasons.
1198
1199 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1200 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1201 isn't defined at compile time. This only changes the content of the
1202 rendered glyph to match the one of normal gray-level rendering,
1203 hence clients should not need to be modified.
1204
1205 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001206
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012072006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1208
1209 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1210 LWFN fails and both are available.
1211
David Turnerf3050052006-09-11 12:00:32 +000012122006-09-11 David Turner <david@freetype.org>
1213
Werner Lembergf9644552006-09-12 13:48:10 +00001214 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1215 report their English names through an Apple Roman
1216 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001217
Werner Lembergf9644552006-09-12 13:48:10 +00001218 If the font uses another name entry with language_id == English, it
1219 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001220
Werner Lembergf9644552006-09-12 13:48:10 +00001221 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1222 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001223
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012242006-09-05 Werner Lemberg <wl@gnu.org>
1225
1226 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001227 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001228 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1229 `HAN NOM B.ttf').
1230
1231 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1232
David Turner772e55d2006-09-05 09:45:15 +000012332006-09-05 David Turner <david@freetype.org>
1234
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001235 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001236
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001237 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1238 (TRaster): Remove `count_ex' and `count_ey'.
1239 (gray_find_cell): Remove 2nd and 3rd argument.
1240 (gray_alloc_cell): Merged with `gray_find_cell'.
1241 (gray_record_cell): Simplify.
1242 (gray_set_cell): Rewrite.
1243 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1244 (gray_render_span): Don't use FT_MEM_SET for small values.
1245 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1246 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1247 bitmap scanline.
1248 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001249
David Turneraa557a92006-09-04 16:42:44 +000012502006-09-04 David Turner <david@freetype.org>
1251
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001252 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1253 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001254
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012552006-09-03 Werner Lemberg <wl@gnu.org>
1256
1257 * devel/ftoption.h: Synchronize with
1258 include/freetype/config/ftoption.h.
1259
1260 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1261 variable declaration.
1262 (gray_convert_glyph): Fix compiler warnings.
1263
David Turner6d79f212006-09-01 14:09:35 +000012642006-09-01 David Turner <david@freetype.org>
1265
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001266 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1267 to recognize a few fonts that require the automatic unpatented
1268 loader.
David Turnerbd502952006-09-01 19:05:24 +00001269
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001270 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1271 rasterizer. The speed improvement is between 15% and 25%, depending
1272 on the font data.
1273
1274 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1275 (TCell): Redefine.
1276 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1277 (gray_init_cells): Updated.
1278 (gray_find_cell, gray_alloc_cell): New functions.
1279 (gray_record_cell): Rewritten to use `gray_find_cell' and
1280 `gray_alloc_cell'.
1281 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1282 QSORT_THRESHOLD):
1283 Removed.
1284 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1285 gray_dump_cells): Removed.
1286 (gray_sweep): Rewritten.
1287 (gray_convert_glyph): Rewrite code which used one of the sorting
1288 functions.
1289 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001290
Werner Lembergd898aed2006-08-29 09:50:34 +000012912006-08-29 Dr. Werner Fink <werner@suse.de>
1292
1293 * configure: Make it possible to handle configure options which
1294 have strings containing spaces.
1295
12962006-08-27 David Turner <david@freetype.org>
1297
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001298 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1299 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1300 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1301
1302 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1303 src/truetype/truetype.c, src/truetype/ttdriver.c,
1304 src/truetype/ttgload.c, src/truetype/ttgload.h,
1305 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1306 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1307 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1308
1309 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1310 member `force_autohint'.
1311
1312 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1313
1314 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1315 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001316
Jens Claudiusa787f452006-08-27 11:26:18 +000013172006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1318
1319 Fix miscellaneous compiler warnings.
1320
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001321 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1322 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001323
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001324 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1325 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1326 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001327
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001328 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1329 volatileness of argument to ft_longjmp. Spotted by Werner
1330 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001331
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001332 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1333 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001334
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001335 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1336 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001337
Werner Lembergc4c35b72006-08-27 08:03:46 +000013382006-08-27 Werner Lemberg <wl@gnu.org>
1339
1340 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1341 Reported by Jens.
1342
Jens Claudius088e44e2006-08-22 14:24:30 +000013432006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001344
Jens Claudius088e44e2006-08-22 14:24:30 +00001345 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001346 about addresses of volatile objects passed as function arguments as
1347 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001348
Werner Lembergc4c35b72006-08-27 08:03:46 +00001349 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1350 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001351
1352 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1353 argument `table' a pointer to a volatile object.
1354
1355 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1356 argument `table' a pointer to a volatile object.
1357
Jens Claudius2652bd52006-08-18 17:20:37 +000013582006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1359
1360 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1361 variable `_sfnt' as volatile since it must keep its value across
1362 a call to ft_setjmp.
1363 (gxv_validate): Same for local variables `memory' and `valid'.
1364 (classic_kern_validate): Same for local variables `memory',
1365 `ckern', and `valid'.
1366
1367 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1368 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1369 `jstf', and 'valid'.
1370
1371 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1372 local variable `cmap'.
1373
David Turner9fbfc6a2006-08-16 09:11:31 +000013742006-08-16 David Turner <david@freetype.org>
1375
Werner Lemberg12342992006-08-19 11:18:09 +00001376 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1377 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001378
Werner Lemberg12342992006-08-19 11:18:09 +00001379 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1380 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001381
David Turner33f5f242006-08-16 16:50:55 +00001382
Werner Lemberg12342992006-08-19 11:18:09 +00001383 Improvements to native TrueType hinting. This is a first try,
1384 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1385
1386 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1387 `extra_points2'.
1388
1389 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1390 `orus'.
1391
1392 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1393 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1394 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1395 handle `extra_points2'.
1396
1397 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1398 Remove compiler warning.
1399 (cur_to_arg): Remove macro.
1400 (TT_Hint_Glyph): Updated.
1401 (TT_Process_Simple_Glyph): Handle `orus'.
1402
1403 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1404 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1405 (LOC_Ins_IUP): Renamed to...
1406 (IUP_WorkerRec): This.
1407 Add `orus' member.
1408 (Shift): Renamed to...
1409 (_iup_worker_shift): This.
1410 Updated.
1411 (Interp): Renamed to...
1412 (_iup_worker_interpolate): This.
1413 Updated to handle `orus'.
1414 (Ins_IUP): Updated.
1415
1416 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1417 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001418
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014192006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1420
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001421 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001422 build ftvalid in ft2demos. This has been inadvertedly changed
1423 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001424
14252006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1426
Werner Lemberg12342992006-08-19 11:18:09 +00001427 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1428 Jens:
1429 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001430
Werner Lemberg12342992006-08-19 11:18:09 +00001431 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1432 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001433
1434 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1435
Jens Claudius9950adc2006-08-13 12:14:36 +000014362006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1437
Werner Lemberg12342992006-08-19 11:18:09 +00001438 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1439 T1_TOKEN_TYPE_KEY.
1440 (T1_FieldRec): Add `dict'.
1441 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1442 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1443 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001444
Werner Lemberg12342992006-08-19 11:18:09 +00001445 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1446 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001447
1448 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1449
1450 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001451 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1452 not T1_TOKEN_TYPE_ANY.
1453 (ps_parser_load_field): Make sure a token that should be a string or
1454 name is really a string or name.
1455 Avoid memory leak if a keyword has been already encountered and its
1456 value is overwritten.
1457 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1458 T1_FIELD_XXX.
1459 (parse_dict): Ignore keywords that occur in the wrong dictionary
1460 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001461
Werner Lemberg12342992006-08-19 11:18:09 +00001462 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1463 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001464
Werner Lemberg12342992006-08-19 11:18:09 +00001465 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1466 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001467
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014682006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1469
1470 Move creation of field `buildchar' of T1_DecoderRec out of
1471 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1472 of it.
1473
1474 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1475 and `T1_Compute_Max_Advance'.
1476
1477 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1478 Remove field `face', add `len_buildchar'.
1479
1480 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1481 field `buildchar'.
1482
1483 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1484 finisher for T1_Decoder.
1485 (cid_slot_load_glyph): Do not ignore failure when initializing the
1486 T1_Decoder.
1487
1488 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1489 Updated.
1490 (t1_decoder_init): Remove initialization of fields `buildchar' and
1491 `len_buildchar'.
1492 (t1_decoder_done): Remove deallocation of field `buildchar'.
1493
1494 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1495 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1496 T1_Decoder.
1497 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1498 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1499 case of error.
1500
1501 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1502 `buildchar' of T1_FaceRec.
1503
1504 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1505 `buildchar' of T1_FaceRec.
1506
Werner Lemberg1a380e02006-07-14 18:28:08 +000015072006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1508
1509 * freetype2/include/freetype/internal/psaux.h: New macros
1510 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1511 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1512 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1513 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1514 (T1_DecoderRec): New fields `buildchar' and `face'.
1515 (IS_PS_TOKEN): New macro.
1516
1517 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1518 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1519
1520 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1521 `default_design_vector' and `num_default_design_vector'.
1522
1523 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1524 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1525 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1526
1527 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1528 `token' argument to be NULL if we want only to count the number of
1529 tokens.
1530 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1531 want to skip the array.
1532 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1533 want to skip the array.
1534
1535 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1536 support for (partially commented out) othersubrs 19-25, 27, and 28.
1537 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1538 (t1_decoder_done): Release new field `buildchar'.
1539
1540 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1541 functions.
1542 (t1_keywords): Register them.
1543 (t1_allocate_blend): Updated.
1544 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1545 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1546 (parse_dict): Remove `keyword_flags' argument.
1547 Use new macro IS_PS_TOKEN.
1548 Changed function so that later PostScript definitions override
1549 earlier ones.
1550 (t1_init_loader): Initialize new field `keywords_encountered'.
1551 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1552 `len_buildchar'.
1553 Remove `keywords_flags'.
1554
1555 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1556 `keywords_encountered'.
1557 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1558
1559 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1560 New entries for parsing /NDV, /CDV, and /DesignVector.
1561
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015622006-07-07 Werner Lemberg <wl@gnu.org>
1563
1564 Add many checks to protect against malformed PCF files.
1565
1566 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1567 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1568
1569 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1570 data and check that tables don't overlap (using a simple
1571 bubblesort).
1572 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1573 New macros which give the size of data structures in the data
1574 stream.
1575 (pcf_get_properties): Use rough estimates to get array size limits.
1576 Assign `face->nprops' and `face->properties' earlier so that a call
1577 to PCF_Face_Done can do the clean-up in case of error.
1578 Protect against invalid string offsets.
1579 (pcf_get_metrics): Clean up code.
1580 Adjust tracing message levels.
1581 Use rough estimate to get array size limit.
1582 (pcf_get_bitmaps): Clean up code.
1583 Adjust tracing message levels.
1584 Use rough estimates to get offset limits.
1585 (pcf_get_encodings): Adjust tracing message level.
1586 (pcf_get_accel): Clean up code.
1587
Werner Lemberg8eb05252006-06-27 06:20:01 +000015882006-06-26 Werner Lemberg <wl@gnu.org>
1589
1590 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1591 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1592
Werner Lemberg24703f82006-06-26 19:12:51 +000015932006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1594
1595 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1596 (t1_decoder_parse_charstrings): Operator with
1597 opcode 15 pops its two arguments.
1598 Handle the case where the pops of an othersubr may be part of a
1599 subroutine.
1600 Handle unknown othersubrs gracefully: count their operands and let
1601 the following pop operators push the operands as the results onto
1602 the Type1 stack.
1603 Improve handling of setcurrentpoint opcode.
1604
Werner Lembergc011f4c2006-06-26 09:40:00 +000016052006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1606
1607 The Type 1 parser now skips over top-level procedures as required
1608 for a `Simplified Parser'. This makes the parser more robust as it
1609 doesn't poke around in PostScript code. Additionally, it makes the
1610 FontDirectory hackery in src/type1/t1load.c unnecessary.
1611
1612 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1613 (skip_literal_string): Add FT_Error as return value.
1614 Handle escapes better.
1615 (skip_string): Add FT_Error as return value.
1616 Don't set `parser->error' but return error code directly.
1617 (skip_procedure): New function.
1618 (ps_parser_skip_PS_token): Handle procedures.
1619 Update code.
1620 (ps_parser_to_token): Update code.
1621 (ps_parser_load_field_table): Handle bbox entries also.
1622
1623 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1624 Add commented-out code for synthetic fonts.
1625
Werner Lemberga2da05c2006-06-25 06:27:27 +000016262006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1627
1628 Fix two hinting bugs as reported in
1629 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1630
1631 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1632 `first_point' member.
1633
1634 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1635 `first_point'.
1636 (TT_Process_Composite_Glyph): Always untouch points.
1637
1638 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1639 `first_point' and `last_point' in case of composite glyphs.
1640 (Ins_IUP): Fix computation of `end_point'.
1641
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016422006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1643
Werner Lembergef3d2c22006-06-25 06:07:14 +00001644 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1645 Mac. The original patch was written by David Sachitano and Lawrence
1646 Coopet, and modified by Sean McBride for MPW compatibility. Only
1647 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001648
Werner Lembergef3d2c22006-06-25 06:07:14 +00001649 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1650 Mac OS X platforms.
1651 (OS_INLINE): Undefine before definition.
1652 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1653 FontAssociation table in FOND resource.
1654 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1655 and fontSize at each entry of FontAssociation table in FOND
1656 resource.
1657 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1658 ffStylOff of FamilyRecord header of FOND resource, the header,
1659 fontSize, fontID at each entry of FontAssociation table, and
1660 StyleMapping table.
1661 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001662
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016632006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1664
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001665 Public API of TrueTypeGX, OpenType, and classic kern table validator
1666 should return `FT_Err_Unimplemented_Feature' if validation service
1667 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001668 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001669 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1670
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001671 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1672 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1673 unavailable.
1674 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1675 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001676
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001677 * src/base/ftotval.c (FT_OpenType_Validate): Return
1678 FT_Err_Unimplemented_Feature if OpenType validation service is
1679 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001680
Werner Lembergb10e45a2006-06-08 07:32:56 +000016812006-06-08 Werner Lemberg <wl@gnu.org>
1682
1683 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1684 errors.
1685
David Turner5f1f7502006-06-07 05:11:50 +000016862006-06-07 David Turner <david@freetype.org>
1687
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001688 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1689 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1690 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001691
David Turner457b4a82006-06-06 08:14:14 +000016922006-06-06 David Turner <david@freetype.org>
1693
Werner Lemberg4836f952006-06-06 12:54:08 +00001694 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001695
Werner Lemberg4836f952006-06-06 12:54:08 +00001696 We change `ps_unicodes_init' so that it also takes a
1697 `free_glyph_name' callback to release the glyph names returned by
1698 `get_glyph_name'
1699
1700 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1701 Renamed to ...
1702 (PS_GetGlyphNameFunc): This.
1703 (PS_FreeGlyphNameFunc): New typedef.
1704 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1705
1706 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1707 argument.
1708 (cff_sid_free_glyph_name): New function.
1709 (cff_cmap_unicode_init): Updated.
1710
1711 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1712
1713 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1714 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001715
1716
David Turner09717352006-06-04 14:33:08 +000017172006-06-04 David Turner <david@freetype.org>
1718
Werner Lembergd724f202006-06-04 15:17:41 +00001719 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1720 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001721 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001722
Werner Lembergd724f202006-06-04 15:17:41 +00001723 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1724 of `face->num_glyphs' which missed the last glyph, due to
1725 the offset-by-1 computation, since the PFR format doesn't
1726 guarantee that glyph index 0 corresponds to the `missing
1727 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001728
Werner Lemberg33779662006-05-26 06:30:05 +000017292006-05-25 Werner Lemberg <wl@gnu.org>
1730
1731 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1732 `-no-undefined'. Reported by Christian Biesinger.
1733
Werner Lemberg24773d62006-05-20 08:53:13 +000017342006-05-19 Brian Weed <bw@imaginengine.com>
1735
1736 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1737 have debug information, and debug libraries use `C7 compatible'
1738 debug info.
1739
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017402006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1741
Werner Lemberga6523a62006-05-20 08:47:01 +00001742 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001743 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001744
Werner Lemberga6523a62006-05-20 08:47:01 +00001745 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1746 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001747
1748 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001749 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001750
17512006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1752
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001753 * build/unix/configure.raw: Add a fallback to disable Carbon
1754 dependency, if configured with no options on Mac OS X.
1755
17562006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1757
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001758 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001759 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001760 the second part of Savannah bug #16590.
1761
Werner Lemberg545c4e52006-05-17 22:55:04 +000017622006-05-18 Werner Lemberg <wl@gnu.org>
1763
1764 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1765 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1766
David Turnerdc3ff312006-05-17 12:59:35 +000017672006-05-17 David Turner <david@freetype.org>
1768
Werner Lemberg545c4e52006-05-17 22:55:04 +00001769 This is a major patch used to drastically improve the performance of
1770 loading glyphs. This both speeds up loading the glyph vectors
1771 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001772
Werner Lemberg545c4e52006-05-17 22:55:04 +00001773 We now use inline assembler code with GCC to implement `FT_MulFix',
1774 which is probably the most important function related to the
1775 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001776
Werner Lemberg545c4e52006-05-17 22:55:04 +00001777 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001778
1779
Werner Lemberg545c4e52006-05-17 22:55:04 +00001780 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1781 `cursor' and `limit'.
1782
1783 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1784 New functions.
1785 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1786 [TEST]: Remove.
1787
1788 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1789 code.
1790
1791 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1792 `FT_ZERO'
1793 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1794 (af_glyph_hints_reload: Rewrite recognition of weak points.
1795
1796 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1797 constant values out of the loops.
1798
1799 * src/autofit/aftypes.h: Updated.
1800
1801 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1802
1803 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1804 product to get orientation.
1805
1806 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1807 (FT_Stream_OpenGzip): Use it to handle small files directly in
1808 memory.
1809
1810 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1811 Improve performance.
1812
1813 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1814 `limit'.
1815
1816 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1817 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1818 exceedingly large values of number of contours. Speed up by
1819 reducing the number of loops.
1820
1821 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1822
1823
1824 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1825 used to detect rogue clients from 4 to 16. This is to prevent some
1826 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1827 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001828
Werner Lembergde2d90a2006-05-17 08:54:30 +000018292007-05-17 Werner Lemberg <wl@gnu.org>
1830
1831 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001832 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001833
18342006-05-16 Werner Lemberg <wl@gnu.org>
1835
1836 * docs/PROBLEMS: Updated icl issues.
1837
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001838----------------------------------------------------------------------------
1839
Werner Lemberg42b63b22007-01-21 21:01:33 +00001840Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001841David Turner, Robert Wilhelm, and Werner Lemberg.
1842
1843This file is part of the FreeType project, and may only be used, modified,
1844and distributed under the terms of the FreeType project license,
1845LICENSE.TXT. By continuing to use, modify, or distribute this file you
1846indicate that you have read the license and understand and accept it
1847fully.
1848
1849
1850Local Variables:
1851version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001852coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001853End: