blob: 2cd3b2da14d7eecb611834faed8defd08a347c14 [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
David Turnerdddd0682007-03-05 18:23:25 +000011 * src/base/ftinit.c (FT_Init_FreeType): fixed a small memory leak
12 when FT_Init_FreeType fails for some reason
13
David Turner91aaf322007-03-05 18:18:52 +000014 * src/truetype/ttobs.c (tt_size_init_bytecode): bugfix, we need to
15 clear the x_ppem and y_ppem fields of the TT_Size.metrics structure,
16 note those of TT_Size.root.metrics. duh !!
17
David Turner085bc6e2007-03-05 17:40:03 +000018 * src/type1/t1afm.c (T1_Read_PFM): bug fix: read the kerning values
19 as 16-bit *signed* values, not unsigned ones.
20
David Turner601aefe2007-02-21 16:47:49 +0000212007-02-21 David Turner <david@freetype.org>
22
Werner Lembergde5e6862007-02-25 21:06:43 +000023 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
24 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000025
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000262007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
27
28 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
29 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
30 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
31
Werner Lemberga0915172007-02-16 08:12:50 +0000322007-02-16 Werner Lemberg <wl@gnu.org>
33
34 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
35 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
36
David Turner2c4500e2007-02-14 15:08:47 +0000372007-02-14 David Turner <david@freetype.org>
38
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000039 It seems that the following changes fix most of the known
40 interpreter problems with my fonts, but more testing is needed,
41 though.
42
43 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
44 (TT_MulFix14): Rewrite.
45 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
46 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000047
Werner Lembergc6a14082007-02-12 22:08:15 +0000482007-02-12 Werner Lemberg <wl@gnu.org>
49
50 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
51 warnings.
52
53 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
54 (bdf_interpret_style): Ditto.
55
David Turnerc0f9c4a2007-02-12 14:55:03 +0000562007-02-12 David Turner <david@freetype.org>
57
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000058 Simplify projection and dual-projection code interface.
59
Werner Lemberg406d25f2007-02-12 22:01:18 +000060 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
61 FT_Vector' as argument type.
62 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
63 Updated.
64 (CUR_fast_project, CUR_fast_dualproj): New macros.
65 (Project, Dual_Project, Project_x, Project_y): Updated.
66 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
67 macros.
68
69
70 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
71 adjustments for the non-light auto-hinted modes. Gets rid of
72 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000073
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000074 * src/autofit/aflatin.c (af_latin_hints_link_segments,
75 af_latin_hints_compute_edges): Slight optimization of the segment
76 linker and better handling of serif segments to get rid of broken
77 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000078
David Turnerc0f9c4a2007-02-12 14:55:03 +000079
Werner Lemberg442bfb82007-02-12 21:44:10 +000080 Introduce new string functions and the corresponding macros to get
81 rid of various uses of strcpy and other `evil' functions, as well as
82 to simplify a few things.
83
84 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
85 ft_mem_strcpyn): New declarations.
86 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
87 macros.
88 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
89 functions.
90
91 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
92 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
93 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
94 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
95 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
96 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
97 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
98 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +000099
Werner Lemberg406d25f2007-02-12 22:01:18 +0000100 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
101
Werner Lemberg582067d2007-02-11 15:03:05 +00001022007-02-11 Werner Lemberg <wl@gnu.org>
103
104 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
105 non-spacing glyphs.
106
Werner Lemberg8f474532007-02-07 08:31:01 +00001072007-02-07 Tom Parker <palfrey@tevp.net>
108
109 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
110 pointer.
111
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001122007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
113
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000114 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
115 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000116 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000117 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
118 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
119 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
120 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000121
122 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
123 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000124 * builds/mac/ftmac.c: Ditto.
125
1262007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
127
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000128 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000129 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000130 #include <ftmac.c>.
131
1322007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
133
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000134 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
135 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
136 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
137 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
138 FT_GetFilePath_From_Mac_ATS_Name.
139 * builds/mac/ftmac.c: Ditto.
140
1412007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
142
Werner Lembergdcbb7082007-02-08 08:54:09 +0000143 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000144 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
145 for passing to FT_New_Face_From_FSSpec.
146
1472007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
148
Werner Lembergdcbb7082007-02-08 08:54:09 +0000149 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000150 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000151
152 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
153 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000154 * builds/mac/ftmac.c (OS_INLINE): Ditto.
155
Werner Lemberg313d7772007-02-01 08:10:45 +00001562007-02-01 Werner Lemberg <wl@gnu.org>
157
158 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
159 Explain why applications shouldn't use it. Found by Alexei.
160
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001612007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000162
163 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
164 message.
165
166 * src/gxvalid/gxvmort1.c
167 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
168 message.
169
Werner Lemberg53935932007-01-31 08:53:02 +00001702007-01-31 Werner Lemberg <wl@gnu.org>
171
172
173 * Version 2.3.1 released.
174 =========================
175
176
177 Tag sources with `VER-2-3-1-FINAL'.
178
179 * builds/win32/visualc/freetype.dsp,
180 builds/win32/visualc/freetype.vcproj: s/230/231/.
181 * builds/win32/visualc/index.html: s/221/231/.
182
183 * vms_make.com: Add `ftgasp'.
184
David Turnera7ee6082007-01-30 10:33:53 +00001852007-01-30 David Turner <david@freetype.org>
186
Werner Lemberg53935932007-01-31 08:53:02 +0000187 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000188
Werner Lemberg53935932007-01-31 08:53:02 +0000189 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000190
Werner Lemberg53935932007-01-31 08:53:02 +0000191 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
192 s/2.3.0/2.3.1/.
193
194 * builds/unix/configure.raw (version_info): Set to 9:12:3.
195
196
197 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
198 (af_loader_load_g): Disable the warper (i.e., the light hinting
199 improvements) to make a 2.3.1 bugfix release before introducing a
200 new feature. This should give us more time to tune and improve the
201 warper for the next release.
202
203 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000204
David Turnerd91eebd2007-01-26 15:05:41 +00002052007-01-25 David Turner <david@freetype.org>
206
Werner Lembergbf241762007-01-26 16:08:49 +0000207 For light auto-hinting, improve glyph advance widths and resurrect
208 normal/full hinting to its normal quality.
209
210 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
211 and `xmax_delta'.
212 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
213 and `xmax_delta'.
214
215 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
216 preprocessor conditional with if-clause, handling both light and
217 normal mode.
218
219 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
220 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000221
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002222007-01-25 Werner Lemberg <wl@gnu.org>
223
224 * docs/release: Updated -- Savannah uses a new uploading scheme.
225
David Turnera42567b2007-01-25 12:23:37 +00002262007-01-25 David Turner <david@freetype.org>
227
Werner Lembergd7855662007-01-25 13:53:56 +0000228 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000229
Werner Lembergd7855662007-01-25 13:53:56 +0000230 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
231 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
232 functions.
David Turnera42567b2007-01-25 12:23:37 +0000233
Werner Lembergd7855662007-01-25 13:53:56 +0000234 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000235
Werner Lembergb1be9e82007-01-25 11:50:00 +00002362007-01-25 Werner Lemberg <wl@gnu.org>
237
238 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000239 correctly in a sanity check. Since this function is only used to
240 load local and global functions, any charstring that called the last
241 local/global function would fail otherwise. This fixes Savannah bug
242 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000243
244 * docs/CHANGES: Document it.
245
David Turnerb6de8d12007-01-23 15:51:50 +00002462007-01-23 David Turner <david@freetype.org>
247
Werner Lembergb1be9e82007-01-25 11:50:00 +0000248 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
249 prevented compilation when disabling both the unpatented and the
250 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000251
Werner Lembergb1be9e82007-01-25 11:50:00 +0000252
253 Fix and enable the warper to improve `light' hinting mode. This is
254 not necessarily a final version, but it seems to work well.
255
256 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
257 Disable code.
258 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
259 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
260
261 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
262 (af_warper_compute_line_best): Fix array size of `scores'.
263 (af_warper_compute): Better handling of border cases.
264 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
265 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000266
Werner Lemberg011d1112007-01-21 09:36:00 +00002672007-01-21 Werner Lemberg <wl@gnu.org>
268
Werner Lemberg42b63b22007-01-21 21:01:33 +0000269 * ChangeLog: Split off older entries into...
270 * ChangeLog.22: This new file.
271
2722007-01-21 Werner Lemberg <wl@gnu.org>
273
Werner Lemberg555258f2007-01-21 09:46:37 +0000274 * docs/CHANGES: Document SHZ fix.
275
2762007-01-21 George Williams <gww@silcom.com>
277
278 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
279 points.
280
2812007-01-21 Werner Lemberg <wl@gnu.org>
282
Werner Lemberg011d1112007-01-21 09:36:00 +0000283 * src/sfnt/ttmtx.c (tt_face_get_metrics)
284 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
285
Werner Lemberg87a5a432007-01-17 12:44:39 +00002862007-01-17 Werner Lemberg <wl@gnu.org>
287
Werner Lembergb8003292007-01-17 12:56:25 +0000288
289 * Version 2.3.0 released.
290 =========================
291
292
293 Tag sources with `VER-2-3-0-FINAL'.
294
2952007-01-17 Werner Lemberg <wl@gnu.org>
296
Werner Lemberg87a5a432007-01-17 12:44:39 +0000297 * docs/release: Updated.
298
David Turner22122722007-01-16 20:06:44 +00002992007-01-16 David Turner <david@freetype.org>
300
Werner Lemberg87a5a432007-01-17 12:44:39 +0000301 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
302 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
303 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
304 warnings.
David Turner22122722007-01-16 20:06:44 +0000305
Werner Lemberg267e1d72007-01-15 07:48:09 +00003062007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
307
308 * builds/amiga/makefile, builds/amiga/makefile.os4,
309 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
310
311 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
312
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003132007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
314
315 Fix various compiler warnings.
316
317 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
318 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
319 s/index/strike_index/.
320 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
321
322 * src/gxvalid/gxvmorx5.c
323 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
324
325 * src/truetype/ttinterp.c (Compute_Point_Displacement),
326 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
327 uninitialized variables.
328
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003292007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
330
331 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
332
Werner Lemberg281c1482007-01-13 22:50:51 +00003332007-01-13 Werner Lemberg <wl@gnu.org>
334
335 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
336 versions up to 0x3FF without complaining.
337
Werner Lembergac250b22007-01-13 14:01:36 +00003382007-01-13 Derek Clegg <dclegg@apple.com>
339
340 Add FT_Get_PS_Font_Info interface to CFF driver.
341
342 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
343 (CFF_FontRec): Add `font_info' field.
344
345 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
346 (cff_font_done): Free font->font_info if necessary.
347
348 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
349 (cff_service_ps_info): Register cff_ps_get_font_info.
350
Werner Lemberg23df31a2007-01-13 08:45:00 +00003512007-01-13 Werner Lemberg <wl@gnu.org>
352
353 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
354 with C++ compiler.
355
356 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
357 af_glyph_hints_dump_edges): Ditto.
358
359 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
360 `modules.cfg').
361
362 * src/sfnt/ttsbit0.h: Remove.
363
364 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
365
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003662007-01-12 David Turner <david@freetype.org>
367
368 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
369 bug in the bitmap emboldener if the pitch of the source bitmap is
370 much larger than its width.
371
372 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
373 compilation warning.
374
Werner Lemberg6d96d312007-01-12 10:30:19 +00003752007-01-12 Werner Lemberg <wl@gnu.org>
376
377 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
378 `automake' CVS module from sources.redhat.com.
379
Werner Lemberg17432b52007-01-12 09:28:44 +00003802007-01-11 Werner Lemberg <wl@gnu.org>
381
382 * src/type1/t1load.c (is_space): Removed.
383 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
384 (parse_charstrings): Use IS_PS_TOKEN.
385
386
387 * autogen.sh: Avoid bash specific syntax.
388
David Turner038ace22007-01-11 15:00:59 +00003892007-01-11 David Turner <david@freetype.org>
390
Werner Lemberg17432b52007-01-12 09:28:44 +0000391 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000392
Werner Lemberg17432b52007-01-12 09:28:44 +0000393 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000394
Werner Lemberg17432b52007-01-12 09:28:44 +0000395 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
396 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000397 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000398
Werner Lemberg17432b52007-01-12 09:28:44 +0000399 * autogen.sh: Small fix to get it working on Mac OS X properly:
400 The issue is that GNU libtool is called `glibtool' on this platform,
401 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000402
David Turner2628ea92007-01-10 13:15:56 +00004032007-01-10 David Turner <david@freetype.org>
404
Werner Lemberg17432b52007-01-12 09:28:44 +0000405 * all-sources: Tag all sources with VER-2-3-0-RC1 and
406 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000407
Werner Lemberg17432b52007-01-12 09:28:44 +0000408 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
409 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
410 version number to 2.3.0.
411
412 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
413 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000414
415 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000416 include/freetype/ftlcdfil.h: Update reference documentation with
417 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000418
Werner Lemberg17432b52007-01-12 09:28:44 +0000419 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
420 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000421
Werner Lembergbf02d392007-01-10 07:07:37 +00004222007-01-10 Derek Clegg <dclegg@apple.com>
423
424 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
425 values.
426
David Turnerf48b60e2007-01-08 15:15:32 +00004272007-01-08 David Turner <david@freetype.org>
428
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000429 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000430
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000431 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
432 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000433 corresponding to a given character pixel size.
434
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000435 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
436 `gasp' table, in order to avoid potential problems with later
437 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000438
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000439 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
440 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000441
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000442 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
443 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
444 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
445 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000446
Werner Lemberge6b6f372007-01-07 00:06:47 +00004472007-01-07 Werner Lemberg <wl@gnu.org>
448
Werner Lembergb8004d22007-01-07 09:13:38 +0000449 * src/cid/cidparse.c (cid_parser_new): Improve error message for
450 Type 11 fonts.
451 Scan for `/sfnts' token.
452
4532007-01-07 Werner Lemberg <wl@gnu.org>
454
455 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000456
Werner Lembergbe5f7972007-01-06 07:51:48 +00004572007-01-06 Werner Lemberg <wl@gnu.org>
458
459 * src/cff/cffload.c (cff_index_init): Remove unused variable.
460 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
461
David Turnera8cf42b2007-01-04 16:46:46 +00004622007-01-04 David Turner <david@freetype.org>
463
Werner Lembergf6294392007-01-06 07:47:45 +0000464 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
465 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000466
Werner Lembergf6294392007-01-06 07:47:45 +0000467
468 Do not allocate interpreter-specific tables in memory if we are not
469 going to load glyphs with the bytecode interpreter anyway.
470
471 * src/truetype/ttgload.c (tt_loader_init): Load execution context
472 only if glyph is hinted.
473 Updated.
474 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
475 and `cvs_ready'.
476 Add `tt_size_ready_bytecode' declaration.
477 * src/truetype/ttobjs.c (tt_size_done_bytecode,
478 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
479 (tt_size_init): Move most code into `tt_size_init_bytecode'.
480 (tt_size_done): Move most code into `tt_size_done_bytecode'.
481 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000482
David Turner91a34022007-01-05 14:47:08 +0000483
Werner Lembergf6294392007-01-06 07:47:45 +0000484 Don't extract the metrics table from the SFNT font file. Instead,
485 reparse it on each glyph load. The runtime difference is not
486 noticeable, and it can save a lot of heap memory when memory-mapped
487 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000488
Werner Lembergf6294392007-01-06 07:47:45 +0000489 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
490 `horz_metrics_offset' and `vert_metrics_ofset'.
491 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
492 Updated.
493
494
495 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
496
497
498 Do not load the CFF index offsets into memory, since this wastes a
499 *lot* of heap memory with large Asian CFF fonts. There is no
500 significant performance loss.
501
502 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
503 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
504 `data_size'.
505 (CFF_CharsetRec): Add field `num_glyphs'.
506
507 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
508 cff_charset_cid_to_gindex): New functions.
509 (cff_new_index): Renamed to...
510 (cff_index_init): This. Update all callers.
511 Updated -- some code has been moved to `cff_index_load_offsets'.
512 (cff_done_index): Renamed to...
513 (cff_index_done): This. Update all callers.
514 (cff_index_get_pointers, cff_index_access_element): Updated to use
515 stream offsets.
516 (cff_charset_compute_cids): Set `num_glyphs' field.
517 (cff_encoding_load): Updated.
518
519 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000520
5212007-01-04 David Turner <david@freetype.org>
522
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000523 * docs/INSTALL.UNIX: Simplify some parts, add reference to
524 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000525
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000526 * README.CVS: Add common problem description and solution
527 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000528
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000529 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000530
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000531 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000532
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000533 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000534
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000535 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
536 (TWorker): This.
537 Remove `count_table' and `memory'.
538 Make `grays' a pointer.
539 (TRaster): New structure.
540 (count_table): New static array.
541 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
542 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
543 ft_black_set_mode, ft_black_render): Updated.
544 (ft_black_init): Don't initialize `count_table'.
545 (ft_black_reset): Use the render pool. This saves about 6KB of
546 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000547
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000548 * src/smooth/ftgrays.c (TRaster): Replaced with...
549 (TWorker): This.
550 Remove `memory'.
551 (TRaster): New structure.
552
553 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
554 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
555 gray_render_span, gray_raster_render): Updated.
556 (gray_raster_reset): Use the render pool. This saves about 6KB of
557 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000558
David Turner8a6c44e2007-01-04 17:03:11 +0000559 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
560 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000561 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
562 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
563 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000564
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000565 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
566 Remove a typo that results in no hinting and a memory leak with some
567 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000568
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000569 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000570 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000571 CFF_Faces in it. We need to close all faces before destroying the
572 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000573
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005742007-01-02 Werner Lemberg <wl@gnu.org>
575
576 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
577 Remove compiler warning.
578
David Turner9207e002007-01-02 16:58:13 +00005792007-01-02 David Turner <david@freetype.org>
580
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000581 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000582
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005832006-12-31 Masatake YAMATO <jet@gyve.org>
584
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000585 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
586 function.
587 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000588 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000589 `gxv_kern_subtable_fmt0_pairs_validate'.
590
David Turner115b4422006-12-22 11:37:05 +00005912006-12-22 David Turner <david@freetype.org>
592
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000593 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
594 warnings.
David Turner115b4422006-12-22 11:37:05 +0000595
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000596 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
597 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000598
Werner Lemberg4755bf72006-12-16 08:58:44 +00005992006-12-16 Anders Kaseorg <anders@kaseorg.com>
600
601 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
602 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
603
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006042006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
605
Werner Lemberg9b774e22007-01-16 06:11:27 +0000606 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000607 sync with the modification by Jens Claudius on 2006-08-22; cf.
608 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 +0000609
6102006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
611
612 * src/base/ftmac.c: Specialized for Mac OS X only.
613 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
614 * builds/unix/configure.raw: Ditto. When explicit switches for
615 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
616 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
617
6182006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
619
620 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
621 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
622 instead of src/base/ftmac.c
623 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
624 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
625 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
626 that cannot be built at present.
627
6282006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
629
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000630 * src/base/ftobjs.c: Improvement of resource fork handler for
631 POSIX, cf.
632 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000633 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
634 format or .dfont, to simulate the face index number counted by ftmac.c.
635 (IsMacResource): Return the number of scalable faces correctly.
636
Werner Lembergec5b4502006-12-10 07:51:38 +00006372006-12-10 Werner Lemberg <wl@gnu.org>
638
639 * builds/toplevel.mk (version): Protect against `distclean' target.
640
Werner Lembergb26b3142006-12-09 20:01:43 +00006412006-12-09 Werner Lemberg <wl@gnu.org>
642
643 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
644 or `type'.
645
646 * builds/freetype.mk (version): Extracted from freetype.h, using
647 GNU make's built-in string functions.
648 (refdoc): Use $(version) instead of static version number.
649
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006502006-12-08 Werner Lemberg <wl@gnu.org>
651
652 * builds/toplevel.mk (dist): Extract version number from freetype.h.
653
Werner Lemberg15c29502006-12-09 07:29:54 +00006542006-12-08 Vladimir Volovich <vvv@vsu.ru>
655
656 * src/tools/apinames (State): Remove final comma in structure -- xlc
657 v5 under AIX 4.3 doesn't like this.
658
David Turnerdbf3b432006-12-07 21:18:09 +00006592006-12-07 David Turner <david@freetype.org>
660
Werner Lemberg256a3512006-12-08 06:49:33 +0000661 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
662 to the spacing of auto-fitted glyphs. This only impacts rare
663 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000664
Werner Lemberg11171312006-12-03 09:43:40 +00006652006-12-03 Werner Lemberg <wl@gnu.org>
666
667 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
668
Werner Lemberg960ba592006-12-01 08:20:47 +00006692006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000670
Werner Lemberg960ba592006-12-01 08:20:47 +0000671 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
672 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
673 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000674
David Turner80658e52006-11-28 08:09:20 +0000675
Werner Lemberg960ba592006-12-01 08:20:47 +0000676 * include/freetype/ftxf86.h: Fix and extend comment so that it
677 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000678
Werner Lemberg960ba592006-12-01 08:20:47 +0000679 * include/freetype/ftchapters.h: Add `font_format' section.
680
681
682 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
683 to TOC in index page.
684
6852006-11-28 David Turner <david@freetype.org>
686
687 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
688 trying to render into a zero-width/height bitmap, not an error code.
689
690 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
691
692 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
693 ones instead.
694
695 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
696 variable.
David Turner80658e52006-11-28 08:09:20 +0000697
Werner Lemberg8636c292006-11-26 22:28:13 +00006982006-11-26 Pierre Hanser <hanser@club-internet.fr>
699
700 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
701
Werner Lemberg960ba592006-12-01 08:20:47 +00007022006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000703
Werner Lemberg960ba592006-12-01 08:20:47 +0000704 * src/autofit/afhints.c (af_glyph_hints_dump_points,
705 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
706 Add stubs to link the `ftgrid' test program when debugging is
707 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000708
Werner Lemberg960ba592006-12-01 08:20:47 +00007092006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000710
711 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000712 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
713
714 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
715 Emit more sensible information.
716
717 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
718
719 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
720 rounding of blue values.
721 (af_latin_hints_compute_segments): Hint segment heights.
722 (af_latin_hints_link_segments): Reduce `len_score' value.
723 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
724 value and use `height' member for comparisons.
725 (af_latin_hint_edges): Extend logging message.
726 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000727
Werner Lemberg91959bf2006-11-22 10:36:55 +00007282006-11-22 Werner Lemberg <wl@gnu.org>
729
730 Fix Savannah bug #15553.
731
732 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
733 program after a change from mono to grayscaling (and vice versa).
734 Use correct constant for comparison to get `exec->grayscale'.
735
Werner Lemberg913a3652006-11-19 09:19:17 +00007362006-11-18 Werner Lemberg <wl@gnu.org>
737
738 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000739 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000740 This patch fixes Savannah bug #18301.
741
742 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
743 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
744 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
745 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
746 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
747 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
748 (FNT_Load_Glyph): Check validity of `glyph_index'.
749
David Turner7bab6ae2006-11-13 11:25:06 +00007502006-11-13 David Turner <david@freetype.org>
751
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000752 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
753 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000754
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000755 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
756 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
757 when building the library to change the default LCD filter to be
758 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000759
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000760 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000761
David Turner8765c712006-11-10 16:49:42 +00007622006-11-10 David Turner <david@freetype.org>
763
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000764 * src/smooth/ftsmooth.c: API change for the LCD
765 filter. The FT_LcdFilter value is an enumeration describing which
766 filter to apply, with new values FT_LCD_FILTER_LIGHT and
767 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
768 algorithm which produces strong color fringes for everything
769 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000770
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000771 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
772 second parameter to an enum type.
773
774 * src/base/ftlcdfil.c (USE_LEGACY): Define.
775 (_ft_lcd_filter): Rename to...
776 (_ft_lcd_filter_fir): This.
777 Update parameters.
778 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
779 (FT_Library_Set_LcdFilter): Update parameters.
780 Handle new filter modes.
781
782 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
783 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
784 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
785 callback and update other fields.
786
787 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
788 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
789 Other minor improvements.
790
791 * src/autofit/aflatin.c: Various tiny improvements that drastically
792 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
793 (af_latin_hints_compute_edges): Fix typo.
794 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000795
David Turner4e9cc3c2006-11-09 16:31:52 +00007962006-11-09 David Turner <david@freetype.org>
797
Werner Lemberg49c77a82006-11-09 21:51:57 +0000798 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
799 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000800
Werner Lemberg5e430892006-11-07 09:35:03 +00008012006-11-07 Zhe Su <james.su@gmail.com>
802
803 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
804 also.
805
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008062006-11-03 Werner Lemberg <wl@gnu.org>
807
808 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
809
David Turner40604742006-11-02 16:37:35 +00008102006-11-02 David Turner <david@freetype.org>
811
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000812 Add a few tweaks to better handle serif fonts.
813 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000814
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000815 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
816 segments that are less than 1.5 pixels high. This gets rid of
817 *many* corner cases with serifs.
818 (af_latin_align_linked_edge): Add logging message.
819 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
820 Add logging messages.
821 Handle AF_EDGE_FLAG flag specially.
822
823 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
824 _af_debug_disable_blue_hints, and _af_debug_hints variables.
825
826 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
827 Update external declarations.
828 (af_corner_orientation, af_corner_is_flat): Replaced by...
829
830 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
831 ft_corner_is_flat): These declarations.
832
833 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
834 Comment out. Replaced by...
835
836 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
837 These functions. Update all callers.
838 (FT_Add64) [!FT_LONG64]: Simplify.
839
840 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
841 (af_direction_compute): Add a missing FT_ABS call. This bug caused
842 production of garbage by missing lots of segments.
843
844 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
845
846 * src/autofit/afloader.c (af_loader_init, af_loader_done)
847 [AF_DEBUG]: Set _af_debug_hints.
848
849
850 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
851 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
852 and ft_corner_orientation.
853
854
855 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000856
Werner Lemberge88c5262006-10-24 05:46:26 +00008572006-10-24 Werner Lemberg <wl@gnu.org>
858
859 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
860
861 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
862 as argument.
863
David Turnera1861392006-10-23 16:00:59 +00008642006-10-23 Zhe Su <zsu@novell.com>
865
Werner Lemberg715e96e2006-10-24 05:28:45 +0000866 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
867 better deal with broken Asian fonts with strange glyphs, having
868 self-intersections and other peculiarities. The used algorithm is
869 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000870
David Turnere140f142006-10-23 08:56:57 +00008712006-10-23 David Turner <david@freetype.org>
872
Werner Lemberg715e96e2006-10-24 05:28:45 +0000873 Speed up the CFF font loader. With some large CFF fonts,
874 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000875
Werner Lemberg715e96e2006-10-24 05:28:45 +0000876 * src/cff/cffload.c (cff_get_offset): Removed.
877 (cff_new_index): Inline functionality of `cff_get_offset'.
878 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
879 (cff_charset_done): Call `cff_charset_free_cids'.
880 (cff_charset_load): Call `cff_charset_compute_cids'.
881 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
882
883 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
884 with FT_NEXT_XXX.
885
886
887 Speed up the Postscript hinter, with more than 100% speed increase
888 on my machine.
889
890 * src/pshinter/pshalgo.c (psh_corner_is_flat,
891 psh_corner_orientation): New functions.
892 (psh_glyph_compute_inflections): Merge loops for efficiency.
893 Use `psh_corner_orientation'.
894 (psh_glyph_init): Use `psh_corner_is_flat'.
895 (psh_hint_table_find_strong_point): Renamed to...
896 (psh_hint_table_find_strong_points): This.
897 Rewrite, adding argument to handle all points at once.
898 Update all callers.
899 (PSH_MAX_STRONG_INTERNAL): New macro.
900 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000901
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009022006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
903
904 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000905 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000906
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009072006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
908
909 * docs/INSTALL.CROSS: New document file for cross-building.
910
911 * builds/unix/configure.raw: Preliminary cross-building support.
912 Find native C compiler and pass it by CC_BUILD, and
913 find suffix for native executable and pass it by EXEEXT_BUILD.
914 Also suffix for target executable is passed by EXEEXT.
915
Werner Lembergb9e6d692006-10-15 08:58:40 +0000916 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
917 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000918 CC_BUILD and EXEEXT_BUILD.
919
Werner Lembergb9e6d692006-10-15 08:58:40 +0000920 * builds/exports.mk (APINAMES_EXE): Change the extension for
921 apinames from the suffix for target (E) to that for building host
922 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000923
Werner Lemberg82a07e92006-10-12 06:20:44 +00009242006-10-12 Werner Lemberg <wl@gnu.org>
925
926 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
927 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
928 which reference those files.
929
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009302006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
931
Werner Lembergb9e6d692006-10-15 08:58:40 +0000932 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
933 embedded in freetype2.pc and freetype-config. Use it to record
934 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000935
936 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
937
938 * builds/unix/freetype-config.in: Ditto.
939
Werner Lemberg28e17d92006-10-11 17:27:47 +00009402006-10-11 Werner Lemberg <wl@gnu.org>
941
942 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
943 development.
944
Jens Claudius336d2292006-10-03 08:53:37 +00009452006-10-03 Jens Claudius <jens.claudius@yahoo.com>
946
947 * include/freetype/config/ftstdlib.h: Cast away volatileness from
948 argument to ft_setjmp.
949
950 * include/freetype/internal/ftvalid.h: Add comment that
951 ft_validator_run must not be used.
952
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009532006-10-01 Werner Lemberg <wl@gnu.org>
954
955 * src/base/ftbase.c: Undo change from 2006-09-30.
956
957 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
958
9592006-09-30 David Turner <david@freetype.org>
960
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000961 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
962 s/unpatented_hinting/ignore_unpatented_hinter/.
963 Update all callers.
964
965 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
966 auto-hinting shall be used or not.
967
968 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000969
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009702006-09-30 Werner Lemberg <wl@gnu.org>
971
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000972 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
973 in use).
974
975 * src/base/ftbase.c: Include `ftlcdfil.c'.
976
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009772006-09-29 Werner Lemberg <wl@gnu.org>
978
979 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
980 overlapping segments. Bug reported by Stefan Koch.
981
David Turnerad830712006-09-27 16:20:59 +00009822006-09-28 David Turner <david@freetype.org>
983
Werner Lemberg2c002e12006-09-29 21:31:53 +0000984 Fix a bug in the automatic unpatented hinting support which prevents
985 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000986
Werner Lemberg2c002e12006-09-29 21:31:53 +0000987 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
988 s/force_autohint/unpatented_hinting/. Update all callers.
989
990 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
991
992 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000993
David Turner8a317cf2006-09-27 07:52:48 +00009942006-09-27 David Turner <david@freetype.org>
995
Werner Lemberg2c002e12006-09-29 21:31:53 +0000996 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000997
David Turner8a317cf2006-09-27 07:52:48 +0000998
David Turnere140f142006-10-23 08:56:57 +0000999 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001000 In a default build, the function `FT_Library_SetLcdFilter' returns
1001 `FT_Err_Unimplemented_Feature'; you need to #define
1002 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1003 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001004
Werner Lemberg2c002e12006-09-29 21:31:53 +00001005 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001006
Werner Lemberg2c002e12006-09-29 21:31:53 +00001007 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1008 typedef.
1009 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1010 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001011
Werner Lemberg2c002e12006-09-29 21:31:53 +00001012 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1013 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001014
Werner Lemberg2c002e12006-09-29 21:31:53 +00001015 Handle subpixel rendering.
1016 Simplify function.
1017 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1018 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1019
1020 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1021 pointing to <freetype/ftlcdfil.h>.
1022
1023 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1024 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1025
1026 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001027
Werner Lemberge20df4a2006-09-27 06:29:21 +000010282006-09-26 David Bustin
1029
1030 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1031 correctly. Reported as Savannah bug #17843.
1032
David Turner6f8c6222006-09-26 15:42:44 +000010332006-09-26 David Turner <david@freetype.org>
1034
Werner Lemberg110246c2006-09-26 21:55:44 +00001035 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1036 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1037 horizontal and vertical hinting for the purpose of debugging the
1038 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001039
Werner Lemberg110246c2006-09-26 21:55:44 +00001040 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1041 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001042
Werner Lemberg110246c2006-09-26 21:55:44 +00001043 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1044
1045 * include/freetype/config/ftoption.h, devel/ftoption.h
1046 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1047 we want to compile LCD-optimized rendering code (à la ClearType) or
1048 not. The macro *must* be disabled in default builds of the library
1049 for patent reasons.
1050
1051 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1052 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1053 isn't defined at compile time. This only changes the content of the
1054 rendered glyph to match the one of normal gray-level rendering,
1055 hence clients should not need to be modified.
1056
1057 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001058
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010592006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1060
1061 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1062 LWFN fails and both are available.
1063
David Turnerf3050052006-09-11 12:00:32 +000010642006-09-11 David Turner <david@freetype.org>
1065
Werner Lembergf9644552006-09-12 13:48:10 +00001066 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1067 report their English names through an Apple Roman
1068 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001069
Werner Lembergf9644552006-09-12 13:48:10 +00001070 If the font uses another name entry with language_id == English, it
1071 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001072
Werner Lembergf9644552006-09-12 13:48:10 +00001073 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1074 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001075
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010762006-09-05 Werner Lemberg <wl@gnu.org>
1077
1078 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001079 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001080 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1081 `HAN NOM B.ttf').
1082
1083 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1084
David Turner772e55d2006-09-05 09:45:15 +000010852006-09-05 David Turner <david@freetype.org>
1086
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001087 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001088
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001089 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1090 (TRaster): Remove `count_ex' and `count_ey'.
1091 (gray_find_cell): Remove 2nd and 3rd argument.
1092 (gray_alloc_cell): Merged with `gray_find_cell'.
1093 (gray_record_cell): Simplify.
1094 (gray_set_cell): Rewrite.
1095 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1096 (gray_render_span): Don't use FT_MEM_SET for small values.
1097 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1098 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1099 bitmap scanline.
1100 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001101
David Turneraa557a92006-09-04 16:42:44 +000011022006-09-04 David Turner <david@freetype.org>
1103
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001104 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1105 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001106
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011072006-09-03 Werner Lemberg <wl@gnu.org>
1108
1109 * devel/ftoption.h: Synchronize with
1110 include/freetype/config/ftoption.h.
1111
1112 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1113 variable declaration.
1114 (gray_convert_glyph): Fix compiler warnings.
1115
David Turner6d79f212006-09-01 14:09:35 +000011162006-09-01 David Turner <david@freetype.org>
1117
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001118 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1119 to recognize a few fonts that require the automatic unpatented
1120 loader.
David Turnerbd502952006-09-01 19:05:24 +00001121
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001122 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1123 rasterizer. The speed improvement is between 15% and 25%, depending
1124 on the font data.
1125
1126 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1127 (TCell): Redefine.
1128 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1129 (gray_init_cells): Updated.
1130 (gray_find_cell, gray_alloc_cell): New functions.
1131 (gray_record_cell): Rewritten to use `gray_find_cell' and
1132 `gray_alloc_cell'.
1133 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1134 QSORT_THRESHOLD):
1135 Removed.
1136 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1137 gray_dump_cells): Removed.
1138 (gray_sweep): Rewritten.
1139 (gray_convert_glyph): Rewrite code which used one of the sorting
1140 functions.
1141 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001142
Werner Lembergd898aed2006-08-29 09:50:34 +000011432006-08-29 Dr. Werner Fink <werner@suse.de>
1144
1145 * configure: Make it possible to handle configure options which
1146 have strings containing spaces.
1147
11482006-08-27 David Turner <david@freetype.org>
1149
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001150 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1151 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1152 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1153
1154 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1155 src/truetype/truetype.c, src/truetype/ttdriver.c,
1156 src/truetype/ttgload.c, src/truetype/ttgload.h,
1157 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1158 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1159 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1160
1161 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1162 member `force_autohint'.
1163
1164 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1165
1166 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1167 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001168
Jens Claudiusa787f452006-08-27 11:26:18 +000011692006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1170
1171 Fix miscellaneous compiler warnings.
1172
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001173 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1174 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001175
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001176 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1177 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1178 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001179
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001180 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1181 volatileness of argument to ft_longjmp. Spotted by Werner
1182 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001183
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001184 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1185 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001186
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001187 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1188 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001189
Werner Lembergc4c35b72006-08-27 08:03:46 +000011902006-08-27 Werner Lemberg <wl@gnu.org>
1191
1192 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1193 Reported by Jens.
1194
Jens Claudius088e44e2006-08-22 14:24:30 +000011952006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001196
Jens Claudius088e44e2006-08-22 14:24:30 +00001197 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001198 about addresses of volatile objects passed as function arguments as
1199 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001200
Werner Lembergc4c35b72006-08-27 08:03:46 +00001201 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1202 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001203
1204 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1205 argument `table' a pointer to a volatile object.
1206
1207 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1208 argument `table' a pointer to a volatile object.
1209
Jens Claudius2652bd52006-08-18 17:20:37 +000012102006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1211
1212 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1213 variable `_sfnt' as volatile since it must keep its value across
1214 a call to ft_setjmp.
1215 (gxv_validate): Same for local variables `memory' and `valid'.
1216 (classic_kern_validate): Same for local variables `memory',
1217 `ckern', and `valid'.
1218
1219 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1220 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1221 `jstf', and 'valid'.
1222
1223 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1224 local variable `cmap'.
1225
David Turner9fbfc6a2006-08-16 09:11:31 +000012262006-08-16 David Turner <david@freetype.org>
1227
Werner Lemberg12342992006-08-19 11:18:09 +00001228 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1229 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001230
Werner Lemberg12342992006-08-19 11:18:09 +00001231 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1232 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001233
David Turner33f5f242006-08-16 16:50:55 +00001234
Werner Lemberg12342992006-08-19 11:18:09 +00001235 Improvements to native TrueType hinting. This is a first try,
1236 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1237
1238 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1239 `extra_points2'.
1240
1241 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1242 `orus'.
1243
1244 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1245 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1246 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1247 handle `extra_points2'.
1248
1249 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1250 Remove compiler warning.
1251 (cur_to_arg): Remove macro.
1252 (TT_Hint_Glyph): Updated.
1253 (TT_Process_Simple_Glyph): Handle `orus'.
1254
1255 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1256 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1257 (LOC_Ins_IUP): Renamed to...
1258 (IUP_WorkerRec): This.
1259 Add `orus' member.
1260 (Shift): Renamed to...
1261 (_iup_worker_shift): This.
1262 Updated.
1263 (Interp): Renamed to...
1264 (_iup_worker_interpolate): This.
1265 Updated to handle `orus'.
1266 (Ins_IUP): Updated.
1267
1268 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1269 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001270
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012712006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1272
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001273 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001274 build ftvalid in ft2demos. This has been inadvertedly changed
1275 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001276
12772006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1278
Werner Lemberg12342992006-08-19 11:18:09 +00001279 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1280 Jens:
1281 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001282
Werner Lemberg12342992006-08-19 11:18:09 +00001283 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1284 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001285
1286 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1287
Jens Claudius9950adc2006-08-13 12:14:36 +000012882006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1289
Werner Lemberg12342992006-08-19 11:18:09 +00001290 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1291 T1_TOKEN_TYPE_KEY.
1292 (T1_FieldRec): Add `dict'.
1293 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1294 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1295 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001296
Werner Lemberg12342992006-08-19 11:18:09 +00001297 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1298 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001299
1300 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1301
1302 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001303 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1304 not T1_TOKEN_TYPE_ANY.
1305 (ps_parser_load_field): Make sure a token that should be a string or
1306 name is really a string or name.
1307 Avoid memory leak if a keyword has been already encountered and its
1308 value is overwritten.
1309 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1310 T1_FIELD_XXX.
1311 (parse_dict): Ignore keywords that occur in the wrong dictionary
1312 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001313
Werner Lemberg12342992006-08-19 11:18:09 +00001314 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1315 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001316
Werner Lemberg12342992006-08-19 11:18:09 +00001317 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1318 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001319
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013202006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1321
1322 Move creation of field `buildchar' of T1_DecoderRec out of
1323 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1324 of it.
1325
1326 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1327 and `T1_Compute_Max_Advance'.
1328
1329 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1330 Remove field `face', add `len_buildchar'.
1331
1332 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1333 field `buildchar'.
1334
1335 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1336 finisher for T1_Decoder.
1337 (cid_slot_load_glyph): Do not ignore failure when initializing the
1338 T1_Decoder.
1339
1340 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1341 Updated.
1342 (t1_decoder_init): Remove initialization of fields `buildchar' and
1343 `len_buildchar'.
1344 (t1_decoder_done): Remove deallocation of field `buildchar'.
1345
1346 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1347 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1348 T1_Decoder.
1349 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1350 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1351 case of error.
1352
1353 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1354 `buildchar' of T1_FaceRec.
1355
1356 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1357 `buildchar' of T1_FaceRec.
1358
Werner Lemberg1a380e02006-07-14 18:28:08 +000013592006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1360
1361 * freetype2/include/freetype/internal/psaux.h: New macros
1362 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1363 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1364 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1365 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1366 (T1_DecoderRec): New fields `buildchar' and `face'.
1367 (IS_PS_TOKEN): New macro.
1368
1369 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1370 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1371
1372 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1373 `default_design_vector' and `num_default_design_vector'.
1374
1375 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1376 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1377 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1378
1379 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1380 `token' argument to be NULL if we want only to count the number of
1381 tokens.
1382 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1383 want to skip the array.
1384 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1385 want to skip the array.
1386
1387 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1388 support for (partially commented out) othersubrs 19-25, 27, and 28.
1389 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1390 (t1_decoder_done): Release new field `buildchar'.
1391
1392 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1393 functions.
1394 (t1_keywords): Register them.
1395 (t1_allocate_blend): Updated.
1396 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1397 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1398 (parse_dict): Remove `keyword_flags' argument.
1399 Use new macro IS_PS_TOKEN.
1400 Changed function so that later PostScript definitions override
1401 earlier ones.
1402 (t1_init_loader): Initialize new field `keywords_encountered'.
1403 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1404 `len_buildchar'.
1405 Remove `keywords_flags'.
1406
1407 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1408 `keywords_encountered'.
1409 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1410
1411 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1412 New entries for parsing /NDV, /CDV, and /DesignVector.
1413
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014142006-07-07 Werner Lemberg <wl@gnu.org>
1415
1416 Add many checks to protect against malformed PCF files.
1417
1418 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1419 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1420
1421 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1422 data and check that tables don't overlap (using a simple
1423 bubblesort).
1424 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1425 New macros which give the size of data structures in the data
1426 stream.
1427 (pcf_get_properties): Use rough estimates to get array size limits.
1428 Assign `face->nprops' and `face->properties' earlier so that a call
1429 to PCF_Face_Done can do the clean-up in case of error.
1430 Protect against invalid string offsets.
1431 (pcf_get_metrics): Clean up code.
1432 Adjust tracing message levels.
1433 Use rough estimate to get array size limit.
1434 (pcf_get_bitmaps): Clean up code.
1435 Adjust tracing message levels.
1436 Use rough estimates to get offset limits.
1437 (pcf_get_encodings): Adjust tracing message level.
1438 (pcf_get_accel): Clean up code.
1439
Werner Lemberg8eb05252006-06-27 06:20:01 +000014402006-06-26 Werner Lemberg <wl@gnu.org>
1441
1442 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1443 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1444
Werner Lemberg24703f82006-06-26 19:12:51 +000014452006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1446
1447 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1448 (t1_decoder_parse_charstrings): Operator with
1449 opcode 15 pops its two arguments.
1450 Handle the case where the pops of an othersubr may be part of a
1451 subroutine.
1452 Handle unknown othersubrs gracefully: count their operands and let
1453 the following pop operators push the operands as the results onto
1454 the Type1 stack.
1455 Improve handling of setcurrentpoint opcode.
1456
Werner Lembergc011f4c2006-06-26 09:40:00 +000014572006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1458
1459 The Type 1 parser now skips over top-level procedures as required
1460 for a `Simplified Parser'. This makes the parser more robust as it
1461 doesn't poke around in PostScript code. Additionally, it makes the
1462 FontDirectory hackery in src/type1/t1load.c unnecessary.
1463
1464 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1465 (skip_literal_string): Add FT_Error as return value.
1466 Handle escapes better.
1467 (skip_string): Add FT_Error as return value.
1468 Don't set `parser->error' but return error code directly.
1469 (skip_procedure): New function.
1470 (ps_parser_skip_PS_token): Handle procedures.
1471 Update code.
1472 (ps_parser_to_token): Update code.
1473 (ps_parser_load_field_table): Handle bbox entries also.
1474
1475 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1476 Add commented-out code for synthetic fonts.
1477
Werner Lemberga2da05c2006-06-25 06:27:27 +000014782006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1479
1480 Fix two hinting bugs as reported in
1481 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1482
1483 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1484 `first_point' member.
1485
1486 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1487 `first_point'.
1488 (TT_Process_Composite_Glyph): Always untouch points.
1489
1490 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1491 `first_point' and `last_point' in case of composite glyphs.
1492 (Ins_IUP): Fix computation of `end_point'.
1493
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014942006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1495
Werner Lembergef3d2c22006-06-25 06:07:14 +00001496 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1497 Mac. The original patch was written by David Sachitano and Lawrence
1498 Coopet, and modified by Sean McBride for MPW compatibility. Only
1499 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001500
Werner Lembergef3d2c22006-06-25 06:07:14 +00001501 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1502 Mac OS X platforms.
1503 (OS_INLINE): Undefine before definition.
1504 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1505 FontAssociation table in FOND resource.
1506 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1507 and fontSize at each entry of FontAssociation table in FOND
1508 resource.
1509 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1510 ffStylOff of FamilyRecord header of FOND resource, the header,
1511 fontSize, fontID at each entry of FontAssociation table, and
1512 StyleMapping table.
1513 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001514
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015152006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1516
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001517 Public API of TrueTypeGX, OpenType, and classic kern table validator
1518 should return `FT_Err_Unimplemented_Feature' if validation service
1519 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001520 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001521 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1522
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001523 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1524 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1525 unavailable.
1526 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1527 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001528
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001529 * src/base/ftotval.c (FT_OpenType_Validate): Return
1530 FT_Err_Unimplemented_Feature if OpenType validation service is
1531 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001532
Werner Lembergb10e45a2006-06-08 07:32:56 +000015332006-06-08 Werner Lemberg <wl@gnu.org>
1534
1535 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1536 errors.
1537
David Turner5f1f7502006-06-07 05:11:50 +000015382006-06-07 David Turner <david@freetype.org>
1539
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001540 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1541 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1542 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001543
David Turner457b4a82006-06-06 08:14:14 +000015442006-06-06 David Turner <david@freetype.org>
1545
Werner Lemberg4836f952006-06-06 12:54:08 +00001546 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001547
Werner Lemberg4836f952006-06-06 12:54:08 +00001548 We change `ps_unicodes_init' so that it also takes a
1549 `free_glyph_name' callback to release the glyph names returned by
1550 `get_glyph_name'
1551
1552 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1553 Renamed to ...
1554 (PS_GetGlyphNameFunc): This.
1555 (PS_FreeGlyphNameFunc): New typedef.
1556 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1557
1558 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1559 argument.
1560 (cff_sid_free_glyph_name): New function.
1561 (cff_cmap_unicode_init): Updated.
1562
1563 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1564
1565 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1566 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001567
1568
David Turner09717352006-06-04 14:33:08 +000015692006-06-04 David Turner <david@freetype.org>
1570
Werner Lembergd724f202006-06-04 15:17:41 +00001571 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1572 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001573 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001574
Werner Lembergd724f202006-06-04 15:17:41 +00001575 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1576 of `face->num_glyphs' which missed the last glyph, due to
1577 the offset-by-1 computation, since the PFR format doesn't
1578 guarantee that glyph index 0 corresponds to the `missing
1579 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001580
Werner Lemberg33779662006-05-26 06:30:05 +000015812006-05-25 Werner Lemberg <wl@gnu.org>
1582
1583 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1584 `-no-undefined'. Reported by Christian Biesinger.
1585
Werner Lemberg24773d62006-05-20 08:53:13 +000015862006-05-19 Brian Weed <bw@imaginengine.com>
1587
1588 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1589 have debug information, and debug libraries use `C7 compatible'
1590 debug info.
1591
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015922006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1593
Werner Lemberga6523a62006-05-20 08:47:01 +00001594 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001595 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001596
Werner Lemberga6523a62006-05-20 08:47:01 +00001597 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1598 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001599
1600 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001601 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001602
16032006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1604
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001605 * build/unix/configure.raw: Add a fallback to disable Carbon
1606 dependency, if configured with no options on Mac OS X.
1607
16082006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1609
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001610 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001611 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001612 the second part of Savannah bug #16590.
1613
Werner Lemberg545c4e52006-05-17 22:55:04 +000016142006-05-18 Werner Lemberg <wl@gnu.org>
1615
1616 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1617 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1618
David Turnerdc3ff312006-05-17 12:59:35 +000016192006-05-17 David Turner <david@freetype.org>
1620
Werner Lemberg545c4e52006-05-17 22:55:04 +00001621 This is a major patch used to drastically improve the performance of
1622 loading glyphs. This both speeds up loading the glyph vectors
1623 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001624
Werner Lemberg545c4e52006-05-17 22:55:04 +00001625 We now use inline assembler code with GCC to implement `FT_MulFix',
1626 which is probably the most important function related to the
1627 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001628
Werner Lemberg545c4e52006-05-17 22:55:04 +00001629 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001630
1631
Werner Lemberg545c4e52006-05-17 22:55:04 +00001632 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1633 `cursor' and `limit'.
1634
1635 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1636 New functions.
1637 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1638 [TEST]: Remove.
1639
1640 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1641 code.
1642
1643 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1644 `FT_ZERO'
1645 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1646 (af_glyph_hints_reload: Rewrite recognition of weak points.
1647
1648 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1649 constant values out of the loops.
1650
1651 * src/autofit/aftypes.h: Updated.
1652
1653 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1654
1655 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1656 product to get orientation.
1657
1658 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1659 (FT_Stream_OpenGzip): Use it to handle small files directly in
1660 memory.
1661
1662 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1663 Improve performance.
1664
1665 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1666 `limit'.
1667
1668 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1669 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1670 exceedingly large values of number of contours. Speed up by
1671 reducing the number of loops.
1672
1673 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1674
1675
1676 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1677 used to detect rogue clients from 4 to 16. This is to prevent some
1678 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1679 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001680
Werner Lembergde2d90a2006-05-17 08:54:30 +000016812007-05-17 Werner Lemberg <wl@gnu.org>
1682
1683 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001684 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001685
16862006-05-16 Werner Lemberg <wl@gnu.org>
1687
1688 * docs/PROBLEMS: Updated icl issues.
1689
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001690----------------------------------------------------------------------------
1691
Werner Lemberg42b63b22007-01-21 21:01:33 +00001692Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001693David Turner, Robert Wilhelm, and Werner Lemberg.
1694
1695This file is part of the FreeType project, and may only be used, modified,
1696and distributed under the terms of the FreeType project license,
1697LICENSE.TXT. By continuing to use, modify, or distribute this file you
1698indicate that you have read the license and understand and accept it
1699fully.
1700
1701
1702Local Variables:
1703version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001704coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001705End: