blob: 38ab6dc3a19fd5613aa258449b00cd1e704df5a3 [file] [log] [blame]
David Turner89020d92007-03-17 17:48:57 +000012007-03-17 David Turner <david@freetype.org>
2
3 * src/truetype/ttinterp.c (Ins_IP): fixing wrong handling
4 of the (undocumented) twilight zone special case.
5
Werner Lemberg25d592a2007-03-09 07:59:35 +000062007-03-09 Werner Lemberg <wl@gnu.org>
7
8 * Version 2.3.2 released.
9 =========================
10
11
12 Tag sources with `VER-2-3-2'.
13
14 * builds/win32/visualc/index.html,
15 builds/win32/visualc/freetype.dsp,
16 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
17 s/231/232/.
18
David Turner3a51afa2007-03-08 10:50:38 +0000192007-03-08 David Turner <david@freetype.org>
20
Werner Lemberg25d592a2007-03-09 07:59:35 +000021 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000022
Werner Lemberg25d592a2007-03-09 07:59:35 +000023 * builds/unix/configure.raw (version_info): Set to 9:13:3.
24
25 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
26
27 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000028
Werner Lemberg1e259de2007-03-08 15:39:21 +000029 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
30 function to work properly, over-writing user-provided buffers in
31 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000032
David Turner121cad52007-03-08 16:43:50 +000033
Werner Lemberg3d92f082007-03-06 11:59:24 +0000342007-03-05 Werner Lemberg <wl@gnu.org>
35
36 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
37 macro for `strstr'.
38
39 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
40 `trick_names', as suggested by Ivan Nincic.
41
David Turner085bc6e2007-03-05 17:40:03 +0000422007-03-05 David Turner <david@freetype.org>
43
Werner Lembergd112cf02007-03-06 12:06:56 +000044 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
45 case FT_Init_FreeType fails for some reason. Problem reported by
46 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000047
Werner Lembergd112cf02007-03-06 12:06:56 +000048 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
49 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
50 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
51 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000052
Werner Lembergd112cf02007-03-06 12:06:56 +000053 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
54 signed values, not unsigned ones. Problem reported by Johannes
55 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000056
David Turner601aefe2007-02-21 16:47:49 +0000572007-02-21 David Turner <david@freetype.org>
58
Werner Lembergde5e6862007-02-25 21:06:43 +000059 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
60 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000061
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000622007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
63
64 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
65 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
66 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
67
Werner Lemberga0915172007-02-16 08:12:50 +0000682007-02-16 Werner Lemberg <wl@gnu.org>
69
70 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
71 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
72
David Turner2c4500e2007-02-14 15:08:47 +0000732007-02-14 David Turner <david@freetype.org>
74
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000075 It seems that the following changes fix most of the known
76 interpreter problems with my fonts, but more testing is needed,
77 though.
78
79 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
80 (TT_MulFix14): Rewrite.
81 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
82 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000083
Werner Lembergc6a14082007-02-12 22:08:15 +0000842007-02-12 Werner Lemberg <wl@gnu.org>
85
86 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
87 warnings.
88
89 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
90 (bdf_interpret_style): Ditto.
91
David Turnerc0f9c4a2007-02-12 14:55:03 +0000922007-02-12 David Turner <david@freetype.org>
93
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000094 Simplify projection and dual-projection code interface.
95
Werner Lemberg406d25f2007-02-12 22:01:18 +000096 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
97 FT_Vector' as argument type.
98 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
99 Updated.
100 (CUR_fast_project, CUR_fast_dualproj): New macros.
101 (Project, Dual_Project, Project_x, Project_y): Updated.
102 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
103 macros.
104
105
106 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
107 adjustments for the non-light auto-hinted modes. Gets rid of
108 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000109
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000110 * src/autofit/aflatin.c (af_latin_hints_link_segments,
111 af_latin_hints_compute_edges): Slight optimization of the segment
112 linker and better handling of serif segments to get rid of broken
113 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000114
David Turnerc0f9c4a2007-02-12 14:55:03 +0000115
Werner Lemberg442bfb82007-02-12 21:44:10 +0000116 Introduce new string functions and the corresponding macros to get
117 rid of various uses of strcpy and other `evil' functions, as well as
118 to simplify a few things.
119
120 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
121 ft_mem_strcpyn): New declarations.
122 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
123 macros.
124 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
125 functions.
126
127 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
128 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
129 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
130 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
131 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
132 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
133 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
134 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000135
Werner Lemberg406d25f2007-02-12 22:01:18 +0000136 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
137
Werner Lemberg582067d2007-02-11 15:03:05 +00001382007-02-11 Werner Lemberg <wl@gnu.org>
139
140 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
141 non-spacing glyphs.
142
Werner Lemberg8f474532007-02-07 08:31:01 +00001432007-02-07 Tom Parker <palfrey@tevp.net>
144
145 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
146 pointer.
147
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001482007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
149
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000150 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
151 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000152 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000153 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
154 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
155 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
156 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000157
158 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
159 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000160 * builds/mac/ftmac.c: Ditto.
161
1622007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
163
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000164 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000165 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000166 #include <ftmac.c>.
167
1682007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
169
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000170 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
171 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
172 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
173 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
174 FT_GetFilePath_From_Mac_ATS_Name.
175 * builds/mac/ftmac.c: Ditto.
176
1772007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
178
Werner Lembergdcbb7082007-02-08 08:54:09 +0000179 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000180 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
181 for passing to FT_New_Face_From_FSSpec.
182
1832007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
184
Werner Lembergdcbb7082007-02-08 08:54:09 +0000185 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000186 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000187
188 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
189 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000190 * builds/mac/ftmac.c (OS_INLINE): Ditto.
191
Werner Lemberg313d7772007-02-01 08:10:45 +00001922007-02-01 Werner Lemberg <wl@gnu.org>
193
194 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
195 Explain why applications shouldn't use it. Found by Alexei.
196
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001972007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000198
199 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
200 message.
201
202 * src/gxvalid/gxvmort1.c
203 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
204 message.
205
Werner Lemberg53935932007-01-31 08:53:02 +00002062007-01-31 Werner Lemberg <wl@gnu.org>
207
208
209 * Version 2.3.1 released.
210 =========================
211
212
213 Tag sources with `VER-2-3-1-FINAL'.
214
215 * builds/win32/visualc/freetype.dsp,
216 builds/win32/visualc/freetype.vcproj: s/230/231/.
217 * builds/win32/visualc/index.html: s/221/231/.
218
219 * vms_make.com: Add `ftgasp'.
220
David Turnera7ee6082007-01-30 10:33:53 +00002212007-01-30 David Turner <david@freetype.org>
222
Werner Lemberg53935932007-01-31 08:53:02 +0000223 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000224
Werner Lemberg53935932007-01-31 08:53:02 +0000225 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000226
Werner Lemberg25d592a2007-03-09 07:59:35 +0000227 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000228 s/2.3.0/2.3.1/.
229
230 * builds/unix/configure.raw (version_info): Set to 9:12:3.
231
232
233 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
234 (af_loader_load_g): Disable the warper (i.e., the light hinting
235 improvements) to make a 2.3.1 bugfix release before introducing a
236 new feature. This should give us more time to tune and improve the
237 warper for the next release.
238
239 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000240
David Turnerd91eebd2007-01-26 15:05:41 +00002412007-01-25 David Turner <david@freetype.org>
242
Werner Lembergbf241762007-01-26 16:08:49 +0000243 For light auto-hinting, improve glyph advance widths and resurrect
244 normal/full hinting to its normal quality.
245
246 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
247 and `xmax_delta'.
248 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
249 and `xmax_delta'.
250
251 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
252 preprocessor conditional with if-clause, handling both light and
253 normal mode.
254
255 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
256 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000257
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002582007-01-25 Werner Lemberg <wl@gnu.org>
259
260 * docs/release: Updated -- Savannah uses a new uploading scheme.
261
David Turnera42567b2007-01-25 12:23:37 +00002622007-01-25 David Turner <david@freetype.org>
263
Werner Lembergd7855662007-01-25 13:53:56 +0000264 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000265
Werner Lembergd7855662007-01-25 13:53:56 +0000266 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
267 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
268 functions.
David Turnera42567b2007-01-25 12:23:37 +0000269
Werner Lembergd7855662007-01-25 13:53:56 +0000270 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000271
Werner Lembergb1be9e82007-01-25 11:50:00 +00002722007-01-25 Werner Lemberg <wl@gnu.org>
273
274 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000275 correctly in a sanity check. Since this function is only used to
276 load local and global functions, any charstring that called the last
277 local/global function would fail otherwise. This fixes Savannah bug
278 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000279
280 * docs/CHANGES: Document it.
281
David Turnerb6de8d12007-01-23 15:51:50 +00002822007-01-23 David Turner <david@freetype.org>
283
Werner Lembergb1be9e82007-01-25 11:50:00 +0000284 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
285 prevented compilation when disabling both the unpatented and the
286 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000287
Werner Lembergb1be9e82007-01-25 11:50:00 +0000288
289 Fix and enable the warper to improve `light' hinting mode. This is
290 not necessarily a final version, but it seems to work well.
291
292 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
293 Disable code.
294 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
295 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
296
297 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
298 (af_warper_compute_line_best): Fix array size of `scores'.
299 (af_warper_compute): Better handling of border cases.
300 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
301 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000302
Werner Lemberg011d1112007-01-21 09:36:00 +00003032007-01-21 Werner Lemberg <wl@gnu.org>
304
Werner Lemberg42b63b22007-01-21 21:01:33 +0000305 * ChangeLog: Split off older entries into...
306 * ChangeLog.22: This new file.
307
3082007-01-21 Werner Lemberg <wl@gnu.org>
309
Werner Lemberg555258f2007-01-21 09:46:37 +0000310 * docs/CHANGES: Document SHZ fix.
311
3122007-01-21 George Williams <gww@silcom.com>
313
314 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
315 points.
316
3172007-01-21 Werner Lemberg <wl@gnu.org>
318
Werner Lemberg011d1112007-01-21 09:36:00 +0000319 * src/sfnt/ttmtx.c (tt_face_get_metrics)
320 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
321
Werner Lemberg87a5a432007-01-17 12:44:39 +00003222007-01-17 Werner Lemberg <wl@gnu.org>
323
Werner Lembergb8003292007-01-17 12:56:25 +0000324
325 * Version 2.3.0 released.
326 =========================
327
328
329 Tag sources with `VER-2-3-0-FINAL'.
330
3312007-01-17 Werner Lemberg <wl@gnu.org>
332
Werner Lemberg87a5a432007-01-17 12:44:39 +0000333 * docs/release: Updated.
334
David Turner22122722007-01-16 20:06:44 +00003352007-01-16 David Turner <david@freetype.org>
336
Werner Lemberg87a5a432007-01-17 12:44:39 +0000337 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
338 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
339 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
340 warnings.
David Turner22122722007-01-16 20:06:44 +0000341
Werner Lemberg267e1d72007-01-15 07:48:09 +00003422007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
343
344 * builds/amiga/makefile, builds/amiga/makefile.os4,
345 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
346
347 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
348
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003492007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
350
351 Fix various compiler warnings.
352
353 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
354 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
355 s/index/strike_index/.
356 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
357
358 * src/gxvalid/gxvmorx5.c
359 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
360
361 * src/truetype/ttinterp.c (Compute_Point_Displacement),
362 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
363 uninitialized variables.
364
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003652007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
366
367 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
368
Werner Lemberg281c1482007-01-13 22:50:51 +00003692007-01-13 Werner Lemberg <wl@gnu.org>
370
371 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
372 versions up to 0x3FF without complaining.
373
Werner Lembergac250b22007-01-13 14:01:36 +00003742007-01-13 Derek Clegg <dclegg@apple.com>
375
376 Add FT_Get_PS_Font_Info interface to CFF driver.
377
378 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
379 (CFF_FontRec): Add `font_info' field.
380
381 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
382 (cff_font_done): Free font->font_info if necessary.
383
384 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
385 (cff_service_ps_info): Register cff_ps_get_font_info.
386
Werner Lemberg23df31a2007-01-13 08:45:00 +00003872007-01-13 Werner Lemberg <wl@gnu.org>
388
389 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
390 with C++ compiler.
391
392 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
393 af_glyph_hints_dump_edges): Ditto.
394
395 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
396 `modules.cfg').
397
398 * src/sfnt/ttsbit0.h: Remove.
399
400 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
401
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004022007-01-12 David Turner <david@freetype.org>
403
404 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
405 bug in the bitmap emboldener if the pitch of the source bitmap is
406 much larger than its width.
407
408 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
409 compilation warning.
410
Werner Lemberg6d96d312007-01-12 10:30:19 +00004112007-01-12 Werner Lemberg <wl@gnu.org>
412
413 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
414 `automake' CVS module from sources.redhat.com.
415
Werner Lemberg17432b52007-01-12 09:28:44 +00004162007-01-11 Werner Lemberg <wl@gnu.org>
417
418 * src/type1/t1load.c (is_space): Removed.
419 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
420 (parse_charstrings): Use IS_PS_TOKEN.
421
422
423 * autogen.sh: Avoid bash specific syntax.
424
David Turner038ace22007-01-11 15:00:59 +00004252007-01-11 David Turner <david@freetype.org>
426
Werner Lemberg17432b52007-01-12 09:28:44 +0000427 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000428
Werner Lemberg17432b52007-01-12 09:28:44 +0000429 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000430
Werner Lemberg17432b52007-01-12 09:28:44 +0000431 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
432 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000433 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000434
Werner Lemberg17432b52007-01-12 09:28:44 +0000435 * autogen.sh: Small fix to get it working on Mac OS X properly:
436 The issue is that GNU libtool is called `glibtool' on this platform,
437 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000438
David Turner2628ea92007-01-10 13:15:56 +00004392007-01-10 David Turner <david@freetype.org>
440
Werner Lemberg17432b52007-01-12 09:28:44 +0000441 * all-sources: Tag all sources with VER-2-3-0-RC1 and
442 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000443
Werner Lemberg17432b52007-01-12 09:28:44 +0000444 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
445 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
446 version number to 2.3.0.
447
448 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
449 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000450
451 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000452 include/freetype/ftlcdfil.h: Update reference documentation with
453 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000454
Werner Lemberg17432b52007-01-12 09:28:44 +0000455 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
456 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000457
Werner Lembergbf02d392007-01-10 07:07:37 +00004582007-01-10 Derek Clegg <dclegg@apple.com>
459
460 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
461 values.
462
David Turnerf48b60e2007-01-08 15:15:32 +00004632007-01-08 David Turner <david@freetype.org>
464
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000465 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000466
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000467 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
468 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000469 corresponding to a given character pixel size.
470
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000471 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
472 `gasp' table, in order to avoid potential problems with later
473 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000474
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000475 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
476 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000477
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000478 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
479 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
480 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
481 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000482
Werner Lemberge6b6f372007-01-07 00:06:47 +00004832007-01-07 Werner Lemberg <wl@gnu.org>
484
Werner Lembergb8004d22007-01-07 09:13:38 +0000485 * src/cid/cidparse.c (cid_parser_new): Improve error message for
486 Type 11 fonts.
487 Scan for `/sfnts' token.
488
4892007-01-07 Werner Lemberg <wl@gnu.org>
490
491 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000492
Werner Lembergbe5f7972007-01-06 07:51:48 +00004932007-01-06 Werner Lemberg <wl@gnu.org>
494
495 * src/cff/cffload.c (cff_index_init): Remove unused variable.
496 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
497
David Turnera8cf42b2007-01-04 16:46:46 +00004982007-01-04 David Turner <david@freetype.org>
499
Werner Lembergf6294392007-01-06 07:47:45 +0000500 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
501 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000502
Werner Lembergf6294392007-01-06 07:47:45 +0000503
504 Do not allocate interpreter-specific tables in memory if we are not
505 going to load glyphs with the bytecode interpreter anyway.
506
507 * src/truetype/ttgload.c (tt_loader_init): Load execution context
508 only if glyph is hinted.
509 Updated.
510 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
511 and `cvs_ready'.
512 Add `tt_size_ready_bytecode' declaration.
513 * src/truetype/ttobjs.c (tt_size_done_bytecode,
514 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
515 (tt_size_init): Move most code into `tt_size_init_bytecode'.
516 (tt_size_done): Move most code into `tt_size_done_bytecode'.
517 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000518
David Turner91a34022007-01-05 14:47:08 +0000519
Werner Lembergf6294392007-01-06 07:47:45 +0000520 Don't extract the metrics table from the SFNT font file. Instead,
521 reparse it on each glyph load. The runtime difference is not
522 noticeable, and it can save a lot of heap memory when memory-mapped
523 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000524
Werner Lembergf6294392007-01-06 07:47:45 +0000525 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
526 `horz_metrics_offset' and `vert_metrics_ofset'.
527 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
528 Updated.
529
530
531 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
532
533
534 Do not load the CFF index offsets into memory, since this wastes a
535 *lot* of heap memory with large Asian CFF fonts. There is no
536 significant performance loss.
537
538 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
539 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
540 `data_size'.
541 (CFF_CharsetRec): Add field `num_glyphs'.
542
543 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
544 cff_charset_cid_to_gindex): New functions.
545 (cff_new_index): Renamed to...
546 (cff_index_init): This. Update all callers.
547 Updated -- some code has been moved to `cff_index_load_offsets'.
548 (cff_done_index): Renamed to...
549 (cff_index_done): This. Update all callers.
550 (cff_index_get_pointers, cff_index_access_element): Updated to use
551 stream offsets.
552 (cff_charset_compute_cids): Set `num_glyphs' field.
553 (cff_encoding_load): Updated.
554
555 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000556
5572007-01-04 David Turner <david@freetype.org>
558
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000559 * docs/INSTALL.UNIX: Simplify some parts, add reference to
560 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000561
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000562 * README.CVS: Add common problem description and solution
563 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000564
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000565 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000566
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000567 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000568
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000569 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000570
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000571 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
572 (TWorker): This.
573 Remove `count_table' and `memory'.
574 Make `grays' a pointer.
575 (TRaster): New structure.
576 (count_table): New static array.
577 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
578 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
579 ft_black_set_mode, ft_black_render): Updated.
580 (ft_black_init): Don't initialize `count_table'.
581 (ft_black_reset): Use the render pool. This saves about 6KB of
582 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000583
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000584 * src/smooth/ftgrays.c (TRaster): Replaced with...
585 (TWorker): This.
586 Remove `memory'.
587 (TRaster): New structure.
588
589 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
590 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
591 gray_render_span, gray_raster_render): Updated.
592 (gray_raster_reset): Use the render pool. This saves about 6KB of
593 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000594
David Turner8a6c44e2007-01-04 17:03:11 +0000595 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
596 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000597 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
598 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
599 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000600
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000601 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
602 Remove a typo that results in no hinting and a memory leak with some
603 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000604
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000605 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000606 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000607 CFF_Faces in it. We need to close all faces before destroying the
608 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000609
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006102007-01-02 Werner Lemberg <wl@gnu.org>
611
612 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
613 Remove compiler warning.
614
David Turner9207e002007-01-02 16:58:13 +00006152007-01-02 David Turner <david@freetype.org>
616
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000617 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000618
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006192006-12-31 Masatake YAMATO <jet@gyve.org>
620
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000621 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
622 function.
623 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000624 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000625 `gxv_kern_subtable_fmt0_pairs_validate'.
626
David Turner115b4422006-12-22 11:37:05 +00006272006-12-22 David Turner <david@freetype.org>
628
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000629 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
630 warnings.
David Turner115b4422006-12-22 11:37:05 +0000631
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000632 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
633 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000634
Werner Lemberg4755bf72006-12-16 08:58:44 +00006352006-12-16 Anders Kaseorg <anders@kaseorg.com>
636
637 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
638 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
639
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006402006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
641
Werner Lemberg9b774e22007-01-16 06:11:27 +0000642 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000643 sync with the modification by Jens Claudius on 2006-08-22; cf.
644 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 +0000645
6462006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
647
648 * src/base/ftmac.c: Specialized for Mac OS X only.
649 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
650 * builds/unix/configure.raw: Ditto. When explicit switches for
651 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
652 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
653
6542006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
655
656 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
657 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
658 instead of src/base/ftmac.c
659 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
660 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
661 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
662 that cannot be built at present.
663
6642006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
665
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000666 * src/base/ftobjs.c: Improvement of resource fork handler for
667 POSIX, cf.
668 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000669 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
670 format or .dfont, to simulate the face index number counted by ftmac.c.
671 (IsMacResource): Return the number of scalable faces correctly.
672
Werner Lembergec5b4502006-12-10 07:51:38 +00006732006-12-10 Werner Lemberg <wl@gnu.org>
674
675 * builds/toplevel.mk (version): Protect against `distclean' target.
676
Werner Lembergb26b3142006-12-09 20:01:43 +00006772006-12-09 Werner Lemberg <wl@gnu.org>
678
679 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
680 or `type'.
681
682 * builds/freetype.mk (version): Extracted from freetype.h, using
683 GNU make's built-in string functions.
684 (refdoc): Use $(version) instead of static version number.
685
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006862006-12-08 Werner Lemberg <wl@gnu.org>
687
688 * builds/toplevel.mk (dist): Extract version number from freetype.h.
689
Werner Lemberg15c29502006-12-09 07:29:54 +00006902006-12-08 Vladimir Volovich <vvv@vsu.ru>
691
692 * src/tools/apinames (State): Remove final comma in structure -- xlc
693 v5 under AIX 4.3 doesn't like this.
694
David Turnerdbf3b432006-12-07 21:18:09 +00006952006-12-07 David Turner <david@freetype.org>
696
Werner Lemberg256a3512006-12-08 06:49:33 +0000697 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
698 to the spacing of auto-fitted glyphs. This only impacts rare
699 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000700
Werner Lemberg11171312006-12-03 09:43:40 +00007012006-12-03 Werner Lemberg <wl@gnu.org>
702
703 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
704
Werner Lemberg960ba592006-12-01 08:20:47 +00007052006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000706
Werner Lemberg960ba592006-12-01 08:20:47 +0000707 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
708 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
709 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000710
David Turner80658e52006-11-28 08:09:20 +0000711
Werner Lemberg960ba592006-12-01 08:20:47 +0000712 * include/freetype/ftxf86.h: Fix and extend comment so that it
713 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000714
Werner Lemberg960ba592006-12-01 08:20:47 +0000715 * include/freetype/ftchapters.h: Add `font_format' section.
716
717
718 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
719 to TOC in index page.
720
7212006-11-28 David Turner <david@freetype.org>
722
723 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
724 trying to render into a zero-width/height bitmap, not an error code.
725
726 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
727
728 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
729 ones instead.
730
731 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
732 variable.
David Turner80658e52006-11-28 08:09:20 +0000733
Werner Lemberg8636c292006-11-26 22:28:13 +00007342006-11-26 Pierre Hanser <hanser@club-internet.fr>
735
736 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
737
Werner Lemberg960ba592006-12-01 08:20:47 +00007382006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000739
Werner Lemberg960ba592006-12-01 08:20:47 +0000740 * src/autofit/afhints.c (af_glyph_hints_dump_points,
741 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
742 Add stubs to link the `ftgrid' test program when debugging is
743 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000744
Werner Lemberg960ba592006-12-01 08:20:47 +00007452006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000746
747 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000748 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
749
750 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
751 Emit more sensible information.
752
753 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
754
755 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
756 rounding of blue values.
757 (af_latin_hints_compute_segments): Hint segment heights.
758 (af_latin_hints_link_segments): Reduce `len_score' value.
759 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
760 value and use `height' member for comparisons.
761 (af_latin_hint_edges): Extend logging message.
762 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000763
Werner Lemberg91959bf2006-11-22 10:36:55 +00007642006-11-22 Werner Lemberg <wl@gnu.org>
765
766 Fix Savannah bug #15553.
767
768 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
769 program after a change from mono to grayscaling (and vice versa).
770 Use correct constant for comparison to get `exec->grayscale'.
771
Werner Lemberg913a3652006-11-19 09:19:17 +00007722006-11-18 Werner Lemberg <wl@gnu.org>
773
774 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000775 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000776 This patch fixes Savannah bug #18301.
777
778 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
779 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
780 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
781 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
782 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
783 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
784 (FNT_Load_Glyph): Check validity of `glyph_index'.
785
David Turner7bab6ae2006-11-13 11:25:06 +00007862006-11-13 David Turner <david@freetype.org>
787
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000788 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
789 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000790
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000791 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
792 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
793 when building the library to change the default LCD filter to be
794 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000795
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000796 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000797
David Turner8765c712006-11-10 16:49:42 +00007982006-11-10 David Turner <david@freetype.org>
799
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000800 * src/smooth/ftsmooth.c: API change for the LCD
801 filter. The FT_LcdFilter value is an enumeration describing which
802 filter to apply, with new values FT_LCD_FILTER_LIGHT and
803 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
804 algorithm which produces strong color fringes for everything
805 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000806
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000807 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
808 second parameter to an enum type.
809
810 * src/base/ftlcdfil.c (USE_LEGACY): Define.
811 (_ft_lcd_filter): Rename to...
812 (_ft_lcd_filter_fir): This.
813 Update parameters.
814 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
815 (FT_Library_Set_LcdFilter): Update parameters.
816 Handle new filter modes.
817
818 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
819 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
820 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
821 callback and update other fields.
822
823 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
824 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
825 Other minor improvements.
826
827 * src/autofit/aflatin.c: Various tiny improvements that drastically
828 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
829 (af_latin_hints_compute_edges): Fix typo.
830 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000831
David Turner4e9cc3c2006-11-09 16:31:52 +00008322006-11-09 David Turner <david@freetype.org>
833
Werner Lemberg49c77a82006-11-09 21:51:57 +0000834 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
835 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000836
Werner Lemberg5e430892006-11-07 09:35:03 +00008372006-11-07 Zhe Su <james.su@gmail.com>
838
839 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
840 also.
841
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008422006-11-03 Werner Lemberg <wl@gnu.org>
843
844 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
845
David Turner40604742006-11-02 16:37:35 +00008462006-11-02 David Turner <david@freetype.org>
847
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000848 Add a few tweaks to better handle serif fonts.
849 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000850
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000851 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
852 segments that are less than 1.5 pixels high. This gets rid of
853 *many* corner cases with serifs.
854 (af_latin_align_linked_edge): Add logging message.
855 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
856 Add logging messages.
857 Handle AF_EDGE_FLAG flag specially.
858
859 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
860 _af_debug_disable_blue_hints, and _af_debug_hints variables.
861
862 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
863 Update external declarations.
864 (af_corner_orientation, af_corner_is_flat): Replaced by...
865
866 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
867 ft_corner_is_flat): These declarations.
868
869 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
870 Comment out. Replaced by...
871
872 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
873 These functions. Update all callers.
874 (FT_Add64) [!FT_LONG64]: Simplify.
875
876 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
877 (af_direction_compute): Add a missing FT_ABS call. This bug caused
878 production of garbage by missing lots of segments.
879
880 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
881
882 * src/autofit/afloader.c (af_loader_init, af_loader_done)
883 [AF_DEBUG]: Set _af_debug_hints.
884
885
886 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
887 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
888 and ft_corner_orientation.
889
890
891 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000892
Werner Lemberge88c5262006-10-24 05:46:26 +00008932006-10-24 Werner Lemberg <wl@gnu.org>
894
895 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
896
897 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
898 as argument.
899
David Turnera1861392006-10-23 16:00:59 +00009002006-10-23 Zhe Su <zsu@novell.com>
901
Werner Lemberg715e96e2006-10-24 05:28:45 +0000902 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
903 better deal with broken Asian fonts with strange glyphs, having
904 self-intersections and other peculiarities. The used algorithm is
905 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000906
David Turnere140f142006-10-23 08:56:57 +00009072006-10-23 David Turner <david@freetype.org>
908
Werner Lemberg715e96e2006-10-24 05:28:45 +0000909 Speed up the CFF font loader. With some large CFF fonts,
910 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000911
Werner Lemberg715e96e2006-10-24 05:28:45 +0000912 * src/cff/cffload.c (cff_get_offset): Removed.
913 (cff_new_index): Inline functionality of `cff_get_offset'.
914 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
915 (cff_charset_done): Call `cff_charset_free_cids'.
916 (cff_charset_load): Call `cff_charset_compute_cids'.
917 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
918
919 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
920 with FT_NEXT_XXX.
921
922
923 Speed up the Postscript hinter, with more than 100% speed increase
924 on my machine.
925
926 * src/pshinter/pshalgo.c (psh_corner_is_flat,
927 psh_corner_orientation): New functions.
928 (psh_glyph_compute_inflections): Merge loops for efficiency.
929 Use `psh_corner_orientation'.
930 (psh_glyph_init): Use `psh_corner_is_flat'.
931 (psh_hint_table_find_strong_point): Renamed to...
932 (psh_hint_table_find_strong_points): This.
933 Rewrite, adding argument to handle all points at once.
934 Update all callers.
935 (PSH_MAX_STRONG_INTERNAL): New macro.
936 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000937
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009382006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
939
940 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000941 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000942
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009432006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
944
945 * docs/INSTALL.CROSS: New document file for cross-building.
946
947 * builds/unix/configure.raw: Preliminary cross-building support.
948 Find native C compiler and pass it by CC_BUILD, and
949 find suffix for native executable and pass it by EXEEXT_BUILD.
950 Also suffix for target executable is passed by EXEEXT.
951
Werner Lembergb9e6d692006-10-15 08:58:40 +0000952 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
953 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000954 CC_BUILD and EXEEXT_BUILD.
955
Werner Lembergb9e6d692006-10-15 08:58:40 +0000956 * builds/exports.mk (APINAMES_EXE): Change the extension for
957 apinames from the suffix for target (E) to that for building host
958 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000959
Werner Lemberg82a07e92006-10-12 06:20:44 +00009602006-10-12 Werner Lemberg <wl@gnu.org>
961
962 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
963 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
964 which reference those files.
965
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009662006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
967
Werner Lembergb9e6d692006-10-15 08:58:40 +0000968 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
969 embedded in freetype2.pc and freetype-config. Use it to record
970 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000971
972 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
973
974 * builds/unix/freetype-config.in: Ditto.
975
Werner Lemberg28e17d92006-10-11 17:27:47 +00009762006-10-11 Werner Lemberg <wl@gnu.org>
977
978 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
979 development.
980
Jens Claudius336d2292006-10-03 08:53:37 +00009812006-10-03 Jens Claudius <jens.claudius@yahoo.com>
982
983 * include/freetype/config/ftstdlib.h: Cast away volatileness from
984 argument to ft_setjmp.
985
986 * include/freetype/internal/ftvalid.h: Add comment that
987 ft_validator_run must not be used.
988
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009892006-10-01 Werner Lemberg <wl@gnu.org>
990
991 * src/base/ftbase.c: Undo change from 2006-09-30.
992
993 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
994
9952006-09-30 David Turner <david@freetype.org>
996
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000997 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
998 s/unpatented_hinting/ignore_unpatented_hinter/.
999 Update all callers.
1000
1001 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1002 auto-hinting shall be used or not.
1003
1004 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001005
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010062006-09-30 Werner Lemberg <wl@gnu.org>
1007
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001008 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1009 in use).
1010
1011 * src/base/ftbase.c: Include `ftlcdfil.c'.
1012
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010132006-09-29 Werner Lemberg <wl@gnu.org>
1014
1015 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1016 overlapping segments. Bug reported by Stefan Koch.
1017
David Turnerad830712006-09-27 16:20:59 +000010182006-09-28 David Turner <david@freetype.org>
1019
Werner Lemberg2c002e12006-09-29 21:31:53 +00001020 Fix a bug in the automatic unpatented hinting support which prevents
1021 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001022
Werner Lemberg2c002e12006-09-29 21:31:53 +00001023 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1024 s/force_autohint/unpatented_hinting/. Update all callers.
1025
1026 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1027
1028 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001029
David Turner8a317cf2006-09-27 07:52:48 +000010302006-09-27 David Turner <david@freetype.org>
1031
Werner Lemberg2c002e12006-09-29 21:31:53 +00001032 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001033
David Turner8a317cf2006-09-27 07:52:48 +00001034
David Turnere140f142006-10-23 08:56:57 +00001035 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001036 In a default build, the function `FT_Library_SetLcdFilter' returns
1037 `FT_Err_Unimplemented_Feature'; you need to #define
1038 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1039 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001040
Werner Lemberg2c002e12006-09-29 21:31:53 +00001041 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001042
Werner Lemberg2c002e12006-09-29 21:31:53 +00001043 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1044 typedef.
1045 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1046 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001047
Werner Lemberg2c002e12006-09-29 21:31:53 +00001048 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1049 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001050
Werner Lemberg2c002e12006-09-29 21:31:53 +00001051 Handle subpixel rendering.
1052 Simplify function.
1053 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1054 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1055
1056 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1057 pointing to <freetype/ftlcdfil.h>.
1058
1059 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1060 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1061
1062 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001063
Werner Lemberge20df4a2006-09-27 06:29:21 +000010642006-09-26 David Bustin
1065
1066 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1067 correctly. Reported as Savannah bug #17843.
1068
David Turner6f8c6222006-09-26 15:42:44 +000010692006-09-26 David Turner <david@freetype.org>
1070
Werner Lemberg110246c2006-09-26 21:55:44 +00001071 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1072 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1073 horizontal and vertical hinting for the purpose of debugging the
1074 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001075
Werner Lemberg110246c2006-09-26 21:55:44 +00001076 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1077 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001078
Werner Lemberg110246c2006-09-26 21:55:44 +00001079 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1080
1081 * include/freetype/config/ftoption.h, devel/ftoption.h
1082 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1083 we want to compile LCD-optimized rendering code la ClearType) or
1084 not. The macro *must* be disabled in default builds of the library
1085 for patent reasons.
1086
1087 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1088 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1089 isn't defined at compile time. This only changes the content of the
1090 rendered glyph to match the one of normal gray-level rendering,
1091 hence clients should not need to be modified.
1092
1093 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001094
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010952006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1096
1097 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1098 LWFN fails and both are available.
1099
David Turnerf3050052006-09-11 12:00:32 +000011002006-09-11 David Turner <david@freetype.org>
1101
Werner Lembergf9644552006-09-12 13:48:10 +00001102 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1103 report their English names through an Apple Roman
1104 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001105
Werner Lembergf9644552006-09-12 13:48:10 +00001106 If the font uses another name entry with language_id == English, it
1107 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001108
Werner Lembergf9644552006-09-12 13:48:10 +00001109 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1110 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001111
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011122006-09-05 Werner Lemberg <wl@gnu.org>
1113
1114 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001115 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001116 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1117 `HAN NOM B.ttf').
1118
1119 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1120
David Turner772e55d2006-09-05 09:45:15 +000011212006-09-05 David Turner <david@freetype.org>
1122
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001123 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001124
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001125 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1126 (TRaster): Remove `count_ex' and `count_ey'.
1127 (gray_find_cell): Remove 2nd and 3rd argument.
1128 (gray_alloc_cell): Merged with `gray_find_cell'.
1129 (gray_record_cell): Simplify.
1130 (gray_set_cell): Rewrite.
1131 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1132 (gray_render_span): Don't use FT_MEM_SET for small values.
1133 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1134 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1135 bitmap scanline.
1136 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001137
David Turneraa557a92006-09-04 16:42:44 +000011382006-09-04 David Turner <david@freetype.org>
1139
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001140 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1141 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001142
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011432006-09-03 Werner Lemberg <wl@gnu.org>
1144
1145 * devel/ftoption.h: Synchronize with
1146 include/freetype/config/ftoption.h.
1147
1148 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1149 variable declaration.
1150 (gray_convert_glyph): Fix compiler warnings.
1151
David Turner6d79f212006-09-01 14:09:35 +000011522006-09-01 David Turner <david@freetype.org>
1153
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001154 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1155 to recognize a few fonts that require the automatic unpatented
1156 loader.
David Turnerbd502952006-09-01 19:05:24 +00001157
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001158 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1159 rasterizer. The speed improvement is between 15% and 25%, depending
1160 on the font data.
1161
1162 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1163 (TCell): Redefine.
1164 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1165 (gray_init_cells): Updated.
1166 (gray_find_cell, gray_alloc_cell): New functions.
1167 (gray_record_cell): Rewritten to use `gray_find_cell' and
1168 `gray_alloc_cell'.
1169 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1170 QSORT_THRESHOLD):
1171 Removed.
1172 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1173 gray_dump_cells): Removed.
1174 (gray_sweep): Rewritten.
1175 (gray_convert_glyph): Rewrite code which used one of the sorting
1176 functions.
1177 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001178
Werner Lembergd898aed2006-08-29 09:50:34 +000011792006-08-29 Dr. Werner Fink <werner@suse.de>
1180
1181 * configure: Make it possible to handle configure options which
1182 have strings containing spaces.
1183
11842006-08-27 David Turner <david@freetype.org>
1185
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001186 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1187 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1188 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1189
1190 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1191 src/truetype/truetype.c, src/truetype/ttdriver.c,
1192 src/truetype/ttgload.c, src/truetype/ttgload.h,
1193 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1194 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1195 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1196
1197 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1198 member `force_autohint'.
1199
1200 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1201
1202 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1203 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001204
Jens Claudiusa787f452006-08-27 11:26:18 +000012052006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1206
1207 Fix miscellaneous compiler warnings.
1208
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001209 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1210 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001211
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001212 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1213 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1214 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001215
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001216 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1217 volatileness of argument to ft_longjmp. Spotted by Werner
1218 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001219
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001220 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1221 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001222
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001223 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1224 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001225
Werner Lembergc4c35b72006-08-27 08:03:46 +000012262006-08-27 Werner Lemberg <wl@gnu.org>
1227
1228 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1229 Reported by Jens.
1230
Jens Claudius088e44e2006-08-22 14:24:30 +000012312006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001232
Jens Claudius088e44e2006-08-22 14:24:30 +00001233 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001234 about addresses of volatile objects passed as function arguments as
1235 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001236
Werner Lembergc4c35b72006-08-27 08:03:46 +00001237 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1238 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001239
1240 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1241 argument `table' a pointer to a volatile object.
1242
1243 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1244 argument `table' a pointer to a volatile object.
1245
Jens Claudius2652bd52006-08-18 17:20:37 +000012462006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1247
1248 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1249 variable `_sfnt' as volatile since it must keep its value across
1250 a call to ft_setjmp.
1251 (gxv_validate): Same for local variables `memory' and `valid'.
1252 (classic_kern_validate): Same for local variables `memory',
1253 `ckern', and `valid'.
1254
1255 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1256 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1257 `jstf', and 'valid'.
1258
1259 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1260 local variable `cmap'.
1261
David Turner9fbfc6a2006-08-16 09:11:31 +000012622006-08-16 David Turner <david@freetype.org>
1263
Werner Lemberg12342992006-08-19 11:18:09 +00001264 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1265 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001266
Werner Lemberg12342992006-08-19 11:18:09 +00001267 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1268 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001269
David Turner33f5f242006-08-16 16:50:55 +00001270
Werner Lemberg12342992006-08-19 11:18:09 +00001271 Improvements to native TrueType hinting. This is a first try,
1272 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1273
1274 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1275 `extra_points2'.
1276
1277 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1278 `orus'.
1279
1280 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1281 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1282 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1283 handle `extra_points2'.
1284
1285 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1286 Remove compiler warning.
1287 (cur_to_arg): Remove macro.
1288 (TT_Hint_Glyph): Updated.
1289 (TT_Process_Simple_Glyph): Handle `orus'.
1290
1291 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1292 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1293 (LOC_Ins_IUP): Renamed to...
1294 (IUP_WorkerRec): This.
1295 Add `orus' member.
1296 (Shift): Renamed to...
1297 (_iup_worker_shift): This.
1298 Updated.
1299 (Interp): Renamed to...
1300 (_iup_worker_interpolate): This.
1301 Updated to handle `orus'.
1302 (Ins_IUP): Updated.
1303
1304 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1305 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001306
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013072006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1308
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001309 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001310 build ftvalid in ft2demos. This has been inadvertedly changed
1311 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001312
13132006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1314
Werner Lemberg12342992006-08-19 11:18:09 +00001315 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1316 Jens:
1317 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001318
Werner Lemberg12342992006-08-19 11:18:09 +00001319 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1320 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001321
1322 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1323
Jens Claudius9950adc2006-08-13 12:14:36 +000013242006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1325
Werner Lemberg12342992006-08-19 11:18:09 +00001326 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1327 T1_TOKEN_TYPE_KEY.
1328 (T1_FieldRec): Add `dict'.
1329 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1330 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1331 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001332
Werner Lemberg12342992006-08-19 11:18:09 +00001333 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1334 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001335
1336 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1337
1338 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001339 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1340 not T1_TOKEN_TYPE_ANY.
1341 (ps_parser_load_field): Make sure a token that should be a string or
1342 name is really a string or name.
1343 Avoid memory leak if a keyword has been already encountered and its
1344 value is overwritten.
1345 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1346 T1_FIELD_XXX.
1347 (parse_dict): Ignore keywords that occur in the wrong dictionary
1348 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001349
Werner Lemberg12342992006-08-19 11:18:09 +00001350 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1351 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001352
Werner Lemberg12342992006-08-19 11:18:09 +00001353 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1354 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001355
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013562006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1357
1358 Move creation of field `buildchar' of T1_DecoderRec out of
1359 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1360 of it.
1361
1362 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1363 and `T1_Compute_Max_Advance'.
1364
1365 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1366 Remove field `face', add `len_buildchar'.
1367
1368 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1369 field `buildchar'.
1370
1371 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1372 finisher for T1_Decoder.
1373 (cid_slot_load_glyph): Do not ignore failure when initializing the
1374 T1_Decoder.
1375
1376 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1377 Updated.
1378 (t1_decoder_init): Remove initialization of fields `buildchar' and
1379 `len_buildchar'.
1380 (t1_decoder_done): Remove deallocation of field `buildchar'.
1381
1382 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1383 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1384 T1_Decoder.
1385 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1386 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1387 case of error.
1388
1389 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1390 `buildchar' of T1_FaceRec.
1391
1392 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1393 `buildchar' of T1_FaceRec.
1394
Werner Lemberg1a380e02006-07-14 18:28:08 +000013952006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1396
1397 * freetype2/include/freetype/internal/psaux.h: New macros
1398 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1399 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1400 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1401 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1402 (T1_DecoderRec): New fields `buildchar' and `face'.
1403 (IS_PS_TOKEN): New macro.
1404
1405 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1406 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1407
1408 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1409 `default_design_vector' and `num_default_design_vector'.
1410
1411 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1412 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1413 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1414
1415 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1416 `token' argument to be NULL if we want only to count the number of
1417 tokens.
1418 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1419 want to skip the array.
1420 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1421 want to skip the array.
1422
1423 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1424 support for (partially commented out) othersubrs 19-25, 27, and 28.
1425 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1426 (t1_decoder_done): Release new field `buildchar'.
1427
1428 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1429 functions.
1430 (t1_keywords): Register them.
1431 (t1_allocate_blend): Updated.
1432 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1433 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1434 (parse_dict): Remove `keyword_flags' argument.
1435 Use new macro IS_PS_TOKEN.
1436 Changed function so that later PostScript definitions override
1437 earlier ones.
1438 (t1_init_loader): Initialize new field `keywords_encountered'.
1439 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1440 `len_buildchar'.
1441 Remove `keywords_flags'.
1442
1443 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1444 `keywords_encountered'.
1445 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1446
1447 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1448 New entries for parsing /NDV, /CDV, and /DesignVector.
1449
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014502006-07-07 Werner Lemberg <wl@gnu.org>
1451
1452 Add many checks to protect against malformed PCF files.
1453
1454 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1455 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1456
1457 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1458 data and check that tables don't overlap (using a simple
1459 bubblesort).
1460 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1461 New macros which give the size of data structures in the data
1462 stream.
1463 (pcf_get_properties): Use rough estimates to get array size limits.
1464 Assign `face->nprops' and `face->properties' earlier so that a call
1465 to PCF_Face_Done can do the clean-up in case of error.
1466 Protect against invalid string offsets.
1467 (pcf_get_metrics): Clean up code.
1468 Adjust tracing message levels.
1469 Use rough estimate to get array size limit.
1470 (pcf_get_bitmaps): Clean up code.
1471 Adjust tracing message levels.
1472 Use rough estimates to get offset limits.
1473 (pcf_get_encodings): Adjust tracing message level.
1474 (pcf_get_accel): Clean up code.
1475
Werner Lemberg8eb05252006-06-27 06:20:01 +000014762006-06-26 Werner Lemberg <wl@gnu.org>
1477
1478 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1479 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1480
Werner Lemberg24703f82006-06-26 19:12:51 +000014812006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1482
1483 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1484 (t1_decoder_parse_charstrings): Operator with
1485 opcode 15 pops its two arguments.
1486 Handle the case where the pops of an othersubr may be part of a
1487 subroutine.
1488 Handle unknown othersubrs gracefully: count their operands and let
1489 the following pop operators push the operands as the results onto
1490 the Type1 stack.
1491 Improve handling of setcurrentpoint opcode.
1492
Werner Lembergc011f4c2006-06-26 09:40:00 +000014932006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1494
1495 The Type 1 parser now skips over top-level procedures as required
1496 for a `Simplified Parser'. This makes the parser more robust as it
1497 doesn't poke around in PostScript code. Additionally, it makes the
1498 FontDirectory hackery in src/type1/t1load.c unnecessary.
1499
1500 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1501 (skip_literal_string): Add FT_Error as return value.
1502 Handle escapes better.
1503 (skip_string): Add FT_Error as return value.
1504 Don't set `parser->error' but return error code directly.
1505 (skip_procedure): New function.
1506 (ps_parser_skip_PS_token): Handle procedures.
1507 Update code.
1508 (ps_parser_to_token): Update code.
1509 (ps_parser_load_field_table): Handle bbox entries also.
1510
1511 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1512 Add commented-out code for synthetic fonts.
1513
Werner Lemberga2da05c2006-06-25 06:27:27 +000015142006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1515
1516 Fix two hinting bugs as reported in
1517 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1518
1519 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1520 `first_point' member.
1521
1522 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1523 `first_point'.
1524 (TT_Process_Composite_Glyph): Always untouch points.
1525
1526 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1527 `first_point' and `last_point' in case of composite glyphs.
1528 (Ins_IUP): Fix computation of `end_point'.
1529
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015302006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1531
Werner Lembergef3d2c22006-06-25 06:07:14 +00001532 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1533 Mac. The original patch was written by David Sachitano and Lawrence
1534 Coopet, and modified by Sean McBride for MPW compatibility. Only
1535 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001536
Werner Lembergef3d2c22006-06-25 06:07:14 +00001537 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1538 Mac OS X platforms.
1539 (OS_INLINE): Undefine before definition.
1540 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1541 FontAssociation table in FOND resource.
1542 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1543 and fontSize at each entry of FontAssociation table in FOND
1544 resource.
1545 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1546 ffStylOff of FamilyRecord header of FOND resource, the header,
1547 fontSize, fontID at each entry of FontAssociation table, and
1548 StyleMapping table.
1549 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001550
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015512006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1552
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001553 Public API of TrueTypeGX, OpenType, and classic kern table validator
1554 should return `FT_Err_Unimplemented_Feature' if validation service
1555 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001556 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001557 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1558
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001559 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1560 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1561 unavailable.
1562 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1563 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001564
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001565 * src/base/ftotval.c (FT_OpenType_Validate): Return
1566 FT_Err_Unimplemented_Feature if OpenType validation service is
1567 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001568
Werner Lembergb10e45a2006-06-08 07:32:56 +000015692006-06-08 Werner Lemberg <wl@gnu.org>
1570
1571 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1572 errors.
1573
David Turner5f1f7502006-06-07 05:11:50 +000015742006-06-07 David Turner <david@freetype.org>
1575
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001576 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1577 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1578 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001579
David Turner457b4a82006-06-06 08:14:14 +000015802006-06-06 David Turner <david@freetype.org>
1581
Werner Lemberg4836f952006-06-06 12:54:08 +00001582 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001583
Werner Lemberg4836f952006-06-06 12:54:08 +00001584 We change `ps_unicodes_init' so that it also takes a
1585 `free_glyph_name' callback to release the glyph names returned by
1586 `get_glyph_name'
1587
1588 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1589 Renamed to ...
1590 (PS_GetGlyphNameFunc): This.
1591 (PS_FreeGlyphNameFunc): New typedef.
1592 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1593
1594 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1595 argument.
1596 (cff_sid_free_glyph_name): New function.
1597 (cff_cmap_unicode_init): Updated.
1598
1599 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1600
1601 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1602 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001603
1604
David Turner09717352006-06-04 14:33:08 +000016052006-06-04 David Turner <david@freetype.org>
1606
Werner Lembergd724f202006-06-04 15:17:41 +00001607 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1608 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001609 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001610
Werner Lembergd724f202006-06-04 15:17:41 +00001611 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1612 of `face->num_glyphs' which missed the last glyph, due to
1613 the offset-by-1 computation, since the PFR format doesn't
1614 guarantee that glyph index 0 corresponds to the `missing
1615 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001616
Werner Lemberg33779662006-05-26 06:30:05 +000016172006-05-25 Werner Lemberg <wl@gnu.org>
1618
1619 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1620 `-no-undefined'. Reported by Christian Biesinger.
1621
Werner Lemberg24773d62006-05-20 08:53:13 +000016222006-05-19 Brian Weed <bw@imaginengine.com>
1623
1624 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1625 have debug information, and debug libraries use `C7 compatible'
1626 debug info.
1627
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016282006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1629
Werner Lemberga6523a62006-05-20 08:47:01 +00001630 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001631 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001632
Werner Lemberga6523a62006-05-20 08:47:01 +00001633 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1634 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001635
1636 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001637 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001638
16392006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1640
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001641 * build/unix/configure.raw: Add a fallback to disable Carbon
1642 dependency, if configured with no options on Mac OS X.
1643
16442006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1645
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001646 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001647 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001648 the second part of Savannah bug #16590.
1649
Werner Lemberg545c4e52006-05-17 22:55:04 +000016502006-05-18 Werner Lemberg <wl@gnu.org>
1651
1652 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1653 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1654
David Turnerdc3ff312006-05-17 12:59:35 +000016552006-05-17 David Turner <david@freetype.org>
1656
Werner Lemberg545c4e52006-05-17 22:55:04 +00001657 This is a major patch used to drastically improve the performance of
1658 loading glyphs. This both speeds up loading the glyph vectors
1659 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001660
Werner Lemberg545c4e52006-05-17 22:55:04 +00001661 We now use inline assembler code with GCC to implement `FT_MulFix',
1662 which is probably the most important function related to the
1663 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001664
Werner Lemberg545c4e52006-05-17 22:55:04 +00001665 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001666
1667
Werner Lemberg545c4e52006-05-17 22:55:04 +00001668 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1669 `cursor' and `limit'.
1670
1671 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1672 New functions.
1673 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1674 [TEST]: Remove.
1675
1676 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1677 code.
1678
1679 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1680 `FT_ZERO'
1681 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1682 (af_glyph_hints_reload: Rewrite recognition of weak points.
1683
1684 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1685 constant values out of the loops.
1686
1687 * src/autofit/aftypes.h: Updated.
1688
1689 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1690
1691 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1692 product to get orientation.
1693
1694 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1695 (FT_Stream_OpenGzip): Use it to handle small files directly in
1696 memory.
1697
1698 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1699 Improve performance.
1700
1701 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1702 `limit'.
1703
1704 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1705 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1706 exceedingly large values of number of contours. Speed up by
1707 reducing the number of loops.
1708
1709 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1710
1711
1712 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1713 used to detect rogue clients from 4 to 16. This is to prevent some
1714 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1715 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001716
Werner Lembergde2d90a2006-05-17 08:54:30 +000017172007-05-17 Werner Lemberg <wl@gnu.org>
1718
1719 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001720 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001721
17222006-05-16 Werner Lemberg <wl@gnu.org>
1723
1724 * docs/PROBLEMS: Updated icl issues.
1725
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001726----------------------------------------------------------------------------
1727
Werner Lemberg42b63b22007-01-21 21:01:33 +00001728Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001729David Turner, Robert Wilhelm, and Werner Lemberg.
1730
1731This file is part of the FreeType project, and may only be used, modified,
1732and distributed under the terms of the FreeType project license,
1733LICENSE.TXT. By continuing to use, modify, or distribute this file you
1734indicate that you have read the license and understand and accept it
1735fully.
1736
1737
1738Local Variables:
1739version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001740coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001741End: