blob: 017c412afb96838297590aaccd311f639ec16dc4 [file] [log] [blame]
David Turner085bc6e2007-03-05 17:40:03 +000012007-03-05 David Turner <david@freetype.org>
2
David Turnerdddd0682007-03-05 18:23:25 +00003 * src/base/ftinit.c (FT_Init_FreeType): fixed a small memory leak
4 when FT_Init_FreeType fails for some reason
5
David Turner91aaf322007-03-05 18:18:52 +00006 * src/truetype/ttobs.c (tt_size_init_bytecode): bugfix, we need to
7 clear the x_ppem and y_ppem fields of the TT_Size.metrics structure,
8 note those of TT_Size.root.metrics. duh !!
9
David Turner085bc6e2007-03-05 17:40:03 +000010 * src/type1/t1afm.c (T1_Read_PFM): bug fix: read the kerning values
11 as 16-bit *signed* values, not unsigned ones.
12
David Turner601aefe2007-02-21 16:47:49 +0000132007-02-21 David Turner <david@freetype.org>
14
Werner Lembergde5e6862007-02-25 21:06:43 +000015 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
16 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000017
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000182007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
19
20 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
21 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
22 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
23
Werner Lemberga0915172007-02-16 08:12:50 +0000242007-02-16 Werner Lemberg <wl@gnu.org>
25
26 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
27 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
28
David Turner2c4500e2007-02-14 15:08:47 +0000292007-02-14 David Turner <david@freetype.org>
30
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000031 It seems that the following changes fix most of the known
32 interpreter problems with my fonts, but more testing is needed,
33 though.
34
35 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
36 (TT_MulFix14): Rewrite.
37 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
38 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000039
Werner Lembergc6a14082007-02-12 22:08:15 +0000402007-02-12 Werner Lemberg <wl@gnu.org>
41
42 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
43 warnings.
44
45 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
46 (bdf_interpret_style): Ditto.
47
David Turnerc0f9c4a2007-02-12 14:55:03 +0000482007-02-12 David Turner <david@freetype.org>
49
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000050 Simplify projection and dual-projection code interface.
51
Werner Lemberg406d25f2007-02-12 22:01:18 +000052 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
53 FT_Vector' as argument type.
54 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
55 Updated.
56 (CUR_fast_project, CUR_fast_dualproj): New macros.
57 (Project, Dual_Project, Project_x, Project_y): Updated.
58 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
59 macros.
60
61
62 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
63 adjustments for the non-light auto-hinted modes. Gets rid of
64 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000065
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000066 * src/autofit/aflatin.c (af_latin_hints_link_segments,
67 af_latin_hints_compute_edges): Slight optimization of the segment
68 linker and better handling of serif segments to get rid of broken
69 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000070
David Turnerc0f9c4a2007-02-12 14:55:03 +000071
Werner Lemberg442bfb82007-02-12 21:44:10 +000072 Introduce new string functions and the corresponding macros to get
73 rid of various uses of strcpy and other `evil' functions, as well as
74 to simplify a few things.
75
76 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
77 ft_mem_strcpyn): New declarations.
78 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
79 macros.
80 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
81 functions.
82
83 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
84 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
85 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
86 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
87 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
88 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
89 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
90 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +000091
Werner Lemberg406d25f2007-02-12 22:01:18 +000092 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
93
Werner Lemberg582067d2007-02-11 15:03:05 +0000942007-02-11 Werner Lemberg <wl@gnu.org>
95
96 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
97 non-spacing glyphs.
98
Werner Lemberg8f474532007-02-07 08:31:01 +0000992007-02-07 Tom Parker <palfrey@tevp.net>
100
101 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
102 pointer.
103
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001042007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
105
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000106 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
107 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000108 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000109 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
110 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
111 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
112 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000113
114 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
115 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000116 * builds/mac/ftmac.c: Ditto.
117
1182007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
119
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000120 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000121 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000122 #include <ftmac.c>.
123
1242007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
125
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000126 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
127 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
128 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
129 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
130 FT_GetFilePath_From_Mac_ATS_Name.
131 * builds/mac/ftmac.c: Ditto.
132
1332007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
134
Werner Lembergdcbb7082007-02-08 08:54:09 +0000135 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000136 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
137 for passing to FT_New_Face_From_FSSpec.
138
1392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
140
Werner Lembergdcbb7082007-02-08 08:54:09 +0000141 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000142 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000143
144 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
145 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000146 * builds/mac/ftmac.c (OS_INLINE): Ditto.
147
Werner Lemberg313d7772007-02-01 08:10:45 +00001482007-02-01 Werner Lemberg <wl@gnu.org>
149
150 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
151 Explain why applications shouldn't use it. Found by Alexei.
152
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001532007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000154
155 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
156 message.
157
158 * src/gxvalid/gxvmort1.c
159 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
160 message.
161
Werner Lemberg53935932007-01-31 08:53:02 +00001622007-01-31 Werner Lemberg <wl@gnu.org>
163
164
165 * Version 2.3.1 released.
166 =========================
167
168
169 Tag sources with `VER-2-3-1-FINAL'.
170
171 * builds/win32/visualc/freetype.dsp,
172 builds/win32/visualc/freetype.vcproj: s/230/231/.
173 * builds/win32/visualc/index.html: s/221/231/.
174
175 * vms_make.com: Add `ftgasp'.
176
David Turnera7ee6082007-01-30 10:33:53 +00001772007-01-30 David Turner <david@freetype.org>
178
Werner Lemberg53935932007-01-31 08:53:02 +0000179 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000180
Werner Lemberg53935932007-01-31 08:53:02 +0000181 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000182
Werner Lemberg53935932007-01-31 08:53:02 +0000183 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
184 s/2.3.0/2.3.1/.
185
186 * builds/unix/configure.raw (version_info): Set to 9:12:3.
187
188
189 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
190 (af_loader_load_g): Disable the warper (i.e., the light hinting
191 improvements) to make a 2.3.1 bugfix release before introducing a
192 new feature. This should give us more time to tune and improve the
193 warper for the next release.
194
195 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000196
David Turnerd91eebd2007-01-26 15:05:41 +00001972007-01-25 David Turner <david@freetype.org>
198
Werner Lembergbf241762007-01-26 16:08:49 +0000199 For light auto-hinting, improve glyph advance widths and resurrect
200 normal/full hinting to its normal quality.
201
202 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
203 and `xmax_delta'.
204 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
205 and `xmax_delta'.
206
207 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
208 preprocessor conditional with if-clause, handling both light and
209 normal mode.
210
211 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
212 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000213
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002142007-01-25 Werner Lemberg <wl@gnu.org>
215
216 * docs/release: Updated -- Savannah uses a new uploading scheme.
217
David Turnera42567b2007-01-25 12:23:37 +00002182007-01-25 David Turner <david@freetype.org>
219
Werner Lembergd7855662007-01-25 13:53:56 +0000220 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000221
Werner Lembergd7855662007-01-25 13:53:56 +0000222 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
223 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
224 functions.
David Turnera42567b2007-01-25 12:23:37 +0000225
Werner Lembergd7855662007-01-25 13:53:56 +0000226 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000227
Werner Lembergb1be9e82007-01-25 11:50:00 +00002282007-01-25 Werner Lemberg <wl@gnu.org>
229
230 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000231 correctly in a sanity check. Since this function is only used to
232 load local and global functions, any charstring that called the last
233 local/global function would fail otherwise. This fixes Savannah bug
234 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000235
236 * docs/CHANGES: Document it.
237
David Turnerb6de8d12007-01-23 15:51:50 +00002382007-01-23 David Turner <david@freetype.org>
239
Werner Lembergb1be9e82007-01-25 11:50:00 +0000240 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
241 prevented compilation when disabling both the unpatented and the
242 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000243
Werner Lembergb1be9e82007-01-25 11:50:00 +0000244
245 Fix and enable the warper to improve `light' hinting mode. This is
246 not necessarily a final version, but it seems to work well.
247
248 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
249 Disable code.
250 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
251 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
252
253 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
254 (af_warper_compute_line_best): Fix array size of `scores'.
255 (af_warper_compute): Better handling of border cases.
256 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
257 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000258
Werner Lemberg011d1112007-01-21 09:36:00 +00002592007-01-21 Werner Lemberg <wl@gnu.org>
260
Werner Lemberg42b63b22007-01-21 21:01:33 +0000261 * ChangeLog: Split off older entries into...
262 * ChangeLog.22: This new file.
263
2642007-01-21 Werner Lemberg <wl@gnu.org>
265
Werner Lemberg555258f2007-01-21 09:46:37 +0000266 * docs/CHANGES: Document SHZ fix.
267
2682007-01-21 George Williams <gww@silcom.com>
269
270 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
271 points.
272
2732007-01-21 Werner Lemberg <wl@gnu.org>
274
Werner Lemberg011d1112007-01-21 09:36:00 +0000275 * src/sfnt/ttmtx.c (tt_face_get_metrics)
276 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
277
Werner Lemberg87a5a432007-01-17 12:44:39 +00002782007-01-17 Werner Lemberg <wl@gnu.org>
279
Werner Lembergb8003292007-01-17 12:56:25 +0000280
281 * Version 2.3.0 released.
282 =========================
283
284
285 Tag sources with `VER-2-3-0-FINAL'.
286
2872007-01-17 Werner Lemberg <wl@gnu.org>
288
Werner Lemberg87a5a432007-01-17 12:44:39 +0000289 * docs/release: Updated.
290
David Turner22122722007-01-16 20:06:44 +00002912007-01-16 David Turner <david@freetype.org>
292
Werner Lemberg87a5a432007-01-17 12:44:39 +0000293 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
294 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
295 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
296 warnings.
David Turner22122722007-01-16 20:06:44 +0000297
Werner Lemberg267e1d72007-01-15 07:48:09 +00002982007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
299
300 * builds/amiga/makefile, builds/amiga/makefile.os4,
301 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
302
303 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
304
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003052007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
306
307 Fix various compiler warnings.
308
309 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
310 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
311 s/index/strike_index/.
312 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
313
314 * src/gxvalid/gxvmorx5.c
315 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
316
317 * src/truetype/ttinterp.c (Compute_Point_Displacement),
318 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
319 uninitialized variables.
320
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003212007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
322
323 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
324
Werner Lemberg281c1482007-01-13 22:50:51 +00003252007-01-13 Werner Lemberg <wl@gnu.org>
326
327 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
328 versions up to 0x3FF without complaining.
329
Werner Lembergac250b22007-01-13 14:01:36 +00003302007-01-13 Derek Clegg <dclegg@apple.com>
331
332 Add FT_Get_PS_Font_Info interface to CFF driver.
333
334 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
335 (CFF_FontRec): Add `font_info' field.
336
337 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
338 (cff_font_done): Free font->font_info if necessary.
339
340 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
341 (cff_service_ps_info): Register cff_ps_get_font_info.
342
Werner Lemberg23df31a2007-01-13 08:45:00 +00003432007-01-13 Werner Lemberg <wl@gnu.org>
344
345 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
346 with C++ compiler.
347
348 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
349 af_glyph_hints_dump_edges): Ditto.
350
351 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
352 `modules.cfg').
353
354 * src/sfnt/ttsbit0.h: Remove.
355
356 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
357
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003582007-01-12 David Turner <david@freetype.org>
359
360 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
361 bug in the bitmap emboldener if the pitch of the source bitmap is
362 much larger than its width.
363
364 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
365 compilation warning.
366
Werner Lemberg6d96d312007-01-12 10:30:19 +00003672007-01-12 Werner Lemberg <wl@gnu.org>
368
369 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
370 `automake' CVS module from sources.redhat.com.
371
Werner Lemberg17432b52007-01-12 09:28:44 +00003722007-01-11 Werner Lemberg <wl@gnu.org>
373
374 * src/type1/t1load.c (is_space): Removed.
375 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
376 (parse_charstrings): Use IS_PS_TOKEN.
377
378
379 * autogen.sh: Avoid bash specific syntax.
380
David Turner038ace22007-01-11 15:00:59 +00003812007-01-11 David Turner <david@freetype.org>
382
Werner Lemberg17432b52007-01-12 09:28:44 +0000383 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000384
Werner Lemberg17432b52007-01-12 09:28:44 +0000385 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000386
Werner Lemberg17432b52007-01-12 09:28:44 +0000387 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
388 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000389 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000390
Werner Lemberg17432b52007-01-12 09:28:44 +0000391 * autogen.sh: Small fix to get it working on Mac OS X properly:
392 The issue is that GNU libtool is called `glibtool' on this platform,
393 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000394
David Turner2628ea92007-01-10 13:15:56 +00003952007-01-10 David Turner <david@freetype.org>
396
Werner Lemberg17432b52007-01-12 09:28:44 +0000397 * all-sources: Tag all sources with VER-2-3-0-RC1 and
398 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000399
Werner Lemberg17432b52007-01-12 09:28:44 +0000400 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
401 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
402 version number to 2.3.0.
403
404 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
405 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000406
407 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000408 include/freetype/ftlcdfil.h: Update reference documentation with
409 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000410
Werner Lemberg17432b52007-01-12 09:28:44 +0000411 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
412 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000413
Werner Lembergbf02d392007-01-10 07:07:37 +00004142007-01-10 Derek Clegg <dclegg@apple.com>
415
416 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
417 values.
418
David Turnerf48b60e2007-01-08 15:15:32 +00004192007-01-08 David Turner <david@freetype.org>
420
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000421 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000422
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000423 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
424 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000425 corresponding to a given character pixel size.
426
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000427 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
428 `gasp' table, in order to avoid potential problems with later
429 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000430
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000431 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
432 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000433
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000434 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
435 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
436 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
437 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000438
Werner Lemberge6b6f372007-01-07 00:06:47 +00004392007-01-07 Werner Lemberg <wl@gnu.org>
440
Werner Lembergb8004d22007-01-07 09:13:38 +0000441 * src/cid/cidparse.c (cid_parser_new): Improve error message for
442 Type 11 fonts.
443 Scan for `/sfnts' token.
444
4452007-01-07 Werner Lemberg <wl@gnu.org>
446
447 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000448
Werner Lembergbe5f7972007-01-06 07:51:48 +00004492007-01-06 Werner Lemberg <wl@gnu.org>
450
451 * src/cff/cffload.c (cff_index_init): Remove unused variable.
452 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
453
David Turnera8cf42b2007-01-04 16:46:46 +00004542007-01-04 David Turner <david@freetype.org>
455
Werner Lembergf6294392007-01-06 07:47:45 +0000456 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
457 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000458
Werner Lembergf6294392007-01-06 07:47:45 +0000459
460 Do not allocate interpreter-specific tables in memory if we are not
461 going to load glyphs with the bytecode interpreter anyway.
462
463 * src/truetype/ttgload.c (tt_loader_init): Load execution context
464 only if glyph is hinted.
465 Updated.
466 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
467 and `cvs_ready'.
468 Add `tt_size_ready_bytecode' declaration.
469 * src/truetype/ttobjs.c (tt_size_done_bytecode,
470 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
471 (tt_size_init): Move most code into `tt_size_init_bytecode'.
472 (tt_size_done): Move most code into `tt_size_done_bytecode'.
473 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000474
David Turner91a34022007-01-05 14:47:08 +0000475
Werner Lembergf6294392007-01-06 07:47:45 +0000476 Don't extract the metrics table from the SFNT font file. Instead,
477 reparse it on each glyph load. The runtime difference is not
478 noticeable, and it can save a lot of heap memory when memory-mapped
479 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000480
Werner Lembergf6294392007-01-06 07:47:45 +0000481 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
482 `horz_metrics_offset' and `vert_metrics_ofset'.
483 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
484 Updated.
485
486
487 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
488
489
490 Do not load the CFF index offsets into memory, since this wastes a
491 *lot* of heap memory with large Asian CFF fonts. There is no
492 significant performance loss.
493
494 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
495 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
496 `data_size'.
497 (CFF_CharsetRec): Add field `num_glyphs'.
498
499 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
500 cff_charset_cid_to_gindex): New functions.
501 (cff_new_index): Renamed to...
502 (cff_index_init): This. Update all callers.
503 Updated -- some code has been moved to `cff_index_load_offsets'.
504 (cff_done_index): Renamed to...
505 (cff_index_done): This. Update all callers.
506 (cff_index_get_pointers, cff_index_access_element): Updated to use
507 stream offsets.
508 (cff_charset_compute_cids): Set `num_glyphs' field.
509 (cff_encoding_load): Updated.
510
511 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000512
5132007-01-04 David Turner <david@freetype.org>
514
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000515 * docs/INSTALL.UNIX: Simplify some parts, add reference to
516 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000517
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000518 * README.CVS: Add common problem description and solution
519 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000520
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000521 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000522
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000523 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000524
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000525 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000526
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000527 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
528 (TWorker): This.
529 Remove `count_table' and `memory'.
530 Make `grays' a pointer.
531 (TRaster): New structure.
532 (count_table): New static array.
533 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
534 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
535 ft_black_set_mode, ft_black_render): Updated.
536 (ft_black_init): Don't initialize `count_table'.
537 (ft_black_reset): Use the render pool. This saves about 6KB of
538 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000539
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000540 * src/smooth/ftgrays.c (TRaster): Replaced with...
541 (TWorker): This.
542 Remove `memory'.
543 (TRaster): New structure.
544
545 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
546 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
547 gray_render_span, gray_raster_render): Updated.
548 (gray_raster_reset): Use the render pool. This saves about 6KB of
549 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000550
David Turner8a6c44e2007-01-04 17:03:11 +0000551 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
552 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000553 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
554 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
555 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000556
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000557 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
558 Remove a typo that results in no hinting and a memory leak with some
559 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000560
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000561 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000562 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000563 CFF_Faces in it. We need to close all faces before destroying the
564 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000565
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005662007-01-02 Werner Lemberg <wl@gnu.org>
567
568 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
569 Remove compiler warning.
570
David Turner9207e002007-01-02 16:58:13 +00005712007-01-02 David Turner <david@freetype.org>
572
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000573 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000574
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005752006-12-31 Masatake YAMATO <jet@gyve.org>
576
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000577 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
578 function.
579 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000580 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000581 `gxv_kern_subtable_fmt0_pairs_validate'.
582
David Turner115b4422006-12-22 11:37:05 +00005832006-12-22 David Turner <david@freetype.org>
584
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000585 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
586 warnings.
David Turner115b4422006-12-22 11:37:05 +0000587
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000588 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
589 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000590
Werner Lemberg4755bf72006-12-16 08:58:44 +00005912006-12-16 Anders Kaseorg <anders@kaseorg.com>
592
593 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
594 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
595
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00005962006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
597
Werner Lemberg9b774e22007-01-16 06:11:27 +0000598 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000599 sync with the modification by Jens Claudius on 2006-08-22; cf.
600 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 +0000601
6022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
603
604 * src/base/ftmac.c: Specialized for Mac OS X only.
605 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
606 * builds/unix/configure.raw: Ditto. When explicit switches for
607 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
608 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
609
6102006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
611
612 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
613 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
614 instead of src/base/ftmac.c
615 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
616 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
617 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
618 that cannot be built at present.
619
6202006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
621
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000622 * src/base/ftobjs.c: Improvement of resource fork handler for
623 POSIX, cf.
624 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000625 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
626 format or .dfont, to simulate the face index number counted by ftmac.c.
627 (IsMacResource): Return the number of scalable faces correctly.
628
Werner Lembergec5b4502006-12-10 07:51:38 +00006292006-12-10 Werner Lemberg <wl@gnu.org>
630
631 * builds/toplevel.mk (version): Protect against `distclean' target.
632
Werner Lembergb26b3142006-12-09 20:01:43 +00006332006-12-09 Werner Lemberg <wl@gnu.org>
634
635 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
636 or `type'.
637
638 * builds/freetype.mk (version): Extracted from freetype.h, using
639 GNU make's built-in string functions.
640 (refdoc): Use $(version) instead of static version number.
641
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006422006-12-08 Werner Lemberg <wl@gnu.org>
643
644 * builds/toplevel.mk (dist): Extract version number from freetype.h.
645
Werner Lemberg15c29502006-12-09 07:29:54 +00006462006-12-08 Vladimir Volovich <vvv@vsu.ru>
647
648 * src/tools/apinames (State): Remove final comma in structure -- xlc
649 v5 under AIX 4.3 doesn't like this.
650
David Turnerdbf3b432006-12-07 21:18:09 +00006512006-12-07 David Turner <david@freetype.org>
652
Werner Lemberg256a3512006-12-08 06:49:33 +0000653 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
654 to the spacing of auto-fitted glyphs. This only impacts rare
655 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000656
Werner Lemberg11171312006-12-03 09:43:40 +00006572006-12-03 Werner Lemberg <wl@gnu.org>
658
659 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
660
Werner Lemberg960ba592006-12-01 08:20:47 +00006612006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000662
Werner Lemberg960ba592006-12-01 08:20:47 +0000663 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
664 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
665 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000666
David Turner80658e52006-11-28 08:09:20 +0000667
Werner Lemberg960ba592006-12-01 08:20:47 +0000668 * include/freetype/ftxf86.h: Fix and extend comment so that it
669 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000670
Werner Lemberg960ba592006-12-01 08:20:47 +0000671 * include/freetype/ftchapters.h: Add `font_format' section.
672
673
674 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
675 to TOC in index page.
676
6772006-11-28 David Turner <david@freetype.org>
678
679 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
680 trying to render into a zero-width/height bitmap, not an error code.
681
682 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
683
684 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
685 ones instead.
686
687 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
688 variable.
David Turner80658e52006-11-28 08:09:20 +0000689
Werner Lemberg8636c292006-11-26 22:28:13 +00006902006-11-26 Pierre Hanser <hanser@club-internet.fr>
691
692 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
693
Werner Lemberg960ba592006-12-01 08:20:47 +00006942006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000695
Werner Lemberg960ba592006-12-01 08:20:47 +0000696 * src/autofit/afhints.c (af_glyph_hints_dump_points,
697 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
698 Add stubs to link the `ftgrid' test program when debugging is
699 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000700
Werner Lemberg960ba592006-12-01 08:20:47 +00007012006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000702
703 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000704 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
705
706 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
707 Emit more sensible information.
708
709 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
710
711 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
712 rounding of blue values.
713 (af_latin_hints_compute_segments): Hint segment heights.
714 (af_latin_hints_link_segments): Reduce `len_score' value.
715 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
716 value and use `height' member for comparisons.
717 (af_latin_hint_edges): Extend logging message.
718 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000719
Werner Lemberg91959bf2006-11-22 10:36:55 +00007202006-11-22 Werner Lemberg <wl@gnu.org>
721
722 Fix Savannah bug #15553.
723
724 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
725 program after a change from mono to grayscaling (and vice versa).
726 Use correct constant for comparison to get `exec->grayscale'.
727
Werner Lemberg913a3652006-11-19 09:19:17 +00007282006-11-18 Werner Lemberg <wl@gnu.org>
729
730 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000731 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000732 This patch fixes Savannah bug #18301.
733
734 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
735 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
736 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
737 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
738 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
739 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
740 (FNT_Load_Glyph): Check validity of `glyph_index'.
741
David Turner7bab6ae2006-11-13 11:25:06 +00007422006-11-13 David Turner <david@freetype.org>
743
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000744 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
745 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000746
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000747 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
748 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
749 when building the library to change the default LCD filter to be
750 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000751
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000752 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000753
David Turner8765c712006-11-10 16:49:42 +00007542006-11-10 David Turner <david@freetype.org>
755
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000756 * src/smooth/ftsmooth.c: API change for the LCD
757 filter. The FT_LcdFilter value is an enumeration describing which
758 filter to apply, with new values FT_LCD_FILTER_LIGHT and
759 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
760 algorithm which produces strong color fringes for everything
761 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000762
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000763 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
764 second parameter to an enum type.
765
766 * src/base/ftlcdfil.c (USE_LEGACY): Define.
767 (_ft_lcd_filter): Rename to...
768 (_ft_lcd_filter_fir): This.
769 Update parameters.
770 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
771 (FT_Library_Set_LcdFilter): Update parameters.
772 Handle new filter modes.
773
774 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
775 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
776 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
777 callback and update other fields.
778
779 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
780 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
781 Other minor improvements.
782
783 * src/autofit/aflatin.c: Various tiny improvements that drastically
784 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
785 (af_latin_hints_compute_edges): Fix typo.
786 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000787
David Turner4e9cc3c2006-11-09 16:31:52 +00007882006-11-09 David Turner <david@freetype.org>
789
Werner Lemberg49c77a82006-11-09 21:51:57 +0000790 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
791 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000792
Werner Lemberg5e430892006-11-07 09:35:03 +00007932006-11-07 Zhe Su <james.su@gmail.com>
794
795 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
796 also.
797
Werner Lemberg111b5ae2006-11-03 09:40:12 +00007982006-11-03 Werner Lemberg <wl@gnu.org>
799
800 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
801
David Turner40604742006-11-02 16:37:35 +00008022006-11-02 David Turner <david@freetype.org>
803
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000804 Add a few tweaks to better handle serif fonts.
805 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000806
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000807 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
808 segments that are less than 1.5 pixels high. This gets rid of
809 *many* corner cases with serifs.
810 (af_latin_align_linked_edge): Add logging message.
811 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
812 Add logging messages.
813 Handle AF_EDGE_FLAG flag specially.
814
815 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
816 _af_debug_disable_blue_hints, and _af_debug_hints variables.
817
818 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
819 Update external declarations.
820 (af_corner_orientation, af_corner_is_flat): Replaced by...
821
822 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
823 ft_corner_is_flat): These declarations.
824
825 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
826 Comment out. Replaced by...
827
828 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
829 These functions. Update all callers.
830 (FT_Add64) [!FT_LONG64]: Simplify.
831
832 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
833 (af_direction_compute): Add a missing FT_ABS call. This bug caused
834 production of garbage by missing lots of segments.
835
836 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
837
838 * src/autofit/afloader.c (af_loader_init, af_loader_done)
839 [AF_DEBUG]: Set _af_debug_hints.
840
841
842 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
843 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
844 and ft_corner_orientation.
845
846
847 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000848
Werner Lemberge88c5262006-10-24 05:46:26 +00008492006-10-24 Werner Lemberg <wl@gnu.org>
850
851 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
852
853 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
854 as argument.
855
David Turnera1861392006-10-23 16:00:59 +00008562006-10-23 Zhe Su <zsu@novell.com>
857
Werner Lemberg715e96e2006-10-24 05:28:45 +0000858 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
859 better deal with broken Asian fonts with strange glyphs, having
860 self-intersections and other peculiarities. The used algorithm is
861 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000862
David Turnere140f142006-10-23 08:56:57 +00008632006-10-23 David Turner <david@freetype.org>
864
Werner Lemberg715e96e2006-10-24 05:28:45 +0000865 Speed up the CFF font loader. With some large CFF fonts,
866 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000867
Werner Lemberg715e96e2006-10-24 05:28:45 +0000868 * src/cff/cffload.c (cff_get_offset): Removed.
869 (cff_new_index): Inline functionality of `cff_get_offset'.
870 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
871 (cff_charset_done): Call `cff_charset_free_cids'.
872 (cff_charset_load): Call `cff_charset_compute_cids'.
873 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
874
875 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
876 with FT_NEXT_XXX.
877
878
879 Speed up the Postscript hinter, with more than 100% speed increase
880 on my machine.
881
882 * src/pshinter/pshalgo.c (psh_corner_is_flat,
883 psh_corner_orientation): New functions.
884 (psh_glyph_compute_inflections): Merge loops for efficiency.
885 Use `psh_corner_orientation'.
886 (psh_glyph_init): Use `psh_corner_is_flat'.
887 (psh_hint_table_find_strong_point): Renamed to...
888 (psh_hint_table_find_strong_points): This.
889 Rewrite, adding argument to handle all points at once.
890 Update all callers.
891 (PSH_MAX_STRONG_INTERNAL): New macro.
892 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000893
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00008942006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
895
896 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000897 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000898
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00008992006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
900
901 * docs/INSTALL.CROSS: New document file for cross-building.
902
903 * builds/unix/configure.raw: Preliminary cross-building support.
904 Find native C compiler and pass it by CC_BUILD, and
905 find suffix for native executable and pass it by EXEEXT_BUILD.
906 Also suffix for target executable is passed by EXEEXT.
907
Werner Lembergb9e6d692006-10-15 08:58:40 +0000908 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
909 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000910 CC_BUILD and EXEEXT_BUILD.
911
Werner Lembergb9e6d692006-10-15 08:58:40 +0000912 * builds/exports.mk (APINAMES_EXE): Change the extension for
913 apinames from the suffix for target (E) to that for building host
914 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000915
Werner Lemberg82a07e92006-10-12 06:20:44 +00009162006-10-12 Werner Lemberg <wl@gnu.org>
917
918 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
919 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
920 which reference those files.
921
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009222006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
923
Werner Lembergb9e6d692006-10-15 08:58:40 +0000924 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
925 embedded in freetype2.pc and freetype-config. Use it to record
926 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000927
928 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
929
930 * builds/unix/freetype-config.in: Ditto.
931
Werner Lemberg28e17d92006-10-11 17:27:47 +00009322006-10-11 Werner Lemberg <wl@gnu.org>
933
934 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
935 development.
936
Jens Claudius336d2292006-10-03 08:53:37 +00009372006-10-03 Jens Claudius <jens.claudius@yahoo.com>
938
939 * include/freetype/config/ftstdlib.h: Cast away volatileness from
940 argument to ft_setjmp.
941
942 * include/freetype/internal/ftvalid.h: Add comment that
943 ft_validator_run must not be used.
944
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009452006-10-01 Werner Lemberg <wl@gnu.org>
946
947 * src/base/ftbase.c: Undo change from 2006-09-30.
948
949 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
950
9512006-09-30 David Turner <david@freetype.org>
952
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000953 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
954 s/unpatented_hinting/ignore_unpatented_hinter/.
955 Update all callers.
956
957 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
958 auto-hinting shall be used or not.
959
960 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000961
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009622006-09-30 Werner Lemberg <wl@gnu.org>
963
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000964 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
965 in use).
966
967 * src/base/ftbase.c: Include `ftlcdfil.c'.
968
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009692006-09-29 Werner Lemberg <wl@gnu.org>
970
971 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
972 overlapping segments. Bug reported by Stefan Koch.
973
David Turnerad830712006-09-27 16:20:59 +00009742006-09-28 David Turner <david@freetype.org>
975
Werner Lemberg2c002e12006-09-29 21:31:53 +0000976 Fix a bug in the automatic unpatented hinting support which prevents
977 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000978
Werner Lemberg2c002e12006-09-29 21:31:53 +0000979 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
980 s/force_autohint/unpatented_hinting/. Update all callers.
981
982 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
983
984 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000985
David Turner8a317cf2006-09-27 07:52:48 +00009862006-09-27 David Turner <david@freetype.org>
987
Werner Lemberg2c002e12006-09-29 21:31:53 +0000988 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000989
David Turner8a317cf2006-09-27 07:52:48 +0000990
David Turnere140f142006-10-23 08:56:57 +0000991 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000992 In a default build, the function `FT_Library_SetLcdFilter' returns
993 `FT_Err_Unimplemented_Feature'; you need to #define
994 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
995 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000996
Werner Lemberg2c002e12006-09-29 21:31:53 +0000997 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000998
Werner Lemberg2c002e12006-09-29 21:31:53 +0000999 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1000 typedef.
1001 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1002 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001003
Werner Lemberg2c002e12006-09-29 21:31:53 +00001004 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1005 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001006
Werner Lemberg2c002e12006-09-29 21:31:53 +00001007 Handle subpixel rendering.
1008 Simplify function.
1009 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1010 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1011
1012 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1013 pointing to <freetype/ftlcdfil.h>.
1014
1015 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1016 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1017
1018 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001019
Werner Lemberge20df4a2006-09-27 06:29:21 +000010202006-09-26 David Bustin
1021
1022 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1023 correctly. Reported as Savannah bug #17843.
1024
David Turner6f8c6222006-09-26 15:42:44 +000010252006-09-26 David Turner <david@freetype.org>
1026
Werner Lemberg110246c2006-09-26 21:55:44 +00001027 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1028 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1029 horizontal and vertical hinting for the purpose of debugging the
1030 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001031
Werner Lemberg110246c2006-09-26 21:55:44 +00001032 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1033 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001034
Werner Lemberg110246c2006-09-26 21:55:44 +00001035 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1036
1037 * include/freetype/config/ftoption.h, devel/ftoption.h
1038 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1039 we want to compile LCD-optimized rendering code (à la ClearType) or
1040 not. The macro *must* be disabled in default builds of the library
1041 for patent reasons.
1042
1043 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1044 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1045 isn't defined at compile time. This only changes the content of the
1046 rendered glyph to match the one of normal gray-level rendering,
1047 hence clients should not need to be modified.
1048
1049 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001050
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010512006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1052
1053 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1054 LWFN fails and both are available.
1055
David Turnerf3050052006-09-11 12:00:32 +000010562006-09-11 David Turner <david@freetype.org>
1057
Werner Lembergf9644552006-09-12 13:48:10 +00001058 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1059 report their English names through an Apple Roman
1060 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001061
Werner Lembergf9644552006-09-12 13:48:10 +00001062 If the font uses another name entry with language_id == English, it
1063 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001064
Werner Lembergf9644552006-09-12 13:48:10 +00001065 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1066 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001067
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010682006-09-05 Werner Lemberg <wl@gnu.org>
1069
1070 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001071 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001072 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1073 `HAN NOM B.ttf').
1074
1075 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1076
David Turner772e55d2006-09-05 09:45:15 +000010772006-09-05 David Turner <david@freetype.org>
1078
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001079 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001080
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001081 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1082 (TRaster): Remove `count_ex' and `count_ey'.
1083 (gray_find_cell): Remove 2nd and 3rd argument.
1084 (gray_alloc_cell): Merged with `gray_find_cell'.
1085 (gray_record_cell): Simplify.
1086 (gray_set_cell): Rewrite.
1087 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1088 (gray_render_span): Don't use FT_MEM_SET for small values.
1089 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1090 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1091 bitmap scanline.
1092 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001093
David Turneraa557a92006-09-04 16:42:44 +000010942006-09-04 David Turner <david@freetype.org>
1095
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001096 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1097 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001098
Werner Lemberg2d8629b2006-09-03 06:18:45 +000010992006-09-03 Werner Lemberg <wl@gnu.org>
1100
1101 * devel/ftoption.h: Synchronize with
1102 include/freetype/config/ftoption.h.
1103
1104 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1105 variable declaration.
1106 (gray_convert_glyph): Fix compiler warnings.
1107
David Turner6d79f212006-09-01 14:09:35 +000011082006-09-01 David Turner <david@freetype.org>
1109
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001110 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1111 to recognize a few fonts that require the automatic unpatented
1112 loader.
David Turnerbd502952006-09-01 19:05:24 +00001113
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001114 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1115 rasterizer. The speed improvement is between 15% and 25%, depending
1116 on the font data.
1117
1118 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1119 (TCell): Redefine.
1120 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1121 (gray_init_cells): Updated.
1122 (gray_find_cell, gray_alloc_cell): New functions.
1123 (gray_record_cell): Rewritten to use `gray_find_cell' and
1124 `gray_alloc_cell'.
1125 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1126 QSORT_THRESHOLD):
1127 Removed.
1128 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1129 gray_dump_cells): Removed.
1130 (gray_sweep): Rewritten.
1131 (gray_convert_glyph): Rewrite code which used one of the sorting
1132 functions.
1133 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001134
Werner Lembergd898aed2006-08-29 09:50:34 +000011352006-08-29 Dr. Werner Fink <werner@suse.de>
1136
1137 * configure: Make it possible to handle configure options which
1138 have strings containing spaces.
1139
11402006-08-27 David Turner <david@freetype.org>
1141
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001142 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1143 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1144 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1145
1146 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1147 src/truetype/truetype.c, src/truetype/ttdriver.c,
1148 src/truetype/ttgload.c, src/truetype/ttgload.h,
1149 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1150 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1151 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1152
1153 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1154 member `force_autohint'.
1155
1156 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1157
1158 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1159 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001160
Jens Claudiusa787f452006-08-27 11:26:18 +000011612006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1162
1163 Fix miscellaneous compiler warnings.
1164
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001165 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1166 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001167
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001168 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1169 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1170 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001171
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001172 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1173 volatileness of argument to ft_longjmp. Spotted by Werner
1174 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001175
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001176 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1177 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001178
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001179 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1180 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001181
Werner Lembergc4c35b72006-08-27 08:03:46 +000011822006-08-27 Werner Lemberg <wl@gnu.org>
1183
1184 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1185 Reported by Jens.
1186
Jens Claudius088e44e2006-08-22 14:24:30 +000011872006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001188
Jens Claudius088e44e2006-08-22 14:24:30 +00001189 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001190 about addresses of volatile objects passed as function arguments as
1191 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001192
Werner Lembergc4c35b72006-08-27 08:03:46 +00001193 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1194 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001195
1196 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1197 argument `table' a pointer to a volatile object.
1198
1199 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1200 argument `table' a pointer to a volatile object.
1201
Jens Claudius2652bd52006-08-18 17:20:37 +000012022006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1203
1204 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1205 variable `_sfnt' as volatile since it must keep its value across
1206 a call to ft_setjmp.
1207 (gxv_validate): Same for local variables `memory' and `valid'.
1208 (classic_kern_validate): Same for local variables `memory',
1209 `ckern', and `valid'.
1210
1211 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1212 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1213 `jstf', and 'valid'.
1214
1215 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1216 local variable `cmap'.
1217
David Turner9fbfc6a2006-08-16 09:11:31 +000012182006-08-16 David Turner <david@freetype.org>
1219
Werner Lemberg12342992006-08-19 11:18:09 +00001220 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1221 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001222
Werner Lemberg12342992006-08-19 11:18:09 +00001223 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1224 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001225
David Turner33f5f242006-08-16 16:50:55 +00001226
Werner Lemberg12342992006-08-19 11:18:09 +00001227 Improvements to native TrueType hinting. This is a first try,
1228 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1229
1230 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1231 `extra_points2'.
1232
1233 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1234 `orus'.
1235
1236 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1237 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1238 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1239 handle `extra_points2'.
1240
1241 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1242 Remove compiler warning.
1243 (cur_to_arg): Remove macro.
1244 (TT_Hint_Glyph): Updated.
1245 (TT_Process_Simple_Glyph): Handle `orus'.
1246
1247 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1248 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1249 (LOC_Ins_IUP): Renamed to...
1250 (IUP_WorkerRec): This.
1251 Add `orus' member.
1252 (Shift): Renamed to...
1253 (_iup_worker_shift): This.
1254 Updated.
1255 (Interp): Renamed to...
1256 (_iup_worker_interpolate): This.
1257 Updated to handle `orus'.
1258 (Ins_IUP): Updated.
1259
1260 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1261 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001262
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012632006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1264
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001265 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001266 build ftvalid in ft2demos. This has been inadvertedly changed
1267 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001268
12692006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1270
Werner Lemberg12342992006-08-19 11:18:09 +00001271 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1272 Jens:
1273 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001274
Werner Lemberg12342992006-08-19 11:18:09 +00001275 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1276 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001277
1278 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1279
Jens Claudius9950adc2006-08-13 12:14:36 +000012802006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1281
Werner Lemberg12342992006-08-19 11:18:09 +00001282 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1283 T1_TOKEN_TYPE_KEY.
1284 (T1_FieldRec): Add `dict'.
1285 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1286 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1287 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001288
Werner Lemberg12342992006-08-19 11:18:09 +00001289 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1290 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001291
1292 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1293
1294 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001295 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1296 not T1_TOKEN_TYPE_ANY.
1297 (ps_parser_load_field): Make sure a token that should be a string or
1298 name is really a string or name.
1299 Avoid memory leak if a keyword has been already encountered and its
1300 value is overwritten.
1301 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1302 T1_FIELD_XXX.
1303 (parse_dict): Ignore keywords that occur in the wrong dictionary
1304 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001305
Werner Lemberg12342992006-08-19 11:18:09 +00001306 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1307 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001308
Werner Lemberg12342992006-08-19 11:18:09 +00001309 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1310 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001311
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013122006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1313
1314 Move creation of field `buildchar' of T1_DecoderRec out of
1315 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1316 of it.
1317
1318 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1319 and `T1_Compute_Max_Advance'.
1320
1321 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1322 Remove field `face', add `len_buildchar'.
1323
1324 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1325 field `buildchar'.
1326
1327 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1328 finisher for T1_Decoder.
1329 (cid_slot_load_glyph): Do not ignore failure when initializing the
1330 T1_Decoder.
1331
1332 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1333 Updated.
1334 (t1_decoder_init): Remove initialization of fields `buildchar' and
1335 `len_buildchar'.
1336 (t1_decoder_done): Remove deallocation of field `buildchar'.
1337
1338 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1339 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1340 T1_Decoder.
1341 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1342 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1343 case of error.
1344
1345 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1346 `buildchar' of T1_FaceRec.
1347
1348 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1349 `buildchar' of T1_FaceRec.
1350
Werner Lemberg1a380e02006-07-14 18:28:08 +000013512006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1352
1353 * freetype2/include/freetype/internal/psaux.h: New macros
1354 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1355 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1356 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1357 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1358 (T1_DecoderRec): New fields `buildchar' and `face'.
1359 (IS_PS_TOKEN): New macro.
1360
1361 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1362 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1363
1364 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1365 `default_design_vector' and `num_default_design_vector'.
1366
1367 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1368 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1369 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1370
1371 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1372 `token' argument to be NULL if we want only to count the number of
1373 tokens.
1374 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1375 want to skip the array.
1376 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1377 want to skip the array.
1378
1379 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1380 support for (partially commented out) othersubrs 19-25, 27, and 28.
1381 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1382 (t1_decoder_done): Release new field `buildchar'.
1383
1384 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1385 functions.
1386 (t1_keywords): Register them.
1387 (t1_allocate_blend): Updated.
1388 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1389 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1390 (parse_dict): Remove `keyword_flags' argument.
1391 Use new macro IS_PS_TOKEN.
1392 Changed function so that later PostScript definitions override
1393 earlier ones.
1394 (t1_init_loader): Initialize new field `keywords_encountered'.
1395 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1396 `len_buildchar'.
1397 Remove `keywords_flags'.
1398
1399 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1400 `keywords_encountered'.
1401 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1402
1403 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1404 New entries for parsing /NDV, /CDV, and /DesignVector.
1405
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014062006-07-07 Werner Lemberg <wl@gnu.org>
1407
1408 Add many checks to protect against malformed PCF files.
1409
1410 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1411 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1412
1413 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1414 data and check that tables don't overlap (using a simple
1415 bubblesort).
1416 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1417 New macros which give the size of data structures in the data
1418 stream.
1419 (pcf_get_properties): Use rough estimates to get array size limits.
1420 Assign `face->nprops' and `face->properties' earlier so that a call
1421 to PCF_Face_Done can do the clean-up in case of error.
1422 Protect against invalid string offsets.
1423 (pcf_get_metrics): Clean up code.
1424 Adjust tracing message levels.
1425 Use rough estimate to get array size limit.
1426 (pcf_get_bitmaps): Clean up code.
1427 Adjust tracing message levels.
1428 Use rough estimates to get offset limits.
1429 (pcf_get_encodings): Adjust tracing message level.
1430 (pcf_get_accel): Clean up code.
1431
Werner Lemberg8eb05252006-06-27 06:20:01 +000014322006-06-26 Werner Lemberg <wl@gnu.org>
1433
1434 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1435 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1436
Werner Lemberg24703f82006-06-26 19:12:51 +000014372006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1438
1439 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1440 (t1_decoder_parse_charstrings): Operator with
1441 opcode 15 pops its two arguments.
1442 Handle the case where the pops of an othersubr may be part of a
1443 subroutine.
1444 Handle unknown othersubrs gracefully: count their operands and let
1445 the following pop operators push the operands as the results onto
1446 the Type1 stack.
1447 Improve handling of setcurrentpoint opcode.
1448
Werner Lembergc011f4c2006-06-26 09:40:00 +000014492006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1450
1451 The Type 1 parser now skips over top-level procedures as required
1452 for a `Simplified Parser'. This makes the parser more robust as it
1453 doesn't poke around in PostScript code. Additionally, it makes the
1454 FontDirectory hackery in src/type1/t1load.c unnecessary.
1455
1456 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1457 (skip_literal_string): Add FT_Error as return value.
1458 Handle escapes better.
1459 (skip_string): Add FT_Error as return value.
1460 Don't set `parser->error' but return error code directly.
1461 (skip_procedure): New function.
1462 (ps_parser_skip_PS_token): Handle procedures.
1463 Update code.
1464 (ps_parser_to_token): Update code.
1465 (ps_parser_load_field_table): Handle bbox entries also.
1466
1467 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1468 Add commented-out code for synthetic fonts.
1469
Werner Lemberga2da05c2006-06-25 06:27:27 +000014702006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1471
1472 Fix two hinting bugs as reported in
1473 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1474
1475 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1476 `first_point' member.
1477
1478 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1479 `first_point'.
1480 (TT_Process_Composite_Glyph): Always untouch points.
1481
1482 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1483 `first_point' and `last_point' in case of composite glyphs.
1484 (Ins_IUP): Fix computation of `end_point'.
1485
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014862006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1487
Werner Lembergef3d2c22006-06-25 06:07:14 +00001488 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1489 Mac. The original patch was written by David Sachitano and Lawrence
1490 Coopet, and modified by Sean McBride for MPW compatibility. Only
1491 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001492
Werner Lembergef3d2c22006-06-25 06:07:14 +00001493 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1494 Mac OS X platforms.
1495 (OS_INLINE): Undefine before definition.
1496 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1497 FontAssociation table in FOND resource.
1498 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1499 and fontSize at each entry of FontAssociation table in FOND
1500 resource.
1501 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1502 ffStylOff of FamilyRecord header of FOND resource, the header,
1503 fontSize, fontID at each entry of FontAssociation table, and
1504 StyleMapping table.
1505 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001506
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015072006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1508
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001509 Public API of TrueTypeGX, OpenType, and classic kern table validator
1510 should return `FT_Err_Unimplemented_Feature' if validation service
1511 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001512 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001513 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1514
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001515 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1516 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1517 unavailable.
1518 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1519 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001520
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001521 * src/base/ftotval.c (FT_OpenType_Validate): Return
1522 FT_Err_Unimplemented_Feature if OpenType validation service is
1523 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001524
Werner Lembergb10e45a2006-06-08 07:32:56 +000015252006-06-08 Werner Lemberg <wl@gnu.org>
1526
1527 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1528 errors.
1529
David Turner5f1f7502006-06-07 05:11:50 +000015302006-06-07 David Turner <david@freetype.org>
1531
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001532 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1533 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1534 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001535
David Turner457b4a82006-06-06 08:14:14 +000015362006-06-06 David Turner <david@freetype.org>
1537
Werner Lemberg4836f952006-06-06 12:54:08 +00001538 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001539
Werner Lemberg4836f952006-06-06 12:54:08 +00001540 We change `ps_unicodes_init' so that it also takes a
1541 `free_glyph_name' callback to release the glyph names returned by
1542 `get_glyph_name'
1543
1544 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1545 Renamed to ...
1546 (PS_GetGlyphNameFunc): This.
1547 (PS_FreeGlyphNameFunc): New typedef.
1548 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1549
1550 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1551 argument.
1552 (cff_sid_free_glyph_name): New function.
1553 (cff_cmap_unicode_init): Updated.
1554
1555 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1556
1557 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1558 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001559
1560
David Turner09717352006-06-04 14:33:08 +000015612006-06-04 David Turner <david@freetype.org>
1562
Werner Lembergd724f202006-06-04 15:17:41 +00001563 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1564 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001565 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001566
Werner Lembergd724f202006-06-04 15:17:41 +00001567 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1568 of `face->num_glyphs' which missed the last glyph, due to
1569 the offset-by-1 computation, since the PFR format doesn't
1570 guarantee that glyph index 0 corresponds to the `missing
1571 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001572
Werner Lemberg33779662006-05-26 06:30:05 +000015732006-05-25 Werner Lemberg <wl@gnu.org>
1574
1575 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1576 `-no-undefined'. Reported by Christian Biesinger.
1577
Werner Lemberg24773d62006-05-20 08:53:13 +000015782006-05-19 Brian Weed <bw@imaginengine.com>
1579
1580 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1581 have debug information, and debug libraries use `C7 compatible'
1582 debug info.
1583
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015842006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1585
Werner Lemberga6523a62006-05-20 08:47:01 +00001586 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001587 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001588
Werner Lemberga6523a62006-05-20 08:47:01 +00001589 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1590 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001591
1592 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001593 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001594
15952006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1596
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001597 * build/unix/configure.raw: Add a fallback to disable Carbon
1598 dependency, if configured with no options on Mac OS X.
1599
16002006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1601
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001602 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001603 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001604 the second part of Savannah bug #16590.
1605
Werner Lemberg545c4e52006-05-17 22:55:04 +000016062006-05-18 Werner Lemberg <wl@gnu.org>
1607
1608 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1609 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1610
David Turnerdc3ff312006-05-17 12:59:35 +000016112006-05-17 David Turner <david@freetype.org>
1612
Werner Lemberg545c4e52006-05-17 22:55:04 +00001613 This is a major patch used to drastically improve the performance of
1614 loading glyphs. This both speeds up loading the glyph vectors
1615 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001616
Werner Lemberg545c4e52006-05-17 22:55:04 +00001617 We now use inline assembler code with GCC to implement `FT_MulFix',
1618 which is probably the most important function related to the
1619 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001620
Werner Lemberg545c4e52006-05-17 22:55:04 +00001621 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001622
1623
Werner Lemberg545c4e52006-05-17 22:55:04 +00001624 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1625 `cursor' and `limit'.
1626
1627 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1628 New functions.
1629 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1630 [TEST]: Remove.
1631
1632 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1633 code.
1634
1635 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1636 `FT_ZERO'
1637 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1638 (af_glyph_hints_reload: Rewrite recognition of weak points.
1639
1640 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1641 constant values out of the loops.
1642
1643 * src/autofit/aftypes.h: Updated.
1644
1645 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1646
1647 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1648 product to get orientation.
1649
1650 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1651 (FT_Stream_OpenGzip): Use it to handle small files directly in
1652 memory.
1653
1654 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1655 Improve performance.
1656
1657 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1658 `limit'.
1659
1660 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1661 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1662 exceedingly large values of number of contours. Speed up by
1663 reducing the number of loops.
1664
1665 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1666
1667
1668 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1669 used to detect rogue clients from 4 to 16. This is to prevent some
1670 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1671 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001672
Werner Lembergde2d90a2006-05-17 08:54:30 +000016732007-05-17 Werner Lemberg <wl@gnu.org>
1674
1675 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001676 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001677
16782006-05-16 Werner Lemberg <wl@gnu.org>
1679
1680 * docs/PROBLEMS: Updated icl issues.
1681
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001682----------------------------------------------------------------------------
1683
Werner Lemberg42b63b22007-01-21 21:01:33 +00001684Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001685David Turner, Robert Wilhelm, and Werner Lemberg.
1686
1687This file is part of the FreeType project, and may only be used, modified,
1688and distributed under the terms of the FreeType project license,
1689LICENSE.TXT. By continuing to use, modify, or distribute this file you
1690indicate that you have read the license and understand and accept it
1691fully.
1692
1693
1694Local Variables:
1695version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001696coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001697End: