blob: ae1c98ce167f7d1456b6b501664d8323f8d912f5 [file] [log] [blame]
Werner Lemberg3d92f082007-03-06 11:59:24 +000012007-03-05 Werner Lemberg <wl@gnu.org>
2
3 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
4 macro for `strstr'.
5
6 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
7 `trick_names', as suggested by Ivan Nincic.
8
David Turner085bc6e2007-03-05 17:40:03 +000092007-03-05 David Turner <david@freetype.org>
10
Werner Lembergd112cf02007-03-06 12:06:56 +000011 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
12 case FT_Init_FreeType fails for some reason. Problem reported by
13 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000014
Werner Lembergd112cf02007-03-06 12:06:56 +000015 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
16 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
17 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
18 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000019
Werner Lembergd112cf02007-03-06 12:06:56 +000020 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
21 signed values, not unsigned ones. Problem reported by Johannes
22 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000023
David Turner601aefe2007-02-21 16:47:49 +0000242007-02-21 David Turner <david@freetype.org>
25
Werner Lembergde5e6862007-02-25 21:06:43 +000026 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
27 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000028
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000292007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
30
31 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
32 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
33 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
34
Werner Lemberga0915172007-02-16 08:12:50 +0000352007-02-16 Werner Lemberg <wl@gnu.org>
36
37 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
38 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
39
David Turner2c4500e2007-02-14 15:08:47 +0000402007-02-14 David Turner <david@freetype.org>
41
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000042 It seems that the following changes fix most of the known
43 interpreter problems with my fonts, but more testing is needed,
44 though.
45
46 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
47 (TT_MulFix14): Rewrite.
48 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
49 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000050
Werner Lembergc6a14082007-02-12 22:08:15 +0000512007-02-12 Werner Lemberg <wl@gnu.org>
52
53 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
54 warnings.
55
56 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
57 (bdf_interpret_style): Ditto.
58
David Turnerc0f9c4a2007-02-12 14:55:03 +0000592007-02-12 David Turner <david@freetype.org>
60
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000061 Simplify projection and dual-projection code interface.
62
Werner Lemberg406d25f2007-02-12 22:01:18 +000063 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
64 FT_Vector' as argument type.
65 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
66 Updated.
67 (CUR_fast_project, CUR_fast_dualproj): New macros.
68 (Project, Dual_Project, Project_x, Project_y): Updated.
69 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
70 macros.
71
72
73 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
74 adjustments for the non-light auto-hinted modes. Gets rid of
75 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000076
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000077 * src/autofit/aflatin.c (af_latin_hints_link_segments,
78 af_latin_hints_compute_edges): Slight optimization of the segment
79 linker and better handling of serif segments to get rid of broken
80 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000081
David Turnerc0f9c4a2007-02-12 14:55:03 +000082
Werner Lemberg442bfb82007-02-12 21:44:10 +000083 Introduce new string functions and the corresponding macros to get
84 rid of various uses of strcpy and other `evil' functions, as well as
85 to simplify a few things.
86
87 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
88 ft_mem_strcpyn): New declarations.
89 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
90 macros.
91 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
92 functions.
93
94 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
95 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
96 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
97 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
98 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
99 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
100 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
101 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000102
Werner Lemberg406d25f2007-02-12 22:01:18 +0000103 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
104
Werner Lemberg582067d2007-02-11 15:03:05 +00001052007-02-11 Werner Lemberg <wl@gnu.org>
106
107 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
108 non-spacing glyphs.
109
Werner Lemberg8f474532007-02-07 08:31:01 +00001102007-02-07 Tom Parker <palfrey@tevp.net>
111
112 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
113 pointer.
114
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001152007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
116
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000117 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
118 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000119 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000120 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
121 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
122 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
123 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000124
125 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
126 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000127 * builds/mac/ftmac.c: Ditto.
128
1292007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
130
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000131 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000132 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000133 #include <ftmac.c>.
134
1352007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
136
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000137 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
138 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
139 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
140 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
141 FT_GetFilePath_From_Mac_ATS_Name.
142 * builds/mac/ftmac.c: Ditto.
143
1442007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
145
Werner Lembergdcbb7082007-02-08 08:54:09 +0000146 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000147 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
148 for passing to FT_New_Face_From_FSSpec.
149
1502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
151
Werner Lembergdcbb7082007-02-08 08:54:09 +0000152 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000153 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000154
155 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
156 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000157 * builds/mac/ftmac.c (OS_INLINE): Ditto.
158
Werner Lemberg313d7772007-02-01 08:10:45 +00001592007-02-01 Werner Lemberg <wl@gnu.org>
160
161 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
162 Explain why applications shouldn't use it. Found by Alexei.
163
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001642007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000165
166 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
167 message.
168
169 * src/gxvalid/gxvmort1.c
170 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
171 message.
172
Werner Lemberg53935932007-01-31 08:53:02 +00001732007-01-31 Werner Lemberg <wl@gnu.org>
174
175
176 * Version 2.3.1 released.
177 =========================
178
179
180 Tag sources with `VER-2-3-1-FINAL'.
181
182 * builds/win32/visualc/freetype.dsp,
183 builds/win32/visualc/freetype.vcproj: s/230/231/.
184 * builds/win32/visualc/index.html: s/221/231/.
185
186 * vms_make.com: Add `ftgasp'.
187
David Turnera7ee6082007-01-30 10:33:53 +00001882007-01-30 David Turner <david@freetype.org>
189
Werner Lemberg53935932007-01-31 08:53:02 +0000190 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000191
Werner Lemberg53935932007-01-31 08:53:02 +0000192 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000193
Werner Lemberg53935932007-01-31 08:53:02 +0000194 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
195 s/2.3.0/2.3.1/.
196
197 * builds/unix/configure.raw (version_info): Set to 9:12:3.
198
199
200 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
201 (af_loader_load_g): Disable the warper (i.e., the light hinting
202 improvements) to make a 2.3.1 bugfix release before introducing a
203 new feature. This should give us more time to tune and improve the
204 warper for the next release.
205
206 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000207
David Turnerd91eebd2007-01-26 15:05:41 +00002082007-01-25 David Turner <david@freetype.org>
209
Werner Lembergbf241762007-01-26 16:08:49 +0000210 For light auto-hinting, improve glyph advance widths and resurrect
211 normal/full hinting to its normal quality.
212
213 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
214 and `xmax_delta'.
215 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
216 and `xmax_delta'.
217
218 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
219 preprocessor conditional with if-clause, handling both light and
220 normal mode.
221
222 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
223 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000224
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002252007-01-25 Werner Lemberg <wl@gnu.org>
226
227 * docs/release: Updated -- Savannah uses a new uploading scheme.
228
David Turnera42567b2007-01-25 12:23:37 +00002292007-01-25 David Turner <david@freetype.org>
230
Werner Lembergd7855662007-01-25 13:53:56 +0000231 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000232
Werner Lembergd7855662007-01-25 13:53:56 +0000233 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
234 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
235 functions.
David Turnera42567b2007-01-25 12:23:37 +0000236
Werner Lembergd7855662007-01-25 13:53:56 +0000237 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000238
Werner Lembergb1be9e82007-01-25 11:50:00 +00002392007-01-25 Werner Lemberg <wl@gnu.org>
240
241 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000242 correctly in a sanity check. Since this function is only used to
243 load local and global functions, any charstring that called the last
244 local/global function would fail otherwise. This fixes Savannah bug
245 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000246
247 * docs/CHANGES: Document it.
248
David Turnerb6de8d12007-01-23 15:51:50 +00002492007-01-23 David Turner <david@freetype.org>
250
Werner Lembergb1be9e82007-01-25 11:50:00 +0000251 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
252 prevented compilation when disabling both the unpatented and the
253 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000254
Werner Lembergb1be9e82007-01-25 11:50:00 +0000255
256 Fix and enable the warper to improve `light' hinting mode. This is
257 not necessarily a final version, but it seems to work well.
258
259 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
260 Disable code.
261 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
262 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
263
264 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
265 (af_warper_compute_line_best): Fix array size of `scores'.
266 (af_warper_compute): Better handling of border cases.
267 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
268 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000269
Werner Lemberg011d1112007-01-21 09:36:00 +00002702007-01-21 Werner Lemberg <wl@gnu.org>
271
Werner Lemberg42b63b22007-01-21 21:01:33 +0000272 * ChangeLog: Split off older entries into...
273 * ChangeLog.22: This new file.
274
2752007-01-21 Werner Lemberg <wl@gnu.org>
276
Werner Lemberg555258f2007-01-21 09:46:37 +0000277 * docs/CHANGES: Document SHZ fix.
278
2792007-01-21 George Williams <gww@silcom.com>
280
281 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
282 points.
283
2842007-01-21 Werner Lemberg <wl@gnu.org>
285
Werner Lemberg011d1112007-01-21 09:36:00 +0000286 * src/sfnt/ttmtx.c (tt_face_get_metrics)
287 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
288
Werner Lemberg87a5a432007-01-17 12:44:39 +00002892007-01-17 Werner Lemberg <wl@gnu.org>
290
Werner Lembergb8003292007-01-17 12:56:25 +0000291
292 * Version 2.3.0 released.
293 =========================
294
295
296 Tag sources with `VER-2-3-0-FINAL'.
297
2982007-01-17 Werner Lemberg <wl@gnu.org>
299
Werner Lemberg87a5a432007-01-17 12:44:39 +0000300 * docs/release: Updated.
301
David Turner22122722007-01-16 20:06:44 +00003022007-01-16 David Turner <david@freetype.org>
303
Werner Lemberg87a5a432007-01-17 12:44:39 +0000304 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
305 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
306 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
307 warnings.
David Turner22122722007-01-16 20:06:44 +0000308
Werner Lemberg267e1d72007-01-15 07:48:09 +00003092007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
310
311 * builds/amiga/makefile, builds/amiga/makefile.os4,
312 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
313
314 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
315
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003162007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
317
318 Fix various compiler warnings.
319
320 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
321 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
322 s/index/strike_index/.
323 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
324
325 * src/gxvalid/gxvmorx5.c
326 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
327
328 * src/truetype/ttinterp.c (Compute_Point_Displacement),
329 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
330 uninitialized variables.
331
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003322007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
333
334 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
335
Werner Lemberg281c1482007-01-13 22:50:51 +00003362007-01-13 Werner Lemberg <wl@gnu.org>
337
338 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
339 versions up to 0x3FF without complaining.
340
Werner Lembergac250b22007-01-13 14:01:36 +00003412007-01-13 Derek Clegg <dclegg@apple.com>
342
343 Add FT_Get_PS_Font_Info interface to CFF driver.
344
345 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
346 (CFF_FontRec): Add `font_info' field.
347
348 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
349 (cff_font_done): Free font->font_info if necessary.
350
351 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
352 (cff_service_ps_info): Register cff_ps_get_font_info.
353
Werner Lemberg23df31a2007-01-13 08:45:00 +00003542007-01-13 Werner Lemberg <wl@gnu.org>
355
356 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
357 with C++ compiler.
358
359 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
360 af_glyph_hints_dump_edges): Ditto.
361
362 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
363 `modules.cfg').
364
365 * src/sfnt/ttsbit0.h: Remove.
366
367 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
368
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003692007-01-12 David Turner <david@freetype.org>
370
371 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
372 bug in the bitmap emboldener if the pitch of the source bitmap is
373 much larger than its width.
374
375 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
376 compilation warning.
377
Werner Lemberg6d96d312007-01-12 10:30:19 +00003782007-01-12 Werner Lemberg <wl@gnu.org>
379
380 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
381 `automake' CVS module from sources.redhat.com.
382
Werner Lemberg17432b52007-01-12 09:28:44 +00003832007-01-11 Werner Lemberg <wl@gnu.org>
384
385 * src/type1/t1load.c (is_space): Removed.
386 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
387 (parse_charstrings): Use IS_PS_TOKEN.
388
389
390 * autogen.sh: Avoid bash specific syntax.
391
David Turner038ace22007-01-11 15:00:59 +00003922007-01-11 David Turner <david@freetype.org>
393
Werner Lemberg17432b52007-01-12 09:28:44 +0000394 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000395
Werner Lemberg17432b52007-01-12 09:28:44 +0000396 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000397
Werner Lemberg17432b52007-01-12 09:28:44 +0000398 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
399 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000400 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000401
Werner Lemberg17432b52007-01-12 09:28:44 +0000402 * autogen.sh: Small fix to get it working on Mac OS X properly:
403 The issue is that GNU libtool is called `glibtool' on this platform,
404 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000405
David Turner2628ea92007-01-10 13:15:56 +00004062007-01-10 David Turner <david@freetype.org>
407
Werner Lemberg17432b52007-01-12 09:28:44 +0000408 * all-sources: Tag all sources with VER-2-3-0-RC1 and
409 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000410
Werner Lemberg17432b52007-01-12 09:28:44 +0000411 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
412 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
413 version number to 2.3.0.
414
415 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
416 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000417
418 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000419 include/freetype/ftlcdfil.h: Update reference documentation with
420 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000421
Werner Lemberg17432b52007-01-12 09:28:44 +0000422 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
423 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000424
Werner Lembergbf02d392007-01-10 07:07:37 +00004252007-01-10 Derek Clegg <dclegg@apple.com>
426
427 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
428 values.
429
David Turnerf48b60e2007-01-08 15:15:32 +00004302007-01-08 David Turner <david@freetype.org>
431
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000432 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000433
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000434 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
435 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000436 corresponding to a given character pixel size.
437
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000438 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
439 `gasp' table, in order to avoid potential problems with later
440 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000441
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000442 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
443 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000444
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000445 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
446 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
447 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
448 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000449
Werner Lemberge6b6f372007-01-07 00:06:47 +00004502007-01-07 Werner Lemberg <wl@gnu.org>
451
Werner Lembergb8004d22007-01-07 09:13:38 +0000452 * src/cid/cidparse.c (cid_parser_new): Improve error message for
453 Type 11 fonts.
454 Scan for `/sfnts' token.
455
4562007-01-07 Werner Lemberg <wl@gnu.org>
457
458 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000459
Werner Lembergbe5f7972007-01-06 07:51:48 +00004602007-01-06 Werner Lemberg <wl@gnu.org>
461
462 * src/cff/cffload.c (cff_index_init): Remove unused variable.
463 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
464
David Turnera8cf42b2007-01-04 16:46:46 +00004652007-01-04 David Turner <david@freetype.org>
466
Werner Lembergf6294392007-01-06 07:47:45 +0000467 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
468 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000469
Werner Lembergf6294392007-01-06 07:47:45 +0000470
471 Do not allocate interpreter-specific tables in memory if we are not
472 going to load glyphs with the bytecode interpreter anyway.
473
474 * src/truetype/ttgload.c (tt_loader_init): Load execution context
475 only if glyph is hinted.
476 Updated.
477 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
478 and `cvs_ready'.
479 Add `tt_size_ready_bytecode' declaration.
480 * src/truetype/ttobjs.c (tt_size_done_bytecode,
481 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
482 (tt_size_init): Move most code into `tt_size_init_bytecode'.
483 (tt_size_done): Move most code into `tt_size_done_bytecode'.
484 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000485
David Turner91a34022007-01-05 14:47:08 +0000486
Werner Lembergf6294392007-01-06 07:47:45 +0000487 Don't extract the metrics table from the SFNT font file. Instead,
488 reparse it on each glyph load. The runtime difference is not
489 noticeable, and it can save a lot of heap memory when memory-mapped
490 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000491
Werner Lembergf6294392007-01-06 07:47:45 +0000492 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
493 `horz_metrics_offset' and `vert_metrics_ofset'.
494 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
495 Updated.
496
497
498 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
499
500
501 Do not load the CFF index offsets into memory, since this wastes a
502 *lot* of heap memory with large Asian CFF fonts. There is no
503 significant performance loss.
504
505 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
506 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
507 `data_size'.
508 (CFF_CharsetRec): Add field `num_glyphs'.
509
510 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
511 cff_charset_cid_to_gindex): New functions.
512 (cff_new_index): Renamed to...
513 (cff_index_init): This. Update all callers.
514 Updated -- some code has been moved to `cff_index_load_offsets'.
515 (cff_done_index): Renamed to...
516 (cff_index_done): This. Update all callers.
517 (cff_index_get_pointers, cff_index_access_element): Updated to use
518 stream offsets.
519 (cff_charset_compute_cids): Set `num_glyphs' field.
520 (cff_encoding_load): Updated.
521
522 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000523
5242007-01-04 David Turner <david@freetype.org>
525
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000526 * docs/INSTALL.UNIX: Simplify some parts, add reference to
527 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000528
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000529 * README.CVS: Add common problem description and solution
530 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000531
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000532 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000533
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000534 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000535
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000536 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000537
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000538 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
539 (TWorker): This.
540 Remove `count_table' and `memory'.
541 Make `grays' a pointer.
542 (TRaster): New structure.
543 (count_table): New static array.
544 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
545 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
546 ft_black_set_mode, ft_black_render): Updated.
547 (ft_black_init): Don't initialize `count_table'.
548 (ft_black_reset): Use the render pool. This saves about 6KB of
549 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000550
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000551 * src/smooth/ftgrays.c (TRaster): Replaced with...
552 (TWorker): This.
553 Remove `memory'.
554 (TRaster): New structure.
555
556 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
557 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
558 gray_render_span, gray_raster_render): Updated.
559 (gray_raster_reset): Use the render pool. This saves about 6KB of
560 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000561
David Turner8a6c44e2007-01-04 17:03:11 +0000562 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
563 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000564 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
565 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
566 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000567
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000568 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
569 Remove a typo that results in no hinting and a memory leak with some
570 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000571
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000572 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000573 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000574 CFF_Faces in it. We need to close all faces before destroying the
575 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000576
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005772007-01-02 Werner Lemberg <wl@gnu.org>
578
579 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
580 Remove compiler warning.
581
David Turner9207e002007-01-02 16:58:13 +00005822007-01-02 David Turner <david@freetype.org>
583
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000584 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000585
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005862006-12-31 Masatake YAMATO <jet@gyve.org>
587
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000588 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
589 function.
590 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000591 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000592 `gxv_kern_subtable_fmt0_pairs_validate'.
593
David Turner115b4422006-12-22 11:37:05 +00005942006-12-22 David Turner <david@freetype.org>
595
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000596 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
597 warnings.
David Turner115b4422006-12-22 11:37:05 +0000598
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000599 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
600 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000601
Werner Lemberg4755bf72006-12-16 08:58:44 +00006022006-12-16 Anders Kaseorg <anders@kaseorg.com>
603
604 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
605 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
606
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006072006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
608
Werner Lemberg9b774e22007-01-16 06:11:27 +0000609 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000610 sync with the modification by Jens Claudius on 2006-08-22; cf.
611 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 +0000612
6132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
614
615 * src/base/ftmac.c: Specialized for Mac OS X only.
616 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
617 * builds/unix/configure.raw: Ditto. When explicit switches for
618 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
619 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
620
6212006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
622
623 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
624 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
625 instead of src/base/ftmac.c
626 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
627 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
628 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
629 that cannot be built at present.
630
6312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
632
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000633 * src/base/ftobjs.c: Improvement of resource fork handler for
634 POSIX, cf.
635 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000636 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
637 format or .dfont, to simulate the face index number counted by ftmac.c.
638 (IsMacResource): Return the number of scalable faces correctly.
639
Werner Lembergec5b4502006-12-10 07:51:38 +00006402006-12-10 Werner Lemberg <wl@gnu.org>
641
642 * builds/toplevel.mk (version): Protect against `distclean' target.
643
Werner Lembergb26b3142006-12-09 20:01:43 +00006442006-12-09 Werner Lemberg <wl@gnu.org>
645
646 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
647 or `type'.
648
649 * builds/freetype.mk (version): Extracted from freetype.h, using
650 GNU make's built-in string functions.
651 (refdoc): Use $(version) instead of static version number.
652
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006532006-12-08 Werner Lemberg <wl@gnu.org>
654
655 * builds/toplevel.mk (dist): Extract version number from freetype.h.
656
Werner Lemberg15c29502006-12-09 07:29:54 +00006572006-12-08 Vladimir Volovich <vvv@vsu.ru>
658
659 * src/tools/apinames (State): Remove final comma in structure -- xlc
660 v5 under AIX 4.3 doesn't like this.
661
David Turnerdbf3b432006-12-07 21:18:09 +00006622006-12-07 David Turner <david@freetype.org>
663
Werner Lemberg256a3512006-12-08 06:49:33 +0000664 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
665 to the spacing of auto-fitted glyphs. This only impacts rare
666 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000667
Werner Lemberg11171312006-12-03 09:43:40 +00006682006-12-03 Werner Lemberg <wl@gnu.org>
669
670 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
671
Werner Lemberg960ba592006-12-01 08:20:47 +00006722006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000673
Werner Lemberg960ba592006-12-01 08:20:47 +0000674 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
675 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
676 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000677
David Turner80658e52006-11-28 08:09:20 +0000678
Werner Lemberg960ba592006-12-01 08:20:47 +0000679 * include/freetype/ftxf86.h: Fix and extend comment so that it
680 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000681
Werner Lemberg960ba592006-12-01 08:20:47 +0000682 * include/freetype/ftchapters.h: Add `font_format' section.
683
684
685 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
686 to TOC in index page.
687
6882006-11-28 David Turner <david@freetype.org>
689
690 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
691 trying to render into a zero-width/height bitmap, not an error code.
692
693 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
694
695 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
696 ones instead.
697
698 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
699 variable.
David Turner80658e52006-11-28 08:09:20 +0000700
Werner Lemberg8636c292006-11-26 22:28:13 +00007012006-11-26 Pierre Hanser <hanser@club-internet.fr>
702
703 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
704
Werner Lemberg960ba592006-12-01 08:20:47 +00007052006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000706
Werner Lemberg960ba592006-12-01 08:20:47 +0000707 * src/autofit/afhints.c (af_glyph_hints_dump_points,
708 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
709 Add stubs to link the `ftgrid' test program when debugging is
710 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000711
Werner Lemberg960ba592006-12-01 08:20:47 +00007122006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000713
714 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000715 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
716
717 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
718 Emit more sensible information.
719
720 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
721
722 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
723 rounding of blue values.
724 (af_latin_hints_compute_segments): Hint segment heights.
725 (af_latin_hints_link_segments): Reduce `len_score' value.
726 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
727 value and use `height' member for comparisons.
728 (af_latin_hint_edges): Extend logging message.
729 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000730
Werner Lemberg91959bf2006-11-22 10:36:55 +00007312006-11-22 Werner Lemberg <wl@gnu.org>
732
733 Fix Savannah bug #15553.
734
735 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
736 program after a change from mono to grayscaling (and vice versa).
737 Use correct constant for comparison to get `exec->grayscale'.
738
Werner Lemberg913a3652006-11-19 09:19:17 +00007392006-11-18 Werner Lemberg <wl@gnu.org>
740
741 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000742 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000743 This patch fixes Savannah bug #18301.
744
745 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
746 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
747 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
748 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
749 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
750 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
751 (FNT_Load_Glyph): Check validity of `glyph_index'.
752
David Turner7bab6ae2006-11-13 11:25:06 +00007532006-11-13 David Turner <david@freetype.org>
754
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000755 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
756 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000757
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000758 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
759 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
760 when building the library to change the default LCD filter to be
761 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000762
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000763 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000764
David Turner8765c712006-11-10 16:49:42 +00007652006-11-10 David Turner <david@freetype.org>
766
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000767 * src/smooth/ftsmooth.c: API change for the LCD
768 filter. The FT_LcdFilter value is an enumeration describing which
769 filter to apply, with new values FT_LCD_FILTER_LIGHT and
770 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
771 algorithm which produces strong color fringes for everything
772 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000773
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000774 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
775 second parameter to an enum type.
776
777 * src/base/ftlcdfil.c (USE_LEGACY): Define.
778 (_ft_lcd_filter): Rename to...
779 (_ft_lcd_filter_fir): This.
780 Update parameters.
781 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
782 (FT_Library_Set_LcdFilter): Update parameters.
783 Handle new filter modes.
784
785 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
786 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
787 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
788 callback and update other fields.
789
790 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
791 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
792 Other minor improvements.
793
794 * src/autofit/aflatin.c: Various tiny improvements that drastically
795 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
796 (af_latin_hints_compute_edges): Fix typo.
797 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000798
David Turner4e9cc3c2006-11-09 16:31:52 +00007992006-11-09 David Turner <david@freetype.org>
800
Werner Lemberg49c77a82006-11-09 21:51:57 +0000801 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
802 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000803
Werner Lemberg5e430892006-11-07 09:35:03 +00008042006-11-07 Zhe Su <james.su@gmail.com>
805
806 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
807 also.
808
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008092006-11-03 Werner Lemberg <wl@gnu.org>
810
811 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
812
David Turner40604742006-11-02 16:37:35 +00008132006-11-02 David Turner <david@freetype.org>
814
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000815 Add a few tweaks to better handle serif fonts.
816 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000817
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000818 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
819 segments that are less than 1.5 pixels high. This gets rid of
820 *many* corner cases with serifs.
821 (af_latin_align_linked_edge): Add logging message.
822 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
823 Add logging messages.
824 Handle AF_EDGE_FLAG flag specially.
825
826 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
827 _af_debug_disable_blue_hints, and _af_debug_hints variables.
828
829 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
830 Update external declarations.
831 (af_corner_orientation, af_corner_is_flat): Replaced by...
832
833 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
834 ft_corner_is_flat): These declarations.
835
836 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
837 Comment out. Replaced by...
838
839 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
840 These functions. Update all callers.
841 (FT_Add64) [!FT_LONG64]: Simplify.
842
843 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
844 (af_direction_compute): Add a missing FT_ABS call. This bug caused
845 production of garbage by missing lots of segments.
846
847 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
848
849 * src/autofit/afloader.c (af_loader_init, af_loader_done)
850 [AF_DEBUG]: Set _af_debug_hints.
851
852
853 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
854 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
855 and ft_corner_orientation.
856
857
858 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000859
Werner Lemberge88c5262006-10-24 05:46:26 +00008602006-10-24 Werner Lemberg <wl@gnu.org>
861
862 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
863
864 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
865 as argument.
866
David Turnera1861392006-10-23 16:00:59 +00008672006-10-23 Zhe Su <zsu@novell.com>
868
Werner Lemberg715e96e2006-10-24 05:28:45 +0000869 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
870 better deal with broken Asian fonts with strange glyphs, having
871 self-intersections and other peculiarities. The used algorithm is
872 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000873
David Turnere140f142006-10-23 08:56:57 +00008742006-10-23 David Turner <david@freetype.org>
875
Werner Lemberg715e96e2006-10-24 05:28:45 +0000876 Speed up the CFF font loader. With some large CFF fonts,
877 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000878
Werner Lemberg715e96e2006-10-24 05:28:45 +0000879 * src/cff/cffload.c (cff_get_offset): Removed.
880 (cff_new_index): Inline functionality of `cff_get_offset'.
881 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
882 (cff_charset_done): Call `cff_charset_free_cids'.
883 (cff_charset_load): Call `cff_charset_compute_cids'.
884 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
885
886 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
887 with FT_NEXT_XXX.
888
889
890 Speed up the Postscript hinter, with more than 100% speed increase
891 on my machine.
892
893 * src/pshinter/pshalgo.c (psh_corner_is_flat,
894 psh_corner_orientation): New functions.
895 (psh_glyph_compute_inflections): Merge loops for efficiency.
896 Use `psh_corner_orientation'.
897 (psh_glyph_init): Use `psh_corner_is_flat'.
898 (psh_hint_table_find_strong_point): Renamed to...
899 (psh_hint_table_find_strong_points): This.
900 Rewrite, adding argument to handle all points at once.
901 Update all callers.
902 (PSH_MAX_STRONG_INTERNAL): New macro.
903 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000904
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009052006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
906
907 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000908 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000909
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009102006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
911
912 * docs/INSTALL.CROSS: New document file for cross-building.
913
914 * builds/unix/configure.raw: Preliminary cross-building support.
915 Find native C compiler and pass it by CC_BUILD, and
916 find suffix for native executable and pass it by EXEEXT_BUILD.
917 Also suffix for target executable is passed by EXEEXT.
918
Werner Lembergb9e6d692006-10-15 08:58:40 +0000919 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
920 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000921 CC_BUILD and EXEEXT_BUILD.
922
Werner Lembergb9e6d692006-10-15 08:58:40 +0000923 * builds/exports.mk (APINAMES_EXE): Change the extension for
924 apinames from the suffix for target (E) to that for building host
925 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000926
Werner Lemberg82a07e92006-10-12 06:20:44 +00009272006-10-12 Werner Lemberg <wl@gnu.org>
928
929 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
930 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
931 which reference those files.
932
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009332006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
934
Werner Lembergb9e6d692006-10-15 08:58:40 +0000935 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
936 embedded in freetype2.pc and freetype-config. Use it to record
937 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000938
939 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
940
941 * builds/unix/freetype-config.in: Ditto.
942
Werner Lemberg28e17d92006-10-11 17:27:47 +00009432006-10-11 Werner Lemberg <wl@gnu.org>
944
945 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
946 development.
947
Jens Claudius336d2292006-10-03 08:53:37 +00009482006-10-03 Jens Claudius <jens.claudius@yahoo.com>
949
950 * include/freetype/config/ftstdlib.h: Cast away volatileness from
951 argument to ft_setjmp.
952
953 * include/freetype/internal/ftvalid.h: Add comment that
954 ft_validator_run must not be used.
955
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009562006-10-01 Werner Lemberg <wl@gnu.org>
957
958 * src/base/ftbase.c: Undo change from 2006-09-30.
959
960 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
961
9622006-09-30 David Turner <david@freetype.org>
963
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000964 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
965 s/unpatented_hinting/ignore_unpatented_hinter/.
966 Update all callers.
967
968 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
969 auto-hinting shall be used or not.
970
971 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000972
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009732006-09-30 Werner Lemberg <wl@gnu.org>
974
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000975 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
976 in use).
977
978 * src/base/ftbase.c: Include `ftlcdfil.c'.
979
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009802006-09-29 Werner Lemberg <wl@gnu.org>
981
982 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
983 overlapping segments. Bug reported by Stefan Koch.
984
David Turnerad830712006-09-27 16:20:59 +00009852006-09-28 David Turner <david@freetype.org>
986
Werner Lemberg2c002e12006-09-29 21:31:53 +0000987 Fix a bug in the automatic unpatented hinting support which prevents
988 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000989
Werner Lemberg2c002e12006-09-29 21:31:53 +0000990 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
991 s/force_autohint/unpatented_hinting/. Update all callers.
992
993 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
994
995 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000996
David Turner8a317cf2006-09-27 07:52:48 +00009972006-09-27 David Turner <david@freetype.org>
998
Werner Lemberg2c002e12006-09-29 21:31:53 +0000999 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001000
David Turner8a317cf2006-09-27 07:52:48 +00001001
David Turnere140f142006-10-23 08:56:57 +00001002 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001003 In a default build, the function `FT_Library_SetLcdFilter' returns
1004 `FT_Err_Unimplemented_Feature'; you need to #define
1005 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1006 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001007
Werner Lemberg2c002e12006-09-29 21:31:53 +00001008 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001009
Werner Lemberg2c002e12006-09-29 21:31:53 +00001010 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1011 typedef.
1012 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1013 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001014
Werner Lemberg2c002e12006-09-29 21:31:53 +00001015 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1016 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001017
Werner Lemberg2c002e12006-09-29 21:31:53 +00001018 Handle subpixel rendering.
1019 Simplify function.
1020 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1021 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1022
1023 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1024 pointing to <freetype/ftlcdfil.h>.
1025
1026 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1027 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1028
1029 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001030
Werner Lemberge20df4a2006-09-27 06:29:21 +000010312006-09-26 David Bustin
1032
1033 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1034 correctly. Reported as Savannah bug #17843.
1035
David Turner6f8c6222006-09-26 15:42:44 +000010362006-09-26 David Turner <david@freetype.org>
1037
Werner Lemberg110246c2006-09-26 21:55:44 +00001038 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1039 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1040 horizontal and vertical hinting for the purpose of debugging the
1041 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001042
Werner Lemberg110246c2006-09-26 21:55:44 +00001043 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1044 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001045
Werner Lemberg110246c2006-09-26 21:55:44 +00001046 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1047
1048 * include/freetype/config/ftoption.h, devel/ftoption.h
1049 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1050 we want to compile LCD-optimized rendering code (à la ClearType) or
1051 not. The macro *must* be disabled in default builds of the library
1052 for patent reasons.
1053
1054 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1055 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1056 isn't defined at compile time. This only changes the content of the
1057 rendered glyph to match the one of normal gray-level rendering,
1058 hence clients should not need to be modified.
1059
1060 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001061
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010622006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1063
1064 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1065 LWFN fails and both are available.
1066
David Turnerf3050052006-09-11 12:00:32 +000010672006-09-11 David Turner <david@freetype.org>
1068
Werner Lembergf9644552006-09-12 13:48:10 +00001069 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1070 report their English names through an Apple Roman
1071 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001072
Werner Lembergf9644552006-09-12 13:48:10 +00001073 If the font uses another name entry with language_id == English, it
1074 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001075
Werner Lembergf9644552006-09-12 13:48:10 +00001076 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1077 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001078
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010792006-09-05 Werner Lemberg <wl@gnu.org>
1080
1081 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001082 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001083 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1084 `HAN NOM B.ttf').
1085
1086 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1087
David Turner772e55d2006-09-05 09:45:15 +000010882006-09-05 David Turner <david@freetype.org>
1089
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001090 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001091
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001092 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1093 (TRaster): Remove `count_ex' and `count_ey'.
1094 (gray_find_cell): Remove 2nd and 3rd argument.
1095 (gray_alloc_cell): Merged with `gray_find_cell'.
1096 (gray_record_cell): Simplify.
1097 (gray_set_cell): Rewrite.
1098 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1099 (gray_render_span): Don't use FT_MEM_SET for small values.
1100 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1101 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1102 bitmap scanline.
1103 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001104
David Turneraa557a92006-09-04 16:42:44 +000011052006-09-04 David Turner <david@freetype.org>
1106
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001107 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1108 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001109
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011102006-09-03 Werner Lemberg <wl@gnu.org>
1111
1112 * devel/ftoption.h: Synchronize with
1113 include/freetype/config/ftoption.h.
1114
1115 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1116 variable declaration.
1117 (gray_convert_glyph): Fix compiler warnings.
1118
David Turner6d79f212006-09-01 14:09:35 +000011192006-09-01 David Turner <david@freetype.org>
1120
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001121 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1122 to recognize a few fonts that require the automatic unpatented
1123 loader.
David Turnerbd502952006-09-01 19:05:24 +00001124
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001125 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1126 rasterizer. The speed improvement is between 15% and 25%, depending
1127 on the font data.
1128
1129 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1130 (TCell): Redefine.
1131 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1132 (gray_init_cells): Updated.
1133 (gray_find_cell, gray_alloc_cell): New functions.
1134 (gray_record_cell): Rewritten to use `gray_find_cell' and
1135 `gray_alloc_cell'.
1136 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1137 QSORT_THRESHOLD):
1138 Removed.
1139 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1140 gray_dump_cells): Removed.
1141 (gray_sweep): Rewritten.
1142 (gray_convert_glyph): Rewrite code which used one of the sorting
1143 functions.
1144 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001145
Werner Lembergd898aed2006-08-29 09:50:34 +000011462006-08-29 Dr. Werner Fink <werner@suse.de>
1147
1148 * configure: Make it possible to handle configure options which
1149 have strings containing spaces.
1150
11512006-08-27 David Turner <david@freetype.org>
1152
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001153 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1154 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1155 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1156
1157 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1158 src/truetype/truetype.c, src/truetype/ttdriver.c,
1159 src/truetype/ttgload.c, src/truetype/ttgload.h,
1160 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1161 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1162 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1163
1164 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1165 member `force_autohint'.
1166
1167 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1168
1169 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1170 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001171
Jens Claudiusa787f452006-08-27 11:26:18 +000011722006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1173
1174 Fix miscellaneous compiler warnings.
1175
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001176 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1177 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001178
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001179 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1180 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1181 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001182
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001183 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1184 volatileness of argument to ft_longjmp. Spotted by Werner
1185 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001186
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001187 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1188 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001189
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001190 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1191 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001192
Werner Lembergc4c35b72006-08-27 08:03:46 +000011932006-08-27 Werner Lemberg <wl@gnu.org>
1194
1195 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1196 Reported by Jens.
1197
Jens Claudius088e44e2006-08-22 14:24:30 +000011982006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001199
Jens Claudius088e44e2006-08-22 14:24:30 +00001200 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001201 about addresses of volatile objects passed as function arguments as
1202 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001203
Werner Lembergc4c35b72006-08-27 08:03:46 +00001204 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1205 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001206
1207 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1208 argument `table' a pointer to a volatile object.
1209
1210 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1211 argument `table' a pointer to a volatile object.
1212
Jens Claudius2652bd52006-08-18 17:20:37 +000012132006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1214
1215 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1216 variable `_sfnt' as volatile since it must keep its value across
1217 a call to ft_setjmp.
1218 (gxv_validate): Same for local variables `memory' and `valid'.
1219 (classic_kern_validate): Same for local variables `memory',
1220 `ckern', and `valid'.
1221
1222 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1223 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1224 `jstf', and 'valid'.
1225
1226 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1227 local variable `cmap'.
1228
David Turner9fbfc6a2006-08-16 09:11:31 +000012292006-08-16 David Turner <david@freetype.org>
1230
Werner Lemberg12342992006-08-19 11:18:09 +00001231 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1232 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001233
Werner Lemberg12342992006-08-19 11:18:09 +00001234 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1235 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001236
David Turner33f5f242006-08-16 16:50:55 +00001237
Werner Lemberg12342992006-08-19 11:18:09 +00001238 Improvements to native TrueType hinting. This is a first try,
1239 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1240
1241 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1242 `extra_points2'.
1243
1244 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1245 `orus'.
1246
1247 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1248 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1249 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1250 handle `extra_points2'.
1251
1252 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1253 Remove compiler warning.
1254 (cur_to_arg): Remove macro.
1255 (TT_Hint_Glyph): Updated.
1256 (TT_Process_Simple_Glyph): Handle `orus'.
1257
1258 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1259 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1260 (LOC_Ins_IUP): Renamed to...
1261 (IUP_WorkerRec): This.
1262 Add `orus' member.
1263 (Shift): Renamed to...
1264 (_iup_worker_shift): This.
1265 Updated.
1266 (Interp): Renamed to...
1267 (_iup_worker_interpolate): This.
1268 Updated to handle `orus'.
1269 (Ins_IUP): Updated.
1270
1271 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1272 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001273
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012742006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1275
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001276 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001277 build ftvalid in ft2demos. This has been inadvertedly changed
1278 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001279
12802006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1281
Werner Lemberg12342992006-08-19 11:18:09 +00001282 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1283 Jens:
1284 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001285
Werner Lemberg12342992006-08-19 11:18:09 +00001286 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1287 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001288
1289 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1290
Jens Claudius9950adc2006-08-13 12:14:36 +000012912006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1292
Werner Lemberg12342992006-08-19 11:18:09 +00001293 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1294 T1_TOKEN_TYPE_KEY.
1295 (T1_FieldRec): Add `dict'.
1296 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1297 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1298 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001299
Werner Lemberg12342992006-08-19 11:18:09 +00001300 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1301 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001302
1303 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1304
1305 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001306 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1307 not T1_TOKEN_TYPE_ANY.
1308 (ps_parser_load_field): Make sure a token that should be a string or
1309 name is really a string or name.
1310 Avoid memory leak if a keyword has been already encountered and its
1311 value is overwritten.
1312 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1313 T1_FIELD_XXX.
1314 (parse_dict): Ignore keywords that occur in the wrong dictionary
1315 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001316
Werner Lemberg12342992006-08-19 11:18:09 +00001317 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1318 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001319
Werner Lemberg12342992006-08-19 11:18:09 +00001320 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1321 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001322
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013232006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1324
1325 Move creation of field `buildchar' of T1_DecoderRec out of
1326 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1327 of it.
1328
1329 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1330 and `T1_Compute_Max_Advance'.
1331
1332 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1333 Remove field `face', add `len_buildchar'.
1334
1335 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1336 field `buildchar'.
1337
1338 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1339 finisher for T1_Decoder.
1340 (cid_slot_load_glyph): Do not ignore failure when initializing the
1341 T1_Decoder.
1342
1343 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1344 Updated.
1345 (t1_decoder_init): Remove initialization of fields `buildchar' and
1346 `len_buildchar'.
1347 (t1_decoder_done): Remove deallocation of field `buildchar'.
1348
1349 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1350 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1351 T1_Decoder.
1352 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1353 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1354 case of error.
1355
1356 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1357 `buildchar' of T1_FaceRec.
1358
1359 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1360 `buildchar' of T1_FaceRec.
1361
Werner Lemberg1a380e02006-07-14 18:28:08 +000013622006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1363
1364 * freetype2/include/freetype/internal/psaux.h: New macros
1365 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1366 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1367 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1368 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1369 (T1_DecoderRec): New fields `buildchar' and `face'.
1370 (IS_PS_TOKEN): New macro.
1371
1372 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1373 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1374
1375 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1376 `default_design_vector' and `num_default_design_vector'.
1377
1378 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1379 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1380 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1381
1382 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1383 `token' argument to be NULL if we want only to count the number of
1384 tokens.
1385 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1386 want to skip the array.
1387 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1388 want to skip the array.
1389
1390 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1391 support for (partially commented out) othersubrs 19-25, 27, and 28.
1392 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1393 (t1_decoder_done): Release new field `buildchar'.
1394
1395 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1396 functions.
1397 (t1_keywords): Register them.
1398 (t1_allocate_blend): Updated.
1399 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1400 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1401 (parse_dict): Remove `keyword_flags' argument.
1402 Use new macro IS_PS_TOKEN.
1403 Changed function so that later PostScript definitions override
1404 earlier ones.
1405 (t1_init_loader): Initialize new field `keywords_encountered'.
1406 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1407 `len_buildchar'.
1408 Remove `keywords_flags'.
1409
1410 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1411 `keywords_encountered'.
1412 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1413
1414 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1415 New entries for parsing /NDV, /CDV, and /DesignVector.
1416
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014172006-07-07 Werner Lemberg <wl@gnu.org>
1418
1419 Add many checks to protect against malformed PCF files.
1420
1421 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1422 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1423
1424 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1425 data and check that tables don't overlap (using a simple
1426 bubblesort).
1427 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1428 New macros which give the size of data structures in the data
1429 stream.
1430 (pcf_get_properties): Use rough estimates to get array size limits.
1431 Assign `face->nprops' and `face->properties' earlier so that a call
1432 to PCF_Face_Done can do the clean-up in case of error.
1433 Protect against invalid string offsets.
1434 (pcf_get_metrics): Clean up code.
1435 Adjust tracing message levels.
1436 Use rough estimate to get array size limit.
1437 (pcf_get_bitmaps): Clean up code.
1438 Adjust tracing message levels.
1439 Use rough estimates to get offset limits.
1440 (pcf_get_encodings): Adjust tracing message level.
1441 (pcf_get_accel): Clean up code.
1442
Werner Lemberg8eb05252006-06-27 06:20:01 +000014432006-06-26 Werner Lemberg <wl@gnu.org>
1444
1445 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1446 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1447
Werner Lemberg24703f82006-06-26 19:12:51 +000014482006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1449
1450 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1451 (t1_decoder_parse_charstrings): Operator with
1452 opcode 15 pops its two arguments.
1453 Handle the case where the pops of an othersubr may be part of a
1454 subroutine.
1455 Handle unknown othersubrs gracefully: count their operands and let
1456 the following pop operators push the operands as the results onto
1457 the Type1 stack.
1458 Improve handling of setcurrentpoint opcode.
1459
Werner Lembergc011f4c2006-06-26 09:40:00 +000014602006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1461
1462 The Type 1 parser now skips over top-level procedures as required
1463 for a `Simplified Parser'. This makes the parser more robust as it
1464 doesn't poke around in PostScript code. Additionally, it makes the
1465 FontDirectory hackery in src/type1/t1load.c unnecessary.
1466
1467 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1468 (skip_literal_string): Add FT_Error as return value.
1469 Handle escapes better.
1470 (skip_string): Add FT_Error as return value.
1471 Don't set `parser->error' but return error code directly.
1472 (skip_procedure): New function.
1473 (ps_parser_skip_PS_token): Handle procedures.
1474 Update code.
1475 (ps_parser_to_token): Update code.
1476 (ps_parser_load_field_table): Handle bbox entries also.
1477
1478 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1479 Add commented-out code for synthetic fonts.
1480
Werner Lemberga2da05c2006-06-25 06:27:27 +000014812006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1482
1483 Fix two hinting bugs as reported in
1484 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1485
1486 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1487 `first_point' member.
1488
1489 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1490 `first_point'.
1491 (TT_Process_Composite_Glyph): Always untouch points.
1492
1493 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1494 `first_point' and `last_point' in case of composite glyphs.
1495 (Ins_IUP): Fix computation of `end_point'.
1496
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014972006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1498
Werner Lembergef3d2c22006-06-25 06:07:14 +00001499 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1500 Mac. The original patch was written by David Sachitano and Lawrence
1501 Coopet, and modified by Sean McBride for MPW compatibility. Only
1502 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001503
Werner Lembergef3d2c22006-06-25 06:07:14 +00001504 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1505 Mac OS X platforms.
1506 (OS_INLINE): Undefine before definition.
1507 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1508 FontAssociation table in FOND resource.
1509 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1510 and fontSize at each entry of FontAssociation table in FOND
1511 resource.
1512 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1513 ffStylOff of FamilyRecord header of FOND resource, the header,
1514 fontSize, fontID at each entry of FontAssociation table, and
1515 StyleMapping table.
1516 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001517
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015182006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1519
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001520 Public API of TrueTypeGX, OpenType, and classic kern table validator
1521 should return `FT_Err_Unimplemented_Feature' if validation service
1522 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001523 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001524 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1525
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001526 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1527 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1528 unavailable.
1529 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1530 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001531
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001532 * src/base/ftotval.c (FT_OpenType_Validate): Return
1533 FT_Err_Unimplemented_Feature if OpenType validation service is
1534 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001535
Werner Lembergb10e45a2006-06-08 07:32:56 +000015362006-06-08 Werner Lemberg <wl@gnu.org>
1537
1538 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1539 errors.
1540
David Turner5f1f7502006-06-07 05:11:50 +000015412006-06-07 David Turner <david@freetype.org>
1542
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001543 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1544 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1545 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001546
David Turner457b4a82006-06-06 08:14:14 +000015472006-06-06 David Turner <david@freetype.org>
1548
Werner Lemberg4836f952006-06-06 12:54:08 +00001549 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001550
Werner Lemberg4836f952006-06-06 12:54:08 +00001551 We change `ps_unicodes_init' so that it also takes a
1552 `free_glyph_name' callback to release the glyph names returned by
1553 `get_glyph_name'
1554
1555 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1556 Renamed to ...
1557 (PS_GetGlyphNameFunc): This.
1558 (PS_FreeGlyphNameFunc): New typedef.
1559 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1560
1561 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1562 argument.
1563 (cff_sid_free_glyph_name): New function.
1564 (cff_cmap_unicode_init): Updated.
1565
1566 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1567
1568 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1569 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001570
1571
David Turner09717352006-06-04 14:33:08 +000015722006-06-04 David Turner <david@freetype.org>
1573
Werner Lembergd724f202006-06-04 15:17:41 +00001574 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1575 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001576 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001577
Werner Lembergd724f202006-06-04 15:17:41 +00001578 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1579 of `face->num_glyphs' which missed the last glyph, due to
1580 the offset-by-1 computation, since the PFR format doesn't
1581 guarantee that glyph index 0 corresponds to the `missing
1582 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001583
Werner Lemberg33779662006-05-26 06:30:05 +000015842006-05-25 Werner Lemberg <wl@gnu.org>
1585
1586 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1587 `-no-undefined'. Reported by Christian Biesinger.
1588
Werner Lemberg24773d62006-05-20 08:53:13 +000015892006-05-19 Brian Weed <bw@imaginengine.com>
1590
1591 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1592 have debug information, and debug libraries use `C7 compatible'
1593 debug info.
1594
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015952006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1596
Werner Lemberga6523a62006-05-20 08:47:01 +00001597 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001598 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001599
Werner Lemberga6523a62006-05-20 08:47:01 +00001600 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1601 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001602
1603 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001604 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001605
16062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1607
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001608 * build/unix/configure.raw: Add a fallback to disable Carbon
1609 dependency, if configured with no options on Mac OS X.
1610
16112006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1612
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001613 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001614 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001615 the second part of Savannah bug #16590.
1616
Werner Lemberg545c4e52006-05-17 22:55:04 +000016172006-05-18 Werner Lemberg <wl@gnu.org>
1618
1619 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1620 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1621
David Turnerdc3ff312006-05-17 12:59:35 +000016222006-05-17 David Turner <david@freetype.org>
1623
Werner Lemberg545c4e52006-05-17 22:55:04 +00001624 This is a major patch used to drastically improve the performance of
1625 loading glyphs. This both speeds up loading the glyph vectors
1626 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001627
Werner Lemberg545c4e52006-05-17 22:55:04 +00001628 We now use inline assembler code with GCC to implement `FT_MulFix',
1629 which is probably the most important function related to the
1630 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001631
Werner Lemberg545c4e52006-05-17 22:55:04 +00001632 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001633
1634
Werner Lemberg545c4e52006-05-17 22:55:04 +00001635 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1636 `cursor' and `limit'.
1637
1638 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1639 New functions.
1640 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1641 [TEST]: Remove.
1642
1643 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1644 code.
1645
1646 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1647 `FT_ZERO'
1648 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1649 (af_glyph_hints_reload: Rewrite recognition of weak points.
1650
1651 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1652 constant values out of the loops.
1653
1654 * src/autofit/aftypes.h: Updated.
1655
1656 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1657
1658 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1659 product to get orientation.
1660
1661 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1662 (FT_Stream_OpenGzip): Use it to handle small files directly in
1663 memory.
1664
1665 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1666 Improve performance.
1667
1668 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1669 `limit'.
1670
1671 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1672 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1673 exceedingly large values of number of contours. Speed up by
1674 reducing the number of loops.
1675
1676 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1677
1678
1679 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1680 used to detect rogue clients from 4 to 16. This is to prevent some
1681 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1682 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001683
Werner Lembergde2d90a2006-05-17 08:54:30 +000016842007-05-17 Werner Lemberg <wl@gnu.org>
1685
1686 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001687 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001688
16892006-05-16 Werner Lemberg <wl@gnu.org>
1690
1691 * docs/PROBLEMS: Updated icl issues.
1692
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001693----------------------------------------------------------------------------
1694
Werner Lemberg42b63b22007-01-21 21:01:33 +00001695Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001696David Turner, Robert Wilhelm, and Werner Lemberg.
1697
1698This file is part of the FreeType project, and may only be used, modified,
1699and distributed under the terms of the FreeType project license,
1700LICENSE.TXT. By continuing to use, modify, or distribute this file you
1701indicate that you have read the license and understand and accept it
1702fully.
1703
1704
1705Local Variables:
1706version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001707coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001708End: