blob: 673e5891e5fe45722ba4c8e9bd06a05ced5de5f4 [file] [log] [blame]
David Turner74c34eb2007-03-18 07:19:31 +000012007-03-18 David Turner <david@freetype.org>
2
3 * src/truetype/ttinterp.c (Ins_MDRP): another bytecode
4 regression fix; testing still needed
5
David Turner89020d92007-03-17 17:48:57 +000062007-03-17 David Turner <david@freetype.org>
7
8 * src/truetype/ttinterp.c (Ins_IP): fixing wrong handling
9 of the (undocumented) twilight zone special case.
10
Werner Lemberg25d592a2007-03-09 07:59:35 +0000112007-03-09 Werner Lemberg <wl@gnu.org>
12
13 * Version 2.3.2 released.
14 =========================
15
16
17 Tag sources with `VER-2-3-2'.
18
19 * builds/win32/visualc/index.html,
20 builds/win32/visualc/freetype.dsp,
21 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
22 s/231/232/.
23
David Turner3a51afa2007-03-08 10:50:38 +0000242007-03-08 David Turner <david@freetype.org>
25
Werner Lemberg25d592a2007-03-09 07:59:35 +000026 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000027
Werner Lemberg25d592a2007-03-09 07:59:35 +000028 * builds/unix/configure.raw (version_info): Set to 9:13:3.
29
30 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
31
32 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000033
Werner Lemberg1e259de2007-03-08 15:39:21 +000034 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
35 function to work properly, over-writing user-provided buffers in
36 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000037
David Turner121cad52007-03-08 16:43:50 +000038
Werner Lemberg3d92f082007-03-06 11:59:24 +0000392007-03-05 Werner Lemberg <wl@gnu.org>
40
41 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
42 macro for `strstr'.
43
44 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
45 `trick_names', as suggested by Ivan Nincic.
46
David Turner085bc6e2007-03-05 17:40:03 +0000472007-03-05 David Turner <david@freetype.org>
48
Werner Lembergd112cf02007-03-06 12:06:56 +000049 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
50 case FT_Init_FreeType fails for some reason. Problem reported by
51 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000052
Werner Lembergd112cf02007-03-06 12:06:56 +000053 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
54 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
55 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
56 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000057
Werner Lembergd112cf02007-03-06 12:06:56 +000058 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
59 signed values, not unsigned ones. Problem reported by Johannes
60 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000061
David Turner601aefe2007-02-21 16:47:49 +0000622007-02-21 David Turner <david@freetype.org>
63
Werner Lembergde5e6862007-02-25 21:06:43 +000064 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
65 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000066
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000672007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
68
69 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
70 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
71 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
72
Werner Lemberga0915172007-02-16 08:12:50 +0000732007-02-16 Werner Lemberg <wl@gnu.org>
74
75 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
76 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
77
David Turner2c4500e2007-02-14 15:08:47 +0000782007-02-14 David Turner <david@freetype.org>
79
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000080 It seems that the following changes fix most of the known
81 interpreter problems with my fonts, but more testing is needed,
82 though.
83
84 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
85 (TT_MulFix14): Rewrite.
86 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
87 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000088
Werner Lembergc6a14082007-02-12 22:08:15 +0000892007-02-12 Werner Lemberg <wl@gnu.org>
90
91 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
92 warnings.
93
94 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
95 (bdf_interpret_style): Ditto.
96
David Turnerc0f9c4a2007-02-12 14:55:03 +0000972007-02-12 David Turner <david@freetype.org>
98
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000099 Simplify projection and dual-projection code interface.
100
Werner Lemberg406d25f2007-02-12 22:01:18 +0000101 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
102 FT_Vector' as argument type.
103 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
104 Updated.
105 (CUR_fast_project, CUR_fast_dualproj): New macros.
106 (Project, Dual_Project, Project_x, Project_y): Updated.
107 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
108 macros.
109
110
111 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
112 adjustments for the non-light auto-hinted modes. Gets rid of
113 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000114
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000115 * src/autofit/aflatin.c (af_latin_hints_link_segments,
116 af_latin_hints_compute_edges): Slight optimization of the segment
117 linker and better handling of serif segments to get rid of broken
118 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000119
David Turnerc0f9c4a2007-02-12 14:55:03 +0000120
Werner Lemberg442bfb82007-02-12 21:44:10 +0000121 Introduce new string functions and the corresponding macros to get
122 rid of various uses of strcpy and other `evil' functions, as well as
123 to simplify a few things.
124
125 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
126 ft_mem_strcpyn): New declarations.
127 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
128 macros.
129 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
130 functions.
131
132 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
133 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
134 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
135 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
136 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
137 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
138 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
139 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000140
Werner Lemberg406d25f2007-02-12 22:01:18 +0000141 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
142
Werner Lemberg582067d2007-02-11 15:03:05 +00001432007-02-11 Werner Lemberg <wl@gnu.org>
144
145 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
146 non-spacing glyphs.
147
Werner Lemberg8f474532007-02-07 08:31:01 +00001482007-02-07 Tom Parker <palfrey@tevp.net>
149
150 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
151 pointer.
152
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001532007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
154
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000155 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
156 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000157 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000158 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
159 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
160 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
161 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000162
163 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
164 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000165 * builds/mac/ftmac.c: Ditto.
166
1672007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
168
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000169 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000170 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000171 #include <ftmac.c>.
172
1732007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
174
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000175 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
176 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
177 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
178 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
179 FT_GetFilePath_From_Mac_ATS_Name.
180 * builds/mac/ftmac.c: Ditto.
181
1822007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
183
Werner Lembergdcbb7082007-02-08 08:54:09 +0000184 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000185 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
186 for passing to FT_New_Face_From_FSSpec.
187
1882007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
189
Werner Lembergdcbb7082007-02-08 08:54:09 +0000190 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000191 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000192
193 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
194 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000195 * builds/mac/ftmac.c (OS_INLINE): Ditto.
196
Werner Lemberg313d7772007-02-01 08:10:45 +00001972007-02-01 Werner Lemberg <wl@gnu.org>
198
199 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
200 Explain why applications shouldn't use it. Found by Alexei.
201
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002022007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000203
204 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
205 message.
206
207 * src/gxvalid/gxvmort1.c
208 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
209 message.
210
Werner Lemberg53935932007-01-31 08:53:02 +00002112007-01-31 Werner Lemberg <wl@gnu.org>
212
213
214 * Version 2.3.1 released.
215 =========================
216
217
218 Tag sources with `VER-2-3-1-FINAL'.
219
220 * builds/win32/visualc/freetype.dsp,
221 builds/win32/visualc/freetype.vcproj: s/230/231/.
222 * builds/win32/visualc/index.html: s/221/231/.
223
224 * vms_make.com: Add `ftgasp'.
225
David Turnera7ee6082007-01-30 10:33:53 +00002262007-01-30 David Turner <david@freetype.org>
227
Werner Lemberg53935932007-01-31 08:53:02 +0000228 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000229
Werner Lemberg53935932007-01-31 08:53:02 +0000230 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000231
Werner Lemberg25d592a2007-03-09 07:59:35 +0000232 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000233 s/2.3.0/2.3.1/.
234
235 * builds/unix/configure.raw (version_info): Set to 9:12:3.
236
237
238 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
239 (af_loader_load_g): Disable the warper (i.e., the light hinting
240 improvements) to make a 2.3.1 bugfix release before introducing a
241 new feature. This should give us more time to tune and improve the
242 warper for the next release.
243
244 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000245
David Turnerd91eebd2007-01-26 15:05:41 +00002462007-01-25 David Turner <david@freetype.org>
247
Werner Lembergbf241762007-01-26 16:08:49 +0000248 For light auto-hinting, improve glyph advance widths and resurrect
249 normal/full hinting to its normal quality.
250
251 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
252 and `xmax_delta'.
253 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
254 and `xmax_delta'.
255
256 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
257 preprocessor conditional with if-clause, handling both light and
258 normal mode.
259
260 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
261 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000262
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002632007-01-25 Werner Lemberg <wl@gnu.org>
264
265 * docs/release: Updated -- Savannah uses a new uploading scheme.
266
David Turnera42567b2007-01-25 12:23:37 +00002672007-01-25 David Turner <david@freetype.org>
268
Werner Lembergd7855662007-01-25 13:53:56 +0000269 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000270
Werner Lembergd7855662007-01-25 13:53:56 +0000271 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
272 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
273 functions.
David Turnera42567b2007-01-25 12:23:37 +0000274
Werner Lembergd7855662007-01-25 13:53:56 +0000275 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000276
Werner Lembergb1be9e82007-01-25 11:50:00 +00002772007-01-25 Werner Lemberg <wl@gnu.org>
278
279 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000280 correctly in a sanity check. Since this function is only used to
281 load local and global functions, any charstring that called the last
282 local/global function would fail otherwise. This fixes Savannah bug
283 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000284
285 * docs/CHANGES: Document it.
286
David Turnerb6de8d12007-01-23 15:51:50 +00002872007-01-23 David Turner <david@freetype.org>
288
Werner Lembergb1be9e82007-01-25 11:50:00 +0000289 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
290 prevented compilation when disabling both the unpatented and the
291 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000292
Werner Lembergb1be9e82007-01-25 11:50:00 +0000293
294 Fix and enable the warper to improve `light' hinting mode. This is
295 not necessarily a final version, but it seems to work well.
296
297 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
298 Disable code.
299 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
300 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
301
302 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
303 (af_warper_compute_line_best): Fix array size of `scores'.
304 (af_warper_compute): Better handling of border cases.
305 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
306 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000307
Werner Lemberg011d1112007-01-21 09:36:00 +00003082007-01-21 Werner Lemberg <wl@gnu.org>
309
Werner Lemberg42b63b22007-01-21 21:01:33 +0000310 * ChangeLog: Split off older entries into...
311 * ChangeLog.22: This new file.
312
3132007-01-21 Werner Lemberg <wl@gnu.org>
314
Werner Lemberg555258f2007-01-21 09:46:37 +0000315 * docs/CHANGES: Document SHZ fix.
316
3172007-01-21 George Williams <gww@silcom.com>
318
319 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
320 points.
321
3222007-01-21 Werner Lemberg <wl@gnu.org>
323
Werner Lemberg011d1112007-01-21 09:36:00 +0000324 * src/sfnt/ttmtx.c (tt_face_get_metrics)
325 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
326
Werner Lemberg87a5a432007-01-17 12:44:39 +00003272007-01-17 Werner Lemberg <wl@gnu.org>
328
Werner Lembergb8003292007-01-17 12:56:25 +0000329
330 * Version 2.3.0 released.
331 =========================
332
333
334 Tag sources with `VER-2-3-0-FINAL'.
335
3362007-01-17 Werner Lemberg <wl@gnu.org>
337
Werner Lemberg87a5a432007-01-17 12:44:39 +0000338 * docs/release: Updated.
339
David Turner22122722007-01-16 20:06:44 +00003402007-01-16 David Turner <david@freetype.org>
341
Werner Lemberg87a5a432007-01-17 12:44:39 +0000342 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
343 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
344 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
345 warnings.
David Turner22122722007-01-16 20:06:44 +0000346
Werner Lemberg267e1d72007-01-15 07:48:09 +00003472007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
348
349 * builds/amiga/makefile, builds/amiga/makefile.os4,
350 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
351
352 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
353
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003542007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
355
356 Fix various compiler warnings.
357
358 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
359 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
360 s/index/strike_index/.
361 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
362
363 * src/gxvalid/gxvmorx5.c
364 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
365
366 * src/truetype/ttinterp.c (Compute_Point_Displacement),
367 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
368 uninitialized variables.
369
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003702007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
371
372 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
373
Werner Lemberg281c1482007-01-13 22:50:51 +00003742007-01-13 Werner Lemberg <wl@gnu.org>
375
376 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
377 versions up to 0x3FF without complaining.
378
Werner Lembergac250b22007-01-13 14:01:36 +00003792007-01-13 Derek Clegg <dclegg@apple.com>
380
381 Add FT_Get_PS_Font_Info interface to CFF driver.
382
383 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
384 (CFF_FontRec): Add `font_info' field.
385
386 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
387 (cff_font_done): Free font->font_info if necessary.
388
389 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
390 (cff_service_ps_info): Register cff_ps_get_font_info.
391
Werner Lemberg23df31a2007-01-13 08:45:00 +00003922007-01-13 Werner Lemberg <wl@gnu.org>
393
394 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
395 with C++ compiler.
396
397 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
398 af_glyph_hints_dump_edges): Ditto.
399
400 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
401 `modules.cfg').
402
403 * src/sfnt/ttsbit0.h: Remove.
404
405 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
406
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004072007-01-12 David Turner <david@freetype.org>
408
409 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
410 bug in the bitmap emboldener if the pitch of the source bitmap is
411 much larger than its width.
412
413 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
414 compilation warning.
415
Werner Lemberg6d96d312007-01-12 10:30:19 +00004162007-01-12 Werner Lemberg <wl@gnu.org>
417
418 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
419 `automake' CVS module from sources.redhat.com.
420
Werner Lemberg17432b52007-01-12 09:28:44 +00004212007-01-11 Werner Lemberg <wl@gnu.org>
422
423 * src/type1/t1load.c (is_space): Removed.
424 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
425 (parse_charstrings): Use IS_PS_TOKEN.
426
427
428 * autogen.sh: Avoid bash specific syntax.
429
David Turner038ace22007-01-11 15:00:59 +00004302007-01-11 David Turner <david@freetype.org>
431
Werner Lemberg17432b52007-01-12 09:28:44 +0000432 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000433
Werner Lemberg17432b52007-01-12 09:28:44 +0000434 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000435
Werner Lemberg17432b52007-01-12 09:28:44 +0000436 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
437 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000438 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000439
Werner Lemberg17432b52007-01-12 09:28:44 +0000440 * autogen.sh: Small fix to get it working on Mac OS X properly:
441 The issue is that GNU libtool is called `glibtool' on this platform,
442 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000443
David Turner2628ea92007-01-10 13:15:56 +00004442007-01-10 David Turner <david@freetype.org>
445
Werner Lemberg17432b52007-01-12 09:28:44 +0000446 * all-sources: Tag all sources with VER-2-3-0-RC1 and
447 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000448
Werner Lemberg17432b52007-01-12 09:28:44 +0000449 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
450 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
451 version number to 2.3.0.
452
453 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
454 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000455
456 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000457 include/freetype/ftlcdfil.h: Update reference documentation with
458 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000459
Werner Lemberg17432b52007-01-12 09:28:44 +0000460 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
461 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000462
Werner Lembergbf02d392007-01-10 07:07:37 +00004632007-01-10 Derek Clegg <dclegg@apple.com>
464
465 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
466 values.
467
David Turnerf48b60e2007-01-08 15:15:32 +00004682007-01-08 David Turner <david@freetype.org>
469
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000470 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000471
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000472 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
473 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000474 corresponding to a given character pixel size.
475
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000476 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
477 `gasp' table, in order to avoid potential problems with later
478 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000479
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000480 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
481 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000482
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000483 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
484 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
485 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
486 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000487
Werner Lemberge6b6f372007-01-07 00:06:47 +00004882007-01-07 Werner Lemberg <wl@gnu.org>
489
Werner Lembergb8004d22007-01-07 09:13:38 +0000490 * src/cid/cidparse.c (cid_parser_new): Improve error message for
491 Type 11 fonts.
492 Scan for `/sfnts' token.
493
4942007-01-07 Werner Lemberg <wl@gnu.org>
495
496 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000497
Werner Lembergbe5f7972007-01-06 07:51:48 +00004982007-01-06 Werner Lemberg <wl@gnu.org>
499
500 * src/cff/cffload.c (cff_index_init): Remove unused variable.
501 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
502
David Turnera8cf42b2007-01-04 16:46:46 +00005032007-01-04 David Turner <david@freetype.org>
504
Werner Lembergf6294392007-01-06 07:47:45 +0000505 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
506 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000507
Werner Lembergf6294392007-01-06 07:47:45 +0000508
509 Do not allocate interpreter-specific tables in memory if we are not
510 going to load glyphs with the bytecode interpreter anyway.
511
512 * src/truetype/ttgload.c (tt_loader_init): Load execution context
513 only if glyph is hinted.
514 Updated.
515 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
516 and `cvs_ready'.
517 Add `tt_size_ready_bytecode' declaration.
518 * src/truetype/ttobjs.c (tt_size_done_bytecode,
519 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
520 (tt_size_init): Move most code into `tt_size_init_bytecode'.
521 (tt_size_done): Move most code into `tt_size_done_bytecode'.
522 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000523
David Turner91a34022007-01-05 14:47:08 +0000524
Werner Lembergf6294392007-01-06 07:47:45 +0000525 Don't extract the metrics table from the SFNT font file. Instead,
526 reparse it on each glyph load. The runtime difference is not
527 noticeable, and it can save a lot of heap memory when memory-mapped
528 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000529
Werner Lembergf6294392007-01-06 07:47:45 +0000530 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
531 `horz_metrics_offset' and `vert_metrics_ofset'.
532 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
533 Updated.
534
535
536 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
537
538
539 Do not load the CFF index offsets into memory, since this wastes a
540 *lot* of heap memory with large Asian CFF fonts. There is no
541 significant performance loss.
542
543 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
544 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
545 `data_size'.
546 (CFF_CharsetRec): Add field `num_glyphs'.
547
548 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
549 cff_charset_cid_to_gindex): New functions.
550 (cff_new_index): Renamed to...
551 (cff_index_init): This. Update all callers.
552 Updated -- some code has been moved to `cff_index_load_offsets'.
553 (cff_done_index): Renamed to...
554 (cff_index_done): This. Update all callers.
555 (cff_index_get_pointers, cff_index_access_element): Updated to use
556 stream offsets.
557 (cff_charset_compute_cids): Set `num_glyphs' field.
558 (cff_encoding_load): Updated.
559
560 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000561
5622007-01-04 David Turner <david@freetype.org>
563
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000564 * docs/INSTALL.UNIX: Simplify some parts, add reference to
565 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000566
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000567 * README.CVS: Add common problem description and solution
568 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000569
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000570 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000571
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000572 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000573
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000574 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000575
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000576 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
577 (TWorker): This.
578 Remove `count_table' and `memory'.
579 Make `grays' a pointer.
580 (TRaster): New structure.
581 (count_table): New static array.
582 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
583 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
584 ft_black_set_mode, ft_black_render): Updated.
585 (ft_black_init): Don't initialize `count_table'.
586 (ft_black_reset): Use the render pool. This saves about 6KB of
587 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000588
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000589 * src/smooth/ftgrays.c (TRaster): Replaced with...
590 (TWorker): This.
591 Remove `memory'.
592 (TRaster): New structure.
593
594 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
595 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
596 gray_render_span, gray_raster_render): Updated.
597 (gray_raster_reset): Use the render pool. This saves about 6KB of
598 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000599
David Turner8a6c44e2007-01-04 17:03:11 +0000600 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
601 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000602 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
603 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
604 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000605
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000606 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
607 Remove a typo that results in no hinting and a memory leak with some
608 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000609
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000610 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000611 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000612 CFF_Faces in it. We need to close all faces before destroying the
613 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000614
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006152007-01-02 Werner Lemberg <wl@gnu.org>
616
617 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
618 Remove compiler warning.
619
David Turner9207e002007-01-02 16:58:13 +00006202007-01-02 David Turner <david@freetype.org>
621
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000622 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000623
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006242006-12-31 Masatake YAMATO <jet@gyve.org>
625
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000626 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
627 function.
628 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000629 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000630 `gxv_kern_subtable_fmt0_pairs_validate'.
631
David Turner115b4422006-12-22 11:37:05 +00006322006-12-22 David Turner <david@freetype.org>
633
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000634 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
635 warnings.
David Turner115b4422006-12-22 11:37:05 +0000636
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000637 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
638 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000639
Werner Lemberg4755bf72006-12-16 08:58:44 +00006402006-12-16 Anders Kaseorg <anders@kaseorg.com>
641
642 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
643 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
644
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006452006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
646
Werner Lemberg9b774e22007-01-16 06:11:27 +0000647 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000648 sync with the modification by Jens Claudius on 2006-08-22; cf.
649 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 +0000650
6512006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
652
653 * src/base/ftmac.c: Specialized for Mac OS X only.
654 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
655 * builds/unix/configure.raw: Ditto. When explicit switches for
656 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
657 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
658
6592006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
660
661 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
662 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
663 instead of src/base/ftmac.c
664 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
665 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
666 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
667 that cannot be built at present.
668
6692006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
670
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000671 * src/base/ftobjs.c: Improvement of resource fork handler for
672 POSIX, cf.
673 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000674 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
675 format or .dfont, to simulate the face index number counted by ftmac.c.
676 (IsMacResource): Return the number of scalable faces correctly.
677
Werner Lembergec5b4502006-12-10 07:51:38 +00006782006-12-10 Werner Lemberg <wl@gnu.org>
679
680 * builds/toplevel.mk (version): Protect against `distclean' target.
681
Werner Lembergb26b3142006-12-09 20:01:43 +00006822006-12-09 Werner Lemberg <wl@gnu.org>
683
684 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
685 or `type'.
686
687 * builds/freetype.mk (version): Extracted from freetype.h, using
688 GNU make's built-in string functions.
689 (refdoc): Use $(version) instead of static version number.
690
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006912006-12-08 Werner Lemberg <wl@gnu.org>
692
693 * builds/toplevel.mk (dist): Extract version number from freetype.h.
694
Werner Lemberg15c29502006-12-09 07:29:54 +00006952006-12-08 Vladimir Volovich <vvv@vsu.ru>
696
697 * src/tools/apinames (State): Remove final comma in structure -- xlc
698 v5 under AIX 4.3 doesn't like this.
699
David Turnerdbf3b432006-12-07 21:18:09 +00007002006-12-07 David Turner <david@freetype.org>
701
Werner Lemberg256a3512006-12-08 06:49:33 +0000702 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
703 to the spacing of auto-fitted glyphs. This only impacts rare
704 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000705
Werner Lemberg11171312006-12-03 09:43:40 +00007062006-12-03 Werner Lemberg <wl@gnu.org>
707
708 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
709
Werner Lemberg960ba592006-12-01 08:20:47 +00007102006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000711
Werner Lemberg960ba592006-12-01 08:20:47 +0000712 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
713 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
714 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000715
David Turner80658e52006-11-28 08:09:20 +0000716
Werner Lemberg960ba592006-12-01 08:20:47 +0000717 * include/freetype/ftxf86.h: Fix and extend comment so that it
718 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000719
Werner Lemberg960ba592006-12-01 08:20:47 +0000720 * include/freetype/ftchapters.h: Add `font_format' section.
721
722
723 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
724 to TOC in index page.
725
7262006-11-28 David Turner <david@freetype.org>
727
728 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
729 trying to render into a zero-width/height bitmap, not an error code.
730
731 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
732
733 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
734 ones instead.
735
736 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
737 variable.
David Turner80658e52006-11-28 08:09:20 +0000738
Werner Lemberg8636c292006-11-26 22:28:13 +00007392006-11-26 Pierre Hanser <hanser@club-internet.fr>
740
741 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
742
Werner Lemberg960ba592006-12-01 08:20:47 +00007432006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000744
Werner Lemberg960ba592006-12-01 08:20:47 +0000745 * src/autofit/afhints.c (af_glyph_hints_dump_points,
746 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
747 Add stubs to link the `ftgrid' test program when debugging is
748 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000749
Werner Lemberg960ba592006-12-01 08:20:47 +00007502006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000751
752 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000753 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
754
755 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
756 Emit more sensible information.
757
758 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
759
760 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
761 rounding of blue values.
762 (af_latin_hints_compute_segments): Hint segment heights.
763 (af_latin_hints_link_segments): Reduce `len_score' value.
764 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
765 value and use `height' member for comparisons.
766 (af_latin_hint_edges): Extend logging message.
767 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000768
Werner Lemberg91959bf2006-11-22 10:36:55 +00007692006-11-22 Werner Lemberg <wl@gnu.org>
770
771 Fix Savannah bug #15553.
772
773 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
774 program after a change from mono to grayscaling (and vice versa).
775 Use correct constant for comparison to get `exec->grayscale'.
776
Werner Lemberg913a3652006-11-19 09:19:17 +00007772006-11-18 Werner Lemberg <wl@gnu.org>
778
779 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000780 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000781 This patch fixes Savannah bug #18301.
782
783 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
784 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
785 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
786 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
787 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
788 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
789 (FNT_Load_Glyph): Check validity of `glyph_index'.
790
David Turner7bab6ae2006-11-13 11:25:06 +00007912006-11-13 David Turner <david@freetype.org>
792
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000793 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
794 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000795
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000796 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
797 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
798 when building the library to change the default LCD filter to be
799 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000800
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000801 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000802
David Turner8765c712006-11-10 16:49:42 +00008032006-11-10 David Turner <david@freetype.org>
804
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000805 * src/smooth/ftsmooth.c: API change for the LCD
806 filter. The FT_LcdFilter value is an enumeration describing which
807 filter to apply, with new values FT_LCD_FILTER_LIGHT and
808 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
809 algorithm which produces strong color fringes for everything
810 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000811
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000812 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
813 second parameter to an enum type.
814
815 * src/base/ftlcdfil.c (USE_LEGACY): Define.
816 (_ft_lcd_filter): Rename to...
817 (_ft_lcd_filter_fir): This.
818 Update parameters.
819 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
820 (FT_Library_Set_LcdFilter): Update parameters.
821 Handle new filter modes.
822
823 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
824 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
825 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
826 callback and update other fields.
827
828 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
829 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
830 Other minor improvements.
831
832 * src/autofit/aflatin.c: Various tiny improvements that drastically
833 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
834 (af_latin_hints_compute_edges): Fix typo.
835 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000836
David Turner4e9cc3c2006-11-09 16:31:52 +00008372006-11-09 David Turner <david@freetype.org>
838
Werner Lemberg49c77a82006-11-09 21:51:57 +0000839 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
840 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000841
Werner Lemberg5e430892006-11-07 09:35:03 +00008422006-11-07 Zhe Su <james.su@gmail.com>
843
844 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
845 also.
846
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008472006-11-03 Werner Lemberg <wl@gnu.org>
848
849 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
850
David Turner40604742006-11-02 16:37:35 +00008512006-11-02 David Turner <david@freetype.org>
852
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000853 Add a few tweaks to better handle serif fonts.
854 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000855
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000856 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
857 segments that are less than 1.5 pixels high. This gets rid of
858 *many* corner cases with serifs.
859 (af_latin_align_linked_edge): Add logging message.
860 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
861 Add logging messages.
862 Handle AF_EDGE_FLAG flag specially.
863
864 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
865 _af_debug_disable_blue_hints, and _af_debug_hints variables.
866
867 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
868 Update external declarations.
869 (af_corner_orientation, af_corner_is_flat): Replaced by...
870
871 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
872 ft_corner_is_flat): These declarations.
873
874 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
875 Comment out. Replaced by...
876
877 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
878 These functions. Update all callers.
879 (FT_Add64) [!FT_LONG64]: Simplify.
880
881 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
882 (af_direction_compute): Add a missing FT_ABS call. This bug caused
883 production of garbage by missing lots of segments.
884
885 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
886
887 * src/autofit/afloader.c (af_loader_init, af_loader_done)
888 [AF_DEBUG]: Set _af_debug_hints.
889
890
891 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
892 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
893 and ft_corner_orientation.
894
895
896 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000897
Werner Lemberge88c5262006-10-24 05:46:26 +00008982006-10-24 Werner Lemberg <wl@gnu.org>
899
900 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
901
902 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
903 as argument.
904
David Turnera1861392006-10-23 16:00:59 +00009052006-10-23 Zhe Su <zsu@novell.com>
906
Werner Lemberg715e96e2006-10-24 05:28:45 +0000907 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
908 better deal with broken Asian fonts with strange glyphs, having
909 self-intersections and other peculiarities. The used algorithm is
910 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000911
David Turnere140f142006-10-23 08:56:57 +00009122006-10-23 David Turner <david@freetype.org>
913
Werner Lemberg715e96e2006-10-24 05:28:45 +0000914 Speed up the CFF font loader. With some large CFF fonts,
915 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000916
Werner Lemberg715e96e2006-10-24 05:28:45 +0000917 * src/cff/cffload.c (cff_get_offset): Removed.
918 (cff_new_index): Inline functionality of `cff_get_offset'.
919 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
920 (cff_charset_done): Call `cff_charset_free_cids'.
921 (cff_charset_load): Call `cff_charset_compute_cids'.
922 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
923
924 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
925 with FT_NEXT_XXX.
926
927
928 Speed up the Postscript hinter, with more than 100% speed increase
929 on my machine.
930
931 * src/pshinter/pshalgo.c (psh_corner_is_flat,
932 psh_corner_orientation): New functions.
933 (psh_glyph_compute_inflections): Merge loops for efficiency.
934 Use `psh_corner_orientation'.
935 (psh_glyph_init): Use `psh_corner_is_flat'.
936 (psh_hint_table_find_strong_point): Renamed to...
937 (psh_hint_table_find_strong_points): This.
938 Rewrite, adding argument to handle all points at once.
939 Update all callers.
940 (PSH_MAX_STRONG_INTERNAL): New macro.
941 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000942
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009432006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
944
945 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000946 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000947
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009482006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
949
950 * docs/INSTALL.CROSS: New document file for cross-building.
951
952 * builds/unix/configure.raw: Preliminary cross-building support.
953 Find native C compiler and pass it by CC_BUILD, and
954 find suffix for native executable and pass it by EXEEXT_BUILD.
955 Also suffix for target executable is passed by EXEEXT.
956
Werner Lembergb9e6d692006-10-15 08:58:40 +0000957 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
958 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000959 CC_BUILD and EXEEXT_BUILD.
960
Werner Lembergb9e6d692006-10-15 08:58:40 +0000961 * builds/exports.mk (APINAMES_EXE): Change the extension for
962 apinames from the suffix for target (E) to that for building host
963 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000964
Werner Lemberg82a07e92006-10-12 06:20:44 +00009652006-10-12 Werner Lemberg <wl@gnu.org>
966
967 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
968 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
969 which reference those files.
970
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009712006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
972
Werner Lembergb9e6d692006-10-15 08:58:40 +0000973 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
974 embedded in freetype2.pc and freetype-config. Use it to record
975 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000976
977 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
978
979 * builds/unix/freetype-config.in: Ditto.
980
Werner Lemberg28e17d92006-10-11 17:27:47 +00009812006-10-11 Werner Lemberg <wl@gnu.org>
982
983 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
984 development.
985
Jens Claudius336d2292006-10-03 08:53:37 +00009862006-10-03 Jens Claudius <jens.claudius@yahoo.com>
987
988 * include/freetype/config/ftstdlib.h: Cast away volatileness from
989 argument to ft_setjmp.
990
991 * include/freetype/internal/ftvalid.h: Add comment that
992 ft_validator_run must not be used.
993
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009942006-10-01 Werner Lemberg <wl@gnu.org>
995
996 * src/base/ftbase.c: Undo change from 2006-09-30.
997
998 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
999
10002006-09-30 David Turner <david@freetype.org>
1001
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001002 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1003 s/unpatented_hinting/ignore_unpatented_hinter/.
1004 Update all callers.
1005
1006 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1007 auto-hinting shall be used or not.
1008
1009 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001010
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010112006-09-30 Werner Lemberg <wl@gnu.org>
1012
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001013 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1014 in use).
1015
1016 * src/base/ftbase.c: Include `ftlcdfil.c'.
1017
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010182006-09-29 Werner Lemberg <wl@gnu.org>
1019
1020 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1021 overlapping segments. Bug reported by Stefan Koch.
1022
David Turnerad830712006-09-27 16:20:59 +000010232006-09-28 David Turner <david@freetype.org>
1024
Werner Lemberg2c002e12006-09-29 21:31:53 +00001025 Fix a bug in the automatic unpatented hinting support which prevents
1026 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001027
Werner Lemberg2c002e12006-09-29 21:31:53 +00001028 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1029 s/force_autohint/unpatented_hinting/. Update all callers.
1030
1031 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1032
1033 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001034
David Turner8a317cf2006-09-27 07:52:48 +000010352006-09-27 David Turner <david@freetype.org>
1036
Werner Lemberg2c002e12006-09-29 21:31:53 +00001037 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001038
David Turner8a317cf2006-09-27 07:52:48 +00001039
David Turnere140f142006-10-23 08:56:57 +00001040 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001041 In a default build, the function `FT_Library_SetLcdFilter' returns
1042 `FT_Err_Unimplemented_Feature'; you need to #define
1043 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1044 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001045
Werner Lemberg2c002e12006-09-29 21:31:53 +00001046 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001047
Werner Lemberg2c002e12006-09-29 21:31:53 +00001048 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1049 typedef.
1050 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1051 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001052
Werner Lemberg2c002e12006-09-29 21:31:53 +00001053 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1054 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001055
Werner Lemberg2c002e12006-09-29 21:31:53 +00001056 Handle subpixel rendering.
1057 Simplify function.
1058 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1059 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1060
1061 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1062 pointing to <freetype/ftlcdfil.h>.
1063
1064 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1065 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1066
1067 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001068
Werner Lemberge20df4a2006-09-27 06:29:21 +000010692006-09-26 David Bustin
1070
1071 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1072 correctly. Reported as Savannah bug #17843.
1073
David Turner6f8c6222006-09-26 15:42:44 +000010742006-09-26 David Turner <david@freetype.org>
1075
Werner Lemberg110246c2006-09-26 21:55:44 +00001076 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1077 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1078 horizontal and vertical hinting for the purpose of debugging the
1079 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001080
Werner Lemberg110246c2006-09-26 21:55:44 +00001081 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1082 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001083
Werner Lemberg110246c2006-09-26 21:55:44 +00001084 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1085
1086 * include/freetype/config/ftoption.h, devel/ftoption.h
1087 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1088 we want to compile LCD-optimized rendering code la ClearType) or
1089 not. The macro *must* be disabled in default builds of the library
1090 for patent reasons.
1091
1092 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1093 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1094 isn't defined at compile time. This only changes the content of the
1095 rendered glyph to match the one of normal gray-level rendering,
1096 hence clients should not need to be modified.
1097
1098 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001099
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011002006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1101
1102 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1103 LWFN fails and both are available.
1104
David Turnerf3050052006-09-11 12:00:32 +000011052006-09-11 David Turner <david@freetype.org>
1106
Werner Lembergf9644552006-09-12 13:48:10 +00001107 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1108 report their English names through an Apple Roman
1109 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001110
Werner Lembergf9644552006-09-12 13:48:10 +00001111 If the font uses another name entry with language_id == English, it
1112 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001113
Werner Lembergf9644552006-09-12 13:48:10 +00001114 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1115 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001116
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011172006-09-05 Werner Lemberg <wl@gnu.org>
1118
1119 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001120 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001121 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1122 `HAN NOM B.ttf').
1123
1124 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1125
David Turner772e55d2006-09-05 09:45:15 +000011262006-09-05 David Turner <david@freetype.org>
1127
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001128 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001129
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001130 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1131 (TRaster): Remove `count_ex' and `count_ey'.
1132 (gray_find_cell): Remove 2nd and 3rd argument.
1133 (gray_alloc_cell): Merged with `gray_find_cell'.
1134 (gray_record_cell): Simplify.
1135 (gray_set_cell): Rewrite.
1136 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1137 (gray_render_span): Don't use FT_MEM_SET for small values.
1138 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1139 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1140 bitmap scanline.
1141 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001142
David Turneraa557a92006-09-04 16:42:44 +000011432006-09-04 David Turner <david@freetype.org>
1144
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001145 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1146 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001147
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011482006-09-03 Werner Lemberg <wl@gnu.org>
1149
1150 * devel/ftoption.h: Synchronize with
1151 include/freetype/config/ftoption.h.
1152
1153 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1154 variable declaration.
1155 (gray_convert_glyph): Fix compiler warnings.
1156
David Turner6d79f212006-09-01 14:09:35 +000011572006-09-01 David Turner <david@freetype.org>
1158
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001159 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1160 to recognize a few fonts that require the automatic unpatented
1161 loader.
David Turnerbd502952006-09-01 19:05:24 +00001162
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001163 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1164 rasterizer. The speed improvement is between 15% and 25%, depending
1165 on the font data.
1166
1167 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1168 (TCell): Redefine.
1169 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1170 (gray_init_cells): Updated.
1171 (gray_find_cell, gray_alloc_cell): New functions.
1172 (gray_record_cell): Rewritten to use `gray_find_cell' and
1173 `gray_alloc_cell'.
1174 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1175 QSORT_THRESHOLD):
1176 Removed.
1177 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1178 gray_dump_cells): Removed.
1179 (gray_sweep): Rewritten.
1180 (gray_convert_glyph): Rewrite code which used one of the sorting
1181 functions.
1182 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001183
Werner Lembergd898aed2006-08-29 09:50:34 +000011842006-08-29 Dr. Werner Fink <werner@suse.de>
1185
1186 * configure: Make it possible to handle configure options which
1187 have strings containing spaces.
1188
11892006-08-27 David Turner <david@freetype.org>
1190
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001191 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1192 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1193 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1194
1195 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1196 src/truetype/truetype.c, src/truetype/ttdriver.c,
1197 src/truetype/ttgload.c, src/truetype/ttgload.h,
1198 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1199 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1200 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1201
1202 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1203 member `force_autohint'.
1204
1205 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1206
1207 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1208 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001209
Jens Claudiusa787f452006-08-27 11:26:18 +000012102006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1211
1212 Fix miscellaneous compiler warnings.
1213
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001214 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1215 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001216
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001217 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1218 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1219 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001220
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001221 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1222 volatileness of argument to ft_longjmp. Spotted by Werner
1223 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001224
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001225 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1226 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001227
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001228 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1229 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001230
Werner Lembergc4c35b72006-08-27 08:03:46 +000012312006-08-27 Werner Lemberg <wl@gnu.org>
1232
1233 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1234 Reported by Jens.
1235
Jens Claudius088e44e2006-08-22 14:24:30 +000012362006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001237
Jens Claudius088e44e2006-08-22 14:24:30 +00001238 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001239 about addresses of volatile objects passed as function arguments as
1240 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001241
Werner Lembergc4c35b72006-08-27 08:03:46 +00001242 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1243 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001244
1245 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1246 argument `table' a pointer to a volatile object.
1247
1248 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1249 argument `table' a pointer to a volatile object.
1250
Jens Claudius2652bd52006-08-18 17:20:37 +000012512006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1252
1253 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1254 variable `_sfnt' as volatile since it must keep its value across
1255 a call to ft_setjmp.
1256 (gxv_validate): Same for local variables `memory' and `valid'.
1257 (classic_kern_validate): Same for local variables `memory',
1258 `ckern', and `valid'.
1259
1260 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1261 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1262 `jstf', and 'valid'.
1263
1264 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1265 local variable `cmap'.
1266
David Turner9fbfc6a2006-08-16 09:11:31 +000012672006-08-16 David Turner <david@freetype.org>
1268
Werner Lemberg12342992006-08-19 11:18:09 +00001269 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1270 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001271
Werner Lemberg12342992006-08-19 11:18:09 +00001272 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1273 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001274
David Turner33f5f242006-08-16 16:50:55 +00001275
Werner Lemberg12342992006-08-19 11:18:09 +00001276 Improvements to native TrueType hinting. This is a first try,
1277 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1278
1279 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1280 `extra_points2'.
1281
1282 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1283 `orus'.
1284
1285 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1286 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1287 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1288 handle `extra_points2'.
1289
1290 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1291 Remove compiler warning.
1292 (cur_to_arg): Remove macro.
1293 (TT_Hint_Glyph): Updated.
1294 (TT_Process_Simple_Glyph): Handle `orus'.
1295
1296 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1297 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1298 (LOC_Ins_IUP): Renamed to...
1299 (IUP_WorkerRec): This.
1300 Add `orus' member.
1301 (Shift): Renamed to...
1302 (_iup_worker_shift): This.
1303 Updated.
1304 (Interp): Renamed to...
1305 (_iup_worker_interpolate): This.
1306 Updated to handle `orus'.
1307 (Ins_IUP): Updated.
1308
1309 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1310 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001311
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013122006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1313
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001314 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001315 build ftvalid in ft2demos. This has been inadvertedly changed
1316 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001317
13182006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1319
Werner Lemberg12342992006-08-19 11:18:09 +00001320 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1321 Jens:
1322 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001323
Werner Lemberg12342992006-08-19 11:18:09 +00001324 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1325 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001326
1327 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1328
Jens Claudius9950adc2006-08-13 12:14:36 +000013292006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1330
Werner Lemberg12342992006-08-19 11:18:09 +00001331 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1332 T1_TOKEN_TYPE_KEY.
1333 (T1_FieldRec): Add `dict'.
1334 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1335 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1336 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001337
Werner Lemberg12342992006-08-19 11:18:09 +00001338 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1339 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001340
1341 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1342
1343 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001344 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1345 not T1_TOKEN_TYPE_ANY.
1346 (ps_parser_load_field): Make sure a token that should be a string or
1347 name is really a string or name.
1348 Avoid memory leak if a keyword has been already encountered and its
1349 value is overwritten.
1350 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1351 T1_FIELD_XXX.
1352 (parse_dict): Ignore keywords that occur in the wrong dictionary
1353 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001354
Werner Lemberg12342992006-08-19 11:18:09 +00001355 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1356 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001357
Werner Lemberg12342992006-08-19 11:18:09 +00001358 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1359 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001360
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013612006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1362
1363 Move creation of field `buildchar' of T1_DecoderRec out of
1364 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1365 of it.
1366
1367 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1368 and `T1_Compute_Max_Advance'.
1369
1370 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1371 Remove field `face', add `len_buildchar'.
1372
1373 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1374 field `buildchar'.
1375
1376 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1377 finisher for T1_Decoder.
1378 (cid_slot_load_glyph): Do not ignore failure when initializing the
1379 T1_Decoder.
1380
1381 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1382 Updated.
1383 (t1_decoder_init): Remove initialization of fields `buildchar' and
1384 `len_buildchar'.
1385 (t1_decoder_done): Remove deallocation of field `buildchar'.
1386
1387 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1388 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1389 T1_Decoder.
1390 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1391 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1392 case of error.
1393
1394 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1395 `buildchar' of T1_FaceRec.
1396
1397 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1398 `buildchar' of T1_FaceRec.
1399
Werner Lemberg1a380e02006-07-14 18:28:08 +000014002006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1401
1402 * freetype2/include/freetype/internal/psaux.h: New macros
1403 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1404 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1405 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1406 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1407 (T1_DecoderRec): New fields `buildchar' and `face'.
1408 (IS_PS_TOKEN): New macro.
1409
1410 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1411 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1412
1413 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1414 `default_design_vector' and `num_default_design_vector'.
1415
1416 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1417 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1418 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1419
1420 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1421 `token' argument to be NULL if we want only to count the number of
1422 tokens.
1423 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1424 want to skip the array.
1425 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1426 want to skip the array.
1427
1428 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1429 support for (partially commented out) othersubrs 19-25, 27, and 28.
1430 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1431 (t1_decoder_done): Release new field `buildchar'.
1432
1433 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1434 functions.
1435 (t1_keywords): Register them.
1436 (t1_allocate_blend): Updated.
1437 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1438 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1439 (parse_dict): Remove `keyword_flags' argument.
1440 Use new macro IS_PS_TOKEN.
1441 Changed function so that later PostScript definitions override
1442 earlier ones.
1443 (t1_init_loader): Initialize new field `keywords_encountered'.
1444 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1445 `len_buildchar'.
1446 Remove `keywords_flags'.
1447
1448 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1449 `keywords_encountered'.
1450 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1451
1452 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1453 New entries for parsing /NDV, /CDV, and /DesignVector.
1454
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014552006-07-07 Werner Lemberg <wl@gnu.org>
1456
1457 Add many checks to protect against malformed PCF files.
1458
1459 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1460 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1461
1462 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1463 data and check that tables don't overlap (using a simple
1464 bubblesort).
1465 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1466 New macros which give the size of data structures in the data
1467 stream.
1468 (pcf_get_properties): Use rough estimates to get array size limits.
1469 Assign `face->nprops' and `face->properties' earlier so that a call
1470 to PCF_Face_Done can do the clean-up in case of error.
1471 Protect against invalid string offsets.
1472 (pcf_get_metrics): Clean up code.
1473 Adjust tracing message levels.
1474 Use rough estimate to get array size limit.
1475 (pcf_get_bitmaps): Clean up code.
1476 Adjust tracing message levels.
1477 Use rough estimates to get offset limits.
1478 (pcf_get_encodings): Adjust tracing message level.
1479 (pcf_get_accel): Clean up code.
1480
Werner Lemberg8eb05252006-06-27 06:20:01 +000014812006-06-26 Werner Lemberg <wl@gnu.org>
1482
1483 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1484 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1485
Werner Lemberg24703f82006-06-26 19:12:51 +000014862006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1487
1488 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1489 (t1_decoder_parse_charstrings): Operator with
1490 opcode 15 pops its two arguments.
1491 Handle the case where the pops of an othersubr may be part of a
1492 subroutine.
1493 Handle unknown othersubrs gracefully: count their operands and let
1494 the following pop operators push the operands as the results onto
1495 the Type1 stack.
1496 Improve handling of setcurrentpoint opcode.
1497
Werner Lembergc011f4c2006-06-26 09:40:00 +000014982006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1499
1500 The Type 1 parser now skips over top-level procedures as required
1501 for a `Simplified Parser'. This makes the parser more robust as it
1502 doesn't poke around in PostScript code. Additionally, it makes the
1503 FontDirectory hackery in src/type1/t1load.c unnecessary.
1504
1505 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1506 (skip_literal_string): Add FT_Error as return value.
1507 Handle escapes better.
1508 (skip_string): Add FT_Error as return value.
1509 Don't set `parser->error' but return error code directly.
1510 (skip_procedure): New function.
1511 (ps_parser_skip_PS_token): Handle procedures.
1512 Update code.
1513 (ps_parser_to_token): Update code.
1514 (ps_parser_load_field_table): Handle bbox entries also.
1515
1516 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1517 Add commented-out code for synthetic fonts.
1518
Werner Lemberga2da05c2006-06-25 06:27:27 +000015192006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1520
1521 Fix two hinting bugs as reported in
1522 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1523
1524 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1525 `first_point' member.
1526
1527 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1528 `first_point'.
1529 (TT_Process_Composite_Glyph): Always untouch points.
1530
1531 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1532 `first_point' and `last_point' in case of composite glyphs.
1533 (Ins_IUP): Fix computation of `end_point'.
1534
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015352006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1536
Werner Lembergef3d2c22006-06-25 06:07:14 +00001537 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1538 Mac. The original patch was written by David Sachitano and Lawrence
1539 Coopet, and modified by Sean McBride for MPW compatibility. Only
1540 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001541
Werner Lembergef3d2c22006-06-25 06:07:14 +00001542 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1543 Mac OS X platforms.
1544 (OS_INLINE): Undefine before definition.
1545 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1546 FontAssociation table in FOND resource.
1547 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1548 and fontSize at each entry of FontAssociation table in FOND
1549 resource.
1550 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1551 ffStylOff of FamilyRecord header of FOND resource, the header,
1552 fontSize, fontID at each entry of FontAssociation table, and
1553 StyleMapping table.
1554 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001555
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015562006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1557
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001558 Public API of TrueTypeGX, OpenType, and classic kern table validator
1559 should return `FT_Err_Unimplemented_Feature' if validation service
1560 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001561 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001562 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1563
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001564 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1565 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1566 unavailable.
1567 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1568 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001569
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001570 * src/base/ftotval.c (FT_OpenType_Validate): Return
1571 FT_Err_Unimplemented_Feature if OpenType validation service is
1572 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001573
Werner Lembergb10e45a2006-06-08 07:32:56 +000015742006-06-08 Werner Lemberg <wl@gnu.org>
1575
1576 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1577 errors.
1578
David Turner5f1f7502006-06-07 05:11:50 +000015792006-06-07 David Turner <david@freetype.org>
1580
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001581 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1582 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1583 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001584
David Turner457b4a82006-06-06 08:14:14 +000015852006-06-06 David Turner <david@freetype.org>
1586
Werner Lemberg4836f952006-06-06 12:54:08 +00001587 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001588
Werner Lemberg4836f952006-06-06 12:54:08 +00001589 We change `ps_unicodes_init' so that it also takes a
1590 `free_glyph_name' callback to release the glyph names returned by
1591 `get_glyph_name'
1592
1593 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1594 Renamed to ...
1595 (PS_GetGlyphNameFunc): This.
1596 (PS_FreeGlyphNameFunc): New typedef.
1597 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1598
1599 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1600 argument.
1601 (cff_sid_free_glyph_name): New function.
1602 (cff_cmap_unicode_init): Updated.
1603
1604 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1605
1606 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1607 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001608
1609
David Turner09717352006-06-04 14:33:08 +000016102006-06-04 David Turner <david@freetype.org>
1611
Werner Lembergd724f202006-06-04 15:17:41 +00001612 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1613 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001614 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001615
Werner Lembergd724f202006-06-04 15:17:41 +00001616 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1617 of `face->num_glyphs' which missed the last glyph, due to
1618 the offset-by-1 computation, since the PFR format doesn't
1619 guarantee that glyph index 0 corresponds to the `missing
1620 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001621
Werner Lemberg33779662006-05-26 06:30:05 +000016222006-05-25 Werner Lemberg <wl@gnu.org>
1623
1624 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1625 `-no-undefined'. Reported by Christian Biesinger.
1626
Werner Lemberg24773d62006-05-20 08:53:13 +000016272006-05-19 Brian Weed <bw@imaginengine.com>
1628
1629 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1630 have debug information, and debug libraries use `C7 compatible'
1631 debug info.
1632
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016332006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1634
Werner Lemberga6523a62006-05-20 08:47:01 +00001635 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001636 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001637
Werner Lemberga6523a62006-05-20 08:47:01 +00001638 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1639 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001640
1641 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001642 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001643
16442006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1645
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001646 * build/unix/configure.raw: Add a fallback to disable Carbon
1647 dependency, if configured with no options on Mac OS X.
1648
16492006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1650
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001651 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001652 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001653 the second part of Savannah bug #16590.
1654
Werner Lemberg545c4e52006-05-17 22:55:04 +000016552006-05-18 Werner Lemberg <wl@gnu.org>
1656
1657 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1658 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1659
David Turnerdc3ff312006-05-17 12:59:35 +000016602006-05-17 David Turner <david@freetype.org>
1661
Werner Lemberg545c4e52006-05-17 22:55:04 +00001662 This is a major patch used to drastically improve the performance of
1663 loading glyphs. This both speeds up loading the glyph vectors
1664 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001665
Werner Lemberg545c4e52006-05-17 22:55:04 +00001666 We now use inline assembler code with GCC to implement `FT_MulFix',
1667 which is probably the most important function related to the
1668 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001669
Werner Lemberg545c4e52006-05-17 22:55:04 +00001670 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001671
1672
Werner Lemberg545c4e52006-05-17 22:55:04 +00001673 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1674 `cursor' and `limit'.
1675
1676 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1677 New functions.
1678 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1679 [TEST]: Remove.
1680
1681 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1682 code.
1683
1684 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1685 `FT_ZERO'
1686 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1687 (af_glyph_hints_reload: Rewrite recognition of weak points.
1688
1689 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1690 constant values out of the loops.
1691
1692 * src/autofit/aftypes.h: Updated.
1693
1694 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1695
1696 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1697 product to get orientation.
1698
1699 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1700 (FT_Stream_OpenGzip): Use it to handle small files directly in
1701 memory.
1702
1703 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1704 Improve performance.
1705
1706 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1707 `limit'.
1708
1709 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1710 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1711 exceedingly large values of number of contours. Speed up by
1712 reducing the number of loops.
1713
1714 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1715
1716
1717 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1718 used to detect rogue clients from 4 to 16. This is to prevent some
1719 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1720 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001721
Werner Lembergde2d90a2006-05-17 08:54:30 +000017222007-05-17 Werner Lemberg <wl@gnu.org>
1723
1724 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001725 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001726
17272006-05-16 Werner Lemberg <wl@gnu.org>
1728
1729 * docs/PROBLEMS: Updated icl issues.
1730
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001731----------------------------------------------------------------------------
1732
Werner Lemberg42b63b22007-01-21 21:01:33 +00001733Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001734David Turner, Robert Wilhelm, and Werner Lemberg.
1735
1736This file is part of the FreeType project, and may only be used, modified,
1737and distributed under the terms of the FreeType project license,
1738LICENSE.TXT. By continuing to use, modify, or distribute this file you
1739indicate that you have read the license and understand and accept it
1740fully.
1741
1742
1743Local Variables:
1744version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001745coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001746End: