blob: 58c9ddfbec3403ad48d598b6529b316da47cf317 [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000012007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +00003 * builds/unix/ftsystem.c (FT_Stream_Open): Temporal fix to prevent
4 32bit unsigned long overflow by 64bit filesize on LP64 platform,
5 proposed by Sean McBride:
6 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
7
82007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
9
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000010 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
11 setjmp, proposed by Sean McBride:
12 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
13
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000142007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
15
Werner Lembergc9f6c662007-03-21 13:30:14 +000016 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
17 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
18 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000019
David Turner74c34eb2007-03-18 07:19:31 +0000202007-03-18 David Turner <david@freetype.org>
21
Werner Lembergc9f6c662007-03-21 13:30:14 +000022 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
23 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000024
Werner Lembergc9f6c662007-03-21 13:30:14 +000025 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000026
David Turner89020d92007-03-17 17:48:57 +0000272007-03-17 David Turner <david@freetype.org>
28
Werner Lembergc9f6c662007-03-21 13:30:14 +000029 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
30 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000031
Werner Lemberg25d592a2007-03-09 07:59:35 +0000322007-03-09 Werner Lemberg <wl@gnu.org>
33
34 * Version 2.3.2 released.
35 =========================
36
37
38 Tag sources with `VER-2-3-2'.
39
40 * builds/win32/visualc/index.html,
41 builds/win32/visualc/freetype.dsp,
42 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
43 s/231/232/.
44
David Turner3a51afa2007-03-08 10:50:38 +0000452007-03-08 David Turner <david@freetype.org>
46
Werner Lemberg25d592a2007-03-09 07:59:35 +000047 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000048
Werner Lemberg25d592a2007-03-09 07:59:35 +000049 * builds/unix/configure.raw (version_info): Set to 9:13:3.
50
51 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
52
53 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000054
Werner Lemberg1e259de2007-03-08 15:39:21 +000055 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
56 function to work properly, over-writing user-provided buffers in
57 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000058
David Turner121cad52007-03-08 16:43:50 +000059
Werner Lemberg3d92f082007-03-06 11:59:24 +0000602007-03-05 Werner Lemberg <wl@gnu.org>
61
62 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
63 macro for `strstr'.
64
65 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
66 `trick_names', as suggested by Ivan Nincic.
67
David Turner085bc6e2007-03-05 17:40:03 +0000682007-03-05 David Turner <david@freetype.org>
69
Werner Lembergd112cf02007-03-06 12:06:56 +000070 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
71 case FT_Init_FreeType fails for some reason. Problem reported by
72 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000073
Werner Lembergd112cf02007-03-06 12:06:56 +000074 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
75 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
76 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
77 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000078
Werner Lembergd112cf02007-03-06 12:06:56 +000079 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
80 signed values, not unsigned ones. Problem reported by Johannes
81 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000082
David Turner601aefe2007-02-21 16:47:49 +0000832007-02-21 David Turner <david@freetype.org>
84
Werner Lembergde5e6862007-02-25 21:06:43 +000085 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
86 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000087
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000882007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
89
90 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
91 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
92 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
93
Werner Lemberga0915172007-02-16 08:12:50 +0000942007-02-16 Werner Lemberg <wl@gnu.org>
95
96 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
97 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
98
David Turner2c4500e2007-02-14 15:08:47 +0000992007-02-14 David Turner <david@freetype.org>
100
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000101 It seems that the following changes fix most of the known
102 interpreter problems with my fonts, but more testing is needed,
103 though.
104
105 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
106 (TT_MulFix14): Rewrite.
107 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
108 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000109
Werner Lembergc6a14082007-02-12 22:08:15 +00001102007-02-12 Werner Lemberg <wl@gnu.org>
111
112 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
113 warnings.
114
115 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
116 (bdf_interpret_style): Ditto.
117
David Turnerc0f9c4a2007-02-12 14:55:03 +00001182007-02-12 David Turner <david@freetype.org>
119
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000120 Simplify projection and dual-projection code interface.
121
Werner Lemberg406d25f2007-02-12 22:01:18 +0000122 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
123 FT_Vector' as argument type.
124 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
125 Updated.
126 (CUR_fast_project, CUR_fast_dualproj): New macros.
127 (Project, Dual_Project, Project_x, Project_y): Updated.
128 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
129 macros.
130
131
132 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
133 adjustments for the non-light auto-hinted modes. Gets rid of
134 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000135
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000136 * src/autofit/aflatin.c (af_latin_hints_link_segments,
137 af_latin_hints_compute_edges): Slight optimization of the segment
138 linker and better handling of serif segments to get rid of broken
139 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000140
David Turnerc0f9c4a2007-02-12 14:55:03 +0000141
Werner Lemberg442bfb82007-02-12 21:44:10 +0000142 Introduce new string functions and the corresponding macros to get
143 rid of various uses of strcpy and other `evil' functions, as well as
144 to simplify a few things.
145
146 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
147 ft_mem_strcpyn): New declarations.
148 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
149 macros.
150 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
151 functions.
152
153 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
154 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
155 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
156 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
157 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
158 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
159 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
160 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000161
Werner Lemberg406d25f2007-02-12 22:01:18 +0000162 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
163
Werner Lemberg582067d2007-02-11 15:03:05 +00001642007-02-11 Werner Lemberg <wl@gnu.org>
165
166 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
167 non-spacing glyphs.
168
Werner Lemberg8f474532007-02-07 08:31:01 +00001692007-02-07 Tom Parker <palfrey@tevp.net>
170
171 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
172 pointer.
173
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
175
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000176 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
177 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000178 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000179 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
180 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
181 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
182 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000183
184 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
185 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000186 * builds/mac/ftmac.c: Ditto.
187
1882007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
189
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000190 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000191 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000192 #include <ftmac.c>.
193
1942007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
195
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000196 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
197 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
198 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
199 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
200 FT_GetFilePath_From_Mac_ATS_Name.
201 * builds/mac/ftmac.c: Ditto.
202
2032007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
204
Werner Lembergdcbb7082007-02-08 08:54:09 +0000205 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000206 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
207 for passing to FT_New_Face_From_FSSpec.
208
2092007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
210
Werner Lembergdcbb7082007-02-08 08:54:09 +0000211 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000212 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000213
214 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
215 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000216 * builds/mac/ftmac.c (OS_INLINE): Ditto.
217
Werner Lemberg313d7772007-02-01 08:10:45 +00002182007-02-01 Werner Lemberg <wl@gnu.org>
219
220 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
221 Explain why applications shouldn't use it. Found by Alexei.
222
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002232007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000224
225 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
226 message.
227
228 * src/gxvalid/gxvmort1.c
229 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
230 message.
231
Werner Lemberg53935932007-01-31 08:53:02 +00002322007-01-31 Werner Lemberg <wl@gnu.org>
233
234
235 * Version 2.3.1 released.
236 =========================
237
238
239 Tag sources with `VER-2-3-1-FINAL'.
240
241 * builds/win32/visualc/freetype.dsp,
242 builds/win32/visualc/freetype.vcproj: s/230/231/.
243 * builds/win32/visualc/index.html: s/221/231/.
244
245 * vms_make.com: Add `ftgasp'.
246
David Turnera7ee6082007-01-30 10:33:53 +00002472007-01-30 David Turner <david@freetype.org>
248
Werner Lemberg53935932007-01-31 08:53:02 +0000249 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000250
Werner Lemberg53935932007-01-31 08:53:02 +0000251 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000252
Werner Lemberg25d592a2007-03-09 07:59:35 +0000253 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000254 s/2.3.0/2.3.1/.
255
256 * builds/unix/configure.raw (version_info): Set to 9:12:3.
257
258
259 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
260 (af_loader_load_g): Disable the warper (i.e., the light hinting
261 improvements) to make a 2.3.1 bugfix release before introducing a
262 new feature. This should give us more time to tune and improve the
263 warper for the next release.
264
265 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000266
David Turnerd91eebd2007-01-26 15:05:41 +00002672007-01-25 David Turner <david@freetype.org>
268
Werner Lembergbf241762007-01-26 16:08:49 +0000269 For light auto-hinting, improve glyph advance widths and resurrect
270 normal/full hinting to its normal quality.
271
272 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
273 and `xmax_delta'.
274 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
275 and `xmax_delta'.
276
277 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
278 preprocessor conditional with if-clause, handling both light and
279 normal mode.
280
281 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
282 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000283
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002842007-01-25 Werner Lemberg <wl@gnu.org>
285
286 * docs/release: Updated -- Savannah uses a new uploading scheme.
287
David Turnera42567b2007-01-25 12:23:37 +00002882007-01-25 David Turner <david@freetype.org>
289
Werner Lembergd7855662007-01-25 13:53:56 +0000290 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000291
Werner Lembergd7855662007-01-25 13:53:56 +0000292 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
293 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
294 functions.
David Turnera42567b2007-01-25 12:23:37 +0000295
Werner Lembergd7855662007-01-25 13:53:56 +0000296 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000297
Werner Lembergb1be9e82007-01-25 11:50:00 +00002982007-01-25 Werner Lemberg <wl@gnu.org>
299
300 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000301 correctly in a sanity check. Since this function is only used to
302 load local and global functions, any charstring that called the last
303 local/global function would fail otherwise. This fixes Savannah bug
304 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000305
306 * docs/CHANGES: Document it.
307
David Turnerb6de8d12007-01-23 15:51:50 +00003082007-01-23 David Turner <david@freetype.org>
309
Werner Lembergb1be9e82007-01-25 11:50:00 +0000310 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
311 prevented compilation when disabling both the unpatented and the
312 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000313
Werner Lembergb1be9e82007-01-25 11:50:00 +0000314
315 Fix and enable the warper to improve `light' hinting mode. This is
316 not necessarily a final version, but it seems to work well.
317
318 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
319 Disable code.
320 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
321 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
322
323 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
324 (af_warper_compute_line_best): Fix array size of `scores'.
325 (af_warper_compute): Better handling of border cases.
326 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
327 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000328
Werner Lemberg011d1112007-01-21 09:36:00 +00003292007-01-21 Werner Lemberg <wl@gnu.org>
330
Werner Lemberg42b63b22007-01-21 21:01:33 +0000331 * ChangeLog: Split off older entries into...
332 * ChangeLog.22: This new file.
333
3342007-01-21 Werner Lemberg <wl@gnu.org>
335
Werner Lemberg555258f2007-01-21 09:46:37 +0000336 * docs/CHANGES: Document SHZ fix.
337
3382007-01-21 George Williams <gww@silcom.com>
339
340 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
341 points.
342
3432007-01-21 Werner Lemberg <wl@gnu.org>
344
Werner Lemberg011d1112007-01-21 09:36:00 +0000345 * src/sfnt/ttmtx.c (tt_face_get_metrics)
346 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
347
Werner Lemberg87a5a432007-01-17 12:44:39 +00003482007-01-17 Werner Lemberg <wl@gnu.org>
349
Werner Lembergb8003292007-01-17 12:56:25 +0000350
351 * Version 2.3.0 released.
352 =========================
353
354
355 Tag sources with `VER-2-3-0-FINAL'.
356
3572007-01-17 Werner Lemberg <wl@gnu.org>
358
Werner Lemberg87a5a432007-01-17 12:44:39 +0000359 * docs/release: Updated.
360
David Turner22122722007-01-16 20:06:44 +00003612007-01-16 David Turner <david@freetype.org>
362
Werner Lemberg87a5a432007-01-17 12:44:39 +0000363 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
364 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
365 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
366 warnings.
David Turner22122722007-01-16 20:06:44 +0000367
Werner Lemberg267e1d72007-01-15 07:48:09 +00003682007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
369
370 * builds/amiga/makefile, builds/amiga/makefile.os4,
371 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
372
373 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
374
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003752007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
376
377 Fix various compiler warnings.
378
379 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
380 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
381 s/index/strike_index/.
382 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
383
384 * src/gxvalid/gxvmorx5.c
385 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
386
387 * src/truetype/ttinterp.c (Compute_Point_Displacement),
388 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
389 uninitialized variables.
390
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003912007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
392
393 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
394
Werner Lemberg281c1482007-01-13 22:50:51 +00003952007-01-13 Werner Lemberg <wl@gnu.org>
396
397 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
398 versions up to 0x3FF without complaining.
399
Werner Lembergac250b22007-01-13 14:01:36 +00004002007-01-13 Derek Clegg <dclegg@apple.com>
401
402 Add FT_Get_PS_Font_Info interface to CFF driver.
403
404 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
405 (CFF_FontRec): Add `font_info' field.
406
407 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
408 (cff_font_done): Free font->font_info if necessary.
409
410 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
411 (cff_service_ps_info): Register cff_ps_get_font_info.
412
Werner Lemberg23df31a2007-01-13 08:45:00 +00004132007-01-13 Werner Lemberg <wl@gnu.org>
414
415 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
416 with C++ compiler.
417
418 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
419 af_glyph_hints_dump_edges): Ditto.
420
421 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
422 `modules.cfg').
423
424 * src/sfnt/ttsbit0.h: Remove.
425
426 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
427
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004282007-01-12 David Turner <david@freetype.org>
429
430 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
431 bug in the bitmap emboldener if the pitch of the source bitmap is
432 much larger than its width.
433
434 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
435 compilation warning.
436
Werner Lemberg6d96d312007-01-12 10:30:19 +00004372007-01-12 Werner Lemberg <wl@gnu.org>
438
439 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
440 `automake' CVS module from sources.redhat.com.
441
Werner Lemberg17432b52007-01-12 09:28:44 +00004422007-01-11 Werner Lemberg <wl@gnu.org>
443
444 * src/type1/t1load.c (is_space): Removed.
445 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
446 (parse_charstrings): Use IS_PS_TOKEN.
447
448
449 * autogen.sh: Avoid bash specific syntax.
450
David Turner038ace22007-01-11 15:00:59 +00004512007-01-11 David Turner <david@freetype.org>
452
Werner Lemberg17432b52007-01-12 09:28:44 +0000453 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000454
Werner Lemberg17432b52007-01-12 09:28:44 +0000455 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000456
Werner Lemberg17432b52007-01-12 09:28:44 +0000457 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
458 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000459 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000460
Werner Lemberg17432b52007-01-12 09:28:44 +0000461 * autogen.sh: Small fix to get it working on Mac OS X properly:
462 The issue is that GNU libtool is called `glibtool' on this platform,
463 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000464
David Turner2628ea92007-01-10 13:15:56 +00004652007-01-10 David Turner <david@freetype.org>
466
Werner Lemberg17432b52007-01-12 09:28:44 +0000467 * all-sources: Tag all sources with VER-2-3-0-RC1 and
468 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000469
Werner Lemberg17432b52007-01-12 09:28:44 +0000470 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
471 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
472 version number to 2.3.0.
473
474 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
475 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000476
477 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000478 include/freetype/ftlcdfil.h: Update reference documentation with
479 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000480
Werner Lemberg17432b52007-01-12 09:28:44 +0000481 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
482 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000483
Werner Lembergbf02d392007-01-10 07:07:37 +00004842007-01-10 Derek Clegg <dclegg@apple.com>
485
486 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
487 values.
488
David Turnerf48b60e2007-01-08 15:15:32 +00004892007-01-08 David Turner <david@freetype.org>
490
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000491 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000492
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000493 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
494 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000495 corresponding to a given character pixel size.
496
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000497 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
498 `gasp' table, in order to avoid potential problems with later
499 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000500
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000501 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
502 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000503
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000504 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
505 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
506 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
507 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000508
Werner Lemberge6b6f372007-01-07 00:06:47 +00005092007-01-07 Werner Lemberg <wl@gnu.org>
510
Werner Lembergb8004d22007-01-07 09:13:38 +0000511 * src/cid/cidparse.c (cid_parser_new): Improve error message for
512 Type 11 fonts.
513 Scan for `/sfnts' token.
514
5152007-01-07 Werner Lemberg <wl@gnu.org>
516
517 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000518
Werner Lembergbe5f7972007-01-06 07:51:48 +00005192007-01-06 Werner Lemberg <wl@gnu.org>
520
521 * src/cff/cffload.c (cff_index_init): Remove unused variable.
522 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
523
David Turnera8cf42b2007-01-04 16:46:46 +00005242007-01-04 David Turner <david@freetype.org>
525
Werner Lembergf6294392007-01-06 07:47:45 +0000526 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
527 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000528
Werner Lembergf6294392007-01-06 07:47:45 +0000529
530 Do not allocate interpreter-specific tables in memory if we are not
531 going to load glyphs with the bytecode interpreter anyway.
532
533 * src/truetype/ttgload.c (tt_loader_init): Load execution context
534 only if glyph is hinted.
535 Updated.
536 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
537 and `cvs_ready'.
538 Add `tt_size_ready_bytecode' declaration.
539 * src/truetype/ttobjs.c (tt_size_done_bytecode,
540 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
541 (tt_size_init): Move most code into `tt_size_init_bytecode'.
542 (tt_size_done): Move most code into `tt_size_done_bytecode'.
543 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000544
David Turner91a34022007-01-05 14:47:08 +0000545
Werner Lembergf6294392007-01-06 07:47:45 +0000546 Don't extract the metrics table from the SFNT font file. Instead,
547 reparse it on each glyph load. The runtime difference is not
548 noticeable, and it can save a lot of heap memory when memory-mapped
549 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000550
Werner Lembergf6294392007-01-06 07:47:45 +0000551 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
552 `horz_metrics_offset' and `vert_metrics_ofset'.
553 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
554 Updated.
555
556
557 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
558
559
560 Do not load the CFF index offsets into memory, since this wastes a
561 *lot* of heap memory with large Asian CFF fonts. There is no
562 significant performance loss.
563
564 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
565 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
566 `data_size'.
567 (CFF_CharsetRec): Add field `num_glyphs'.
568
569 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
570 cff_charset_cid_to_gindex): New functions.
571 (cff_new_index): Renamed to...
572 (cff_index_init): This. Update all callers.
573 Updated -- some code has been moved to `cff_index_load_offsets'.
574 (cff_done_index): Renamed to...
575 (cff_index_done): This. Update all callers.
576 (cff_index_get_pointers, cff_index_access_element): Updated to use
577 stream offsets.
578 (cff_charset_compute_cids): Set `num_glyphs' field.
579 (cff_encoding_load): Updated.
580
581 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000582
5832007-01-04 David Turner <david@freetype.org>
584
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000585 * docs/INSTALL.UNIX: Simplify some parts, add reference to
586 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000587
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000588 * README.CVS: Add common problem description and solution
589 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000590
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000591 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000592
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000593 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000594
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000595 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000596
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000597 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
598 (TWorker): This.
599 Remove `count_table' and `memory'.
600 Make `grays' a pointer.
601 (TRaster): New structure.
602 (count_table): New static array.
603 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
604 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
605 ft_black_set_mode, ft_black_render): Updated.
606 (ft_black_init): Don't initialize `count_table'.
607 (ft_black_reset): Use the render pool. This saves about 6KB of
608 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000609
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000610 * src/smooth/ftgrays.c (TRaster): Replaced with...
611 (TWorker): This.
612 Remove `memory'.
613 (TRaster): New structure.
614
615 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
616 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
617 gray_render_span, gray_raster_render): Updated.
618 (gray_raster_reset): Use the render pool. This saves about 6KB of
619 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000620
David Turner8a6c44e2007-01-04 17:03:11 +0000621 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
622 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000623 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
624 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
625 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000626
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000627 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
628 Remove a typo that results in no hinting and a memory leak with some
629 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000630
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000631 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000632 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000633 CFF_Faces in it. We need to close all faces before destroying the
634 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000635
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006362007-01-02 Werner Lemberg <wl@gnu.org>
637
638 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
639 Remove compiler warning.
640
David Turner9207e002007-01-02 16:58:13 +00006412007-01-02 David Turner <david@freetype.org>
642
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000643 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000644
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006452006-12-31 Masatake YAMATO <jet@gyve.org>
646
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000647 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
648 function.
649 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000650 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000651 `gxv_kern_subtable_fmt0_pairs_validate'.
652
David Turner115b4422006-12-22 11:37:05 +00006532006-12-22 David Turner <david@freetype.org>
654
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000655 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
656 warnings.
David Turner115b4422006-12-22 11:37:05 +0000657
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000658 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
659 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000660
Werner Lemberg4755bf72006-12-16 08:58:44 +00006612006-12-16 Anders Kaseorg <anders@kaseorg.com>
662
663 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
664 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
665
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006662006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
667
Werner Lemberg9b774e22007-01-16 06:11:27 +0000668 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000669 sync with the modification by Jens Claudius on 2006-08-22; cf.
670 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 +0000671
6722006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
673
674 * src/base/ftmac.c: Specialized for Mac OS X only.
675 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
676 * builds/unix/configure.raw: Ditto. When explicit switches for
677 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
678 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
679
6802006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
681
682 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
683 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
684 instead of src/base/ftmac.c
685 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
686 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
687 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
688 that cannot be built at present.
689
6902006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
691
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000692 * src/base/ftobjs.c: Improvement of resource fork handler for
693 POSIX, cf.
694 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000695 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
696 format or .dfont, to simulate the face index number counted by ftmac.c.
697 (IsMacResource): Return the number of scalable faces correctly.
698
Werner Lembergec5b4502006-12-10 07:51:38 +00006992006-12-10 Werner Lemberg <wl@gnu.org>
700
701 * builds/toplevel.mk (version): Protect against `distclean' target.
702
Werner Lembergb26b3142006-12-09 20:01:43 +00007032006-12-09 Werner Lemberg <wl@gnu.org>
704
705 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
706 or `type'.
707
708 * builds/freetype.mk (version): Extracted from freetype.h, using
709 GNU make's built-in string functions.
710 (refdoc): Use $(version) instead of static version number.
711
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007122006-12-08 Werner Lemberg <wl@gnu.org>
713
714 * builds/toplevel.mk (dist): Extract version number from freetype.h.
715
Werner Lemberg15c29502006-12-09 07:29:54 +00007162006-12-08 Vladimir Volovich <vvv@vsu.ru>
717
718 * src/tools/apinames (State): Remove final comma in structure -- xlc
719 v5 under AIX 4.3 doesn't like this.
720
David Turnerdbf3b432006-12-07 21:18:09 +00007212006-12-07 David Turner <david@freetype.org>
722
Werner Lemberg256a3512006-12-08 06:49:33 +0000723 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
724 to the spacing of auto-fitted glyphs. This only impacts rare
725 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000726
Werner Lemberg11171312006-12-03 09:43:40 +00007272006-12-03 Werner Lemberg <wl@gnu.org>
728
729 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
730
Werner Lemberg960ba592006-12-01 08:20:47 +00007312006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000732
Werner Lemberg960ba592006-12-01 08:20:47 +0000733 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
734 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
735 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000736
David Turner80658e52006-11-28 08:09:20 +0000737
Werner Lemberg960ba592006-12-01 08:20:47 +0000738 * include/freetype/ftxf86.h: Fix and extend comment so that it
739 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000740
Werner Lemberg960ba592006-12-01 08:20:47 +0000741 * include/freetype/ftchapters.h: Add `font_format' section.
742
743
744 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
745 to TOC in index page.
746
7472006-11-28 David Turner <david@freetype.org>
748
749 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
750 trying to render into a zero-width/height bitmap, not an error code.
751
752 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
753
754 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
755 ones instead.
756
757 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
758 variable.
David Turner80658e52006-11-28 08:09:20 +0000759
Werner Lemberg8636c292006-11-26 22:28:13 +00007602006-11-26 Pierre Hanser <hanser@club-internet.fr>
761
762 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
763
Werner Lemberg960ba592006-12-01 08:20:47 +00007642006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000765
Werner Lemberg960ba592006-12-01 08:20:47 +0000766 * src/autofit/afhints.c (af_glyph_hints_dump_points,
767 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
768 Add stubs to link the `ftgrid' test program when debugging is
769 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000770
Werner Lemberg960ba592006-12-01 08:20:47 +00007712006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000772
773 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000774 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
775
776 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
777 Emit more sensible information.
778
779 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
780
781 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
782 rounding of blue values.
783 (af_latin_hints_compute_segments): Hint segment heights.
784 (af_latin_hints_link_segments): Reduce `len_score' value.
785 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
786 value and use `height' member for comparisons.
787 (af_latin_hint_edges): Extend logging message.
788 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000789
Werner Lemberg91959bf2006-11-22 10:36:55 +00007902006-11-22 Werner Lemberg <wl@gnu.org>
791
792 Fix Savannah bug #15553.
793
794 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
795 program after a change from mono to grayscaling (and vice versa).
796 Use correct constant for comparison to get `exec->grayscale'.
797
Werner Lemberg913a3652006-11-19 09:19:17 +00007982006-11-18 Werner Lemberg <wl@gnu.org>
799
800 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000801 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000802 This patch fixes Savannah bug #18301.
803
804 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
805 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
806 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
807 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
808 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
809 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
810 (FNT_Load_Glyph): Check validity of `glyph_index'.
811
David Turner7bab6ae2006-11-13 11:25:06 +00008122006-11-13 David Turner <david@freetype.org>
813
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000814 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
815 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000816
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000817 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
818 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
819 when building the library to change the default LCD filter to be
820 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000821
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000822 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000823
David Turner8765c712006-11-10 16:49:42 +00008242006-11-10 David Turner <david@freetype.org>
825
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000826 * src/smooth/ftsmooth.c: API change for the LCD
827 filter. The FT_LcdFilter value is an enumeration describing which
828 filter to apply, with new values FT_LCD_FILTER_LIGHT and
829 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
830 algorithm which produces strong color fringes for everything
831 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000832
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000833 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
834 second parameter to an enum type.
835
836 * src/base/ftlcdfil.c (USE_LEGACY): Define.
837 (_ft_lcd_filter): Rename to...
838 (_ft_lcd_filter_fir): This.
839 Update parameters.
840 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
841 (FT_Library_Set_LcdFilter): Update parameters.
842 Handle new filter modes.
843
844 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
845 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
846 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
847 callback and update other fields.
848
849 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
850 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
851 Other minor improvements.
852
853 * src/autofit/aflatin.c: Various tiny improvements that drastically
854 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
855 (af_latin_hints_compute_edges): Fix typo.
856 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000857
David Turner4e9cc3c2006-11-09 16:31:52 +00008582006-11-09 David Turner <david@freetype.org>
859
Werner Lemberg49c77a82006-11-09 21:51:57 +0000860 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
861 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000862
Werner Lemberg5e430892006-11-07 09:35:03 +00008632006-11-07 Zhe Su <james.su@gmail.com>
864
865 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
866 also.
867
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008682006-11-03 Werner Lemberg <wl@gnu.org>
869
870 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
871
David Turner40604742006-11-02 16:37:35 +00008722006-11-02 David Turner <david@freetype.org>
873
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000874 Add a few tweaks to better handle serif fonts.
875 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000876
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000877 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
878 segments that are less than 1.5 pixels high. This gets rid of
879 *many* corner cases with serifs.
880 (af_latin_align_linked_edge): Add logging message.
881 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
882 Add logging messages.
883 Handle AF_EDGE_FLAG flag specially.
884
885 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
886 _af_debug_disable_blue_hints, and _af_debug_hints variables.
887
888 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
889 Update external declarations.
890 (af_corner_orientation, af_corner_is_flat): Replaced by...
891
892 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
893 ft_corner_is_flat): These declarations.
894
895 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
896 Comment out. Replaced by...
897
898 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
899 These functions. Update all callers.
900 (FT_Add64) [!FT_LONG64]: Simplify.
901
902 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
903 (af_direction_compute): Add a missing FT_ABS call. This bug caused
904 production of garbage by missing lots of segments.
905
906 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
907
908 * src/autofit/afloader.c (af_loader_init, af_loader_done)
909 [AF_DEBUG]: Set _af_debug_hints.
910
911
912 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
913 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
914 and ft_corner_orientation.
915
916
917 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000918
Werner Lemberge88c5262006-10-24 05:46:26 +00009192006-10-24 Werner Lemberg <wl@gnu.org>
920
921 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
922
923 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
924 as argument.
925
David Turnera1861392006-10-23 16:00:59 +00009262006-10-23 Zhe Su <zsu@novell.com>
927
Werner Lemberg715e96e2006-10-24 05:28:45 +0000928 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
929 better deal with broken Asian fonts with strange glyphs, having
930 self-intersections and other peculiarities. The used algorithm is
931 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000932
David Turnere140f142006-10-23 08:56:57 +00009332006-10-23 David Turner <david@freetype.org>
934
Werner Lemberg715e96e2006-10-24 05:28:45 +0000935 Speed up the CFF font loader. With some large CFF fonts,
936 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000937
Werner Lemberg715e96e2006-10-24 05:28:45 +0000938 * src/cff/cffload.c (cff_get_offset): Removed.
939 (cff_new_index): Inline functionality of `cff_get_offset'.
940 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
941 (cff_charset_done): Call `cff_charset_free_cids'.
942 (cff_charset_load): Call `cff_charset_compute_cids'.
943 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
944
945 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
946 with FT_NEXT_XXX.
947
948
949 Speed up the Postscript hinter, with more than 100% speed increase
950 on my machine.
951
952 * src/pshinter/pshalgo.c (psh_corner_is_flat,
953 psh_corner_orientation): New functions.
954 (psh_glyph_compute_inflections): Merge loops for efficiency.
955 Use `psh_corner_orientation'.
956 (psh_glyph_init): Use `psh_corner_is_flat'.
957 (psh_hint_table_find_strong_point): Renamed to...
958 (psh_hint_table_find_strong_points): This.
959 Rewrite, adding argument to handle all points at once.
960 Update all callers.
961 (PSH_MAX_STRONG_INTERNAL): New macro.
962 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000963
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009642006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
965
966 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000967 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000968
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009692006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
970
971 * docs/INSTALL.CROSS: New document file for cross-building.
972
973 * builds/unix/configure.raw: Preliminary cross-building support.
974 Find native C compiler and pass it by CC_BUILD, and
975 find suffix for native executable and pass it by EXEEXT_BUILD.
976 Also suffix for target executable is passed by EXEEXT.
977
Werner Lembergb9e6d692006-10-15 08:58:40 +0000978 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
979 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000980 CC_BUILD and EXEEXT_BUILD.
981
Werner Lembergb9e6d692006-10-15 08:58:40 +0000982 * builds/exports.mk (APINAMES_EXE): Change the extension for
983 apinames from the suffix for target (E) to that for building host
984 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000985
Werner Lemberg82a07e92006-10-12 06:20:44 +00009862006-10-12 Werner Lemberg <wl@gnu.org>
987
988 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
989 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
990 which reference those files.
991
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009922006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
993
Werner Lembergb9e6d692006-10-15 08:58:40 +0000994 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
995 embedded in freetype2.pc and freetype-config. Use it to record
996 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000997
998 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
999
1000 * builds/unix/freetype-config.in: Ditto.
1001
Werner Lemberg28e17d92006-10-11 17:27:47 +000010022006-10-11 Werner Lemberg <wl@gnu.org>
1003
1004 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1005 development.
1006
Jens Claudius336d2292006-10-03 08:53:37 +000010072006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1008
1009 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1010 argument to ft_setjmp.
1011
1012 * include/freetype/internal/ftvalid.h: Add comment that
1013 ft_validator_run must not be used.
1014
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010152006-10-01 Werner Lemberg <wl@gnu.org>
1016
1017 * src/base/ftbase.c: Undo change from 2006-09-30.
1018
1019 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1020
10212006-09-30 David Turner <david@freetype.org>
1022
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001023 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1024 s/unpatented_hinting/ignore_unpatented_hinter/.
1025 Update all callers.
1026
1027 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1028 auto-hinting shall be used or not.
1029
1030 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001031
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010322006-09-30 Werner Lemberg <wl@gnu.org>
1033
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001034 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1035 in use).
1036
1037 * src/base/ftbase.c: Include `ftlcdfil.c'.
1038
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010392006-09-29 Werner Lemberg <wl@gnu.org>
1040
1041 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1042 overlapping segments. Bug reported by Stefan Koch.
1043
David Turnerad830712006-09-27 16:20:59 +000010442006-09-28 David Turner <david@freetype.org>
1045
Werner Lemberg2c002e12006-09-29 21:31:53 +00001046 Fix a bug in the automatic unpatented hinting support which prevents
1047 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001048
Werner Lemberg2c002e12006-09-29 21:31:53 +00001049 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1050 s/force_autohint/unpatented_hinting/. Update all callers.
1051
1052 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1053
1054 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001055
David Turner8a317cf2006-09-27 07:52:48 +000010562006-09-27 David Turner <david@freetype.org>
1057
Werner Lemberg2c002e12006-09-29 21:31:53 +00001058 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001059
David Turner8a317cf2006-09-27 07:52:48 +00001060
David Turnere140f142006-10-23 08:56:57 +00001061 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001062 In a default build, the function `FT_Library_SetLcdFilter' returns
1063 `FT_Err_Unimplemented_Feature'; you need to #define
1064 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1065 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001066
Werner Lemberg2c002e12006-09-29 21:31:53 +00001067 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001068
Werner Lemberg2c002e12006-09-29 21:31:53 +00001069 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1070 typedef.
1071 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1072 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001073
Werner Lemberg2c002e12006-09-29 21:31:53 +00001074 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1075 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001076
Werner Lemberg2c002e12006-09-29 21:31:53 +00001077 Handle subpixel rendering.
1078 Simplify function.
1079 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1080 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1081
1082 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1083 pointing to <freetype/ftlcdfil.h>.
1084
1085 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1086 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1087
1088 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001089
Werner Lemberge20df4a2006-09-27 06:29:21 +000010902006-09-26 David Bustin
1091
1092 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1093 correctly. Reported as Savannah bug #17843.
1094
David Turner6f8c6222006-09-26 15:42:44 +000010952006-09-26 David Turner <david@freetype.org>
1096
Werner Lemberg110246c2006-09-26 21:55:44 +00001097 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1098 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1099 horizontal and vertical hinting for the purpose of debugging the
1100 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001101
Werner Lemberg110246c2006-09-26 21:55:44 +00001102 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1103 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001104
Werner Lemberg110246c2006-09-26 21:55:44 +00001105 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1106
1107 * include/freetype/config/ftoption.h, devel/ftoption.h
1108 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1109 we want to compile LCD-optimized rendering code la ClearType) or
1110 not. The macro *must* be disabled in default builds of the library
1111 for patent reasons.
1112
1113 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1114 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1115 isn't defined at compile time. This only changes the content of the
1116 rendered glyph to match the one of normal gray-level rendering,
1117 hence clients should not need to be modified.
1118
1119 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001120
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011212006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1122
1123 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1124 LWFN fails and both are available.
1125
David Turnerf3050052006-09-11 12:00:32 +000011262006-09-11 David Turner <david@freetype.org>
1127
Werner Lembergf9644552006-09-12 13:48:10 +00001128 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1129 report their English names through an Apple Roman
1130 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001131
Werner Lembergf9644552006-09-12 13:48:10 +00001132 If the font uses another name entry with language_id == English, it
1133 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001134
Werner Lembergf9644552006-09-12 13:48:10 +00001135 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1136 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001137
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011382006-09-05 Werner Lemberg <wl@gnu.org>
1139
1140 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001141 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001142 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1143 `HAN NOM B.ttf').
1144
1145 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1146
David Turner772e55d2006-09-05 09:45:15 +000011472006-09-05 David Turner <david@freetype.org>
1148
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001149 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001150
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001151 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1152 (TRaster): Remove `count_ex' and `count_ey'.
1153 (gray_find_cell): Remove 2nd and 3rd argument.
1154 (gray_alloc_cell): Merged with `gray_find_cell'.
1155 (gray_record_cell): Simplify.
1156 (gray_set_cell): Rewrite.
1157 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1158 (gray_render_span): Don't use FT_MEM_SET for small values.
1159 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1160 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1161 bitmap scanline.
1162 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001163
David Turneraa557a92006-09-04 16:42:44 +000011642006-09-04 David Turner <david@freetype.org>
1165
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001166 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1167 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001168
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011692006-09-03 Werner Lemberg <wl@gnu.org>
1170
1171 * devel/ftoption.h: Synchronize with
1172 include/freetype/config/ftoption.h.
1173
1174 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1175 variable declaration.
1176 (gray_convert_glyph): Fix compiler warnings.
1177
David Turner6d79f212006-09-01 14:09:35 +000011782006-09-01 David Turner <david@freetype.org>
1179
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001180 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1181 to recognize a few fonts that require the automatic unpatented
1182 loader.
David Turnerbd502952006-09-01 19:05:24 +00001183
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001184 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1185 rasterizer. The speed improvement is between 15% and 25%, depending
1186 on the font data.
1187
1188 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1189 (TCell): Redefine.
1190 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1191 (gray_init_cells): Updated.
1192 (gray_find_cell, gray_alloc_cell): New functions.
1193 (gray_record_cell): Rewritten to use `gray_find_cell' and
1194 `gray_alloc_cell'.
1195 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1196 QSORT_THRESHOLD):
1197 Removed.
1198 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1199 gray_dump_cells): Removed.
1200 (gray_sweep): Rewritten.
1201 (gray_convert_glyph): Rewrite code which used one of the sorting
1202 functions.
1203 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001204
Werner Lembergd898aed2006-08-29 09:50:34 +000012052006-08-29 Dr. Werner Fink <werner@suse.de>
1206
1207 * configure: Make it possible to handle configure options which
1208 have strings containing spaces.
1209
12102006-08-27 David Turner <david@freetype.org>
1211
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001212 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1213 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1214 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1215
1216 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1217 src/truetype/truetype.c, src/truetype/ttdriver.c,
1218 src/truetype/ttgload.c, src/truetype/ttgload.h,
1219 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1220 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1221 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1222
1223 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1224 member `force_autohint'.
1225
1226 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1227
1228 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1229 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001230
Jens Claudiusa787f452006-08-27 11:26:18 +000012312006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1232
1233 Fix miscellaneous compiler warnings.
1234
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001235 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1236 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001237
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001238 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1239 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1240 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001241
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001242 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1243 volatileness of argument to ft_longjmp. Spotted by Werner
1244 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001245
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001246 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1247 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001248
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001249 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1250 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001251
Werner Lembergc4c35b72006-08-27 08:03:46 +000012522006-08-27 Werner Lemberg <wl@gnu.org>
1253
1254 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1255 Reported by Jens.
1256
Jens Claudius088e44e2006-08-22 14:24:30 +000012572006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001258
Jens Claudius088e44e2006-08-22 14:24:30 +00001259 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001260 about addresses of volatile objects passed as function arguments as
1261 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001262
Werner Lembergc4c35b72006-08-27 08:03:46 +00001263 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1264 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001265
1266 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1267 argument `table' a pointer to a volatile object.
1268
1269 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1270 argument `table' a pointer to a volatile object.
1271
Jens Claudius2652bd52006-08-18 17:20:37 +000012722006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1273
1274 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1275 variable `_sfnt' as volatile since it must keep its value across
1276 a call to ft_setjmp.
1277 (gxv_validate): Same for local variables `memory' and `valid'.
1278 (classic_kern_validate): Same for local variables `memory',
1279 `ckern', and `valid'.
1280
1281 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1282 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1283 `jstf', and 'valid'.
1284
1285 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1286 local variable `cmap'.
1287
David Turner9fbfc6a2006-08-16 09:11:31 +000012882006-08-16 David Turner <david@freetype.org>
1289
Werner Lemberg12342992006-08-19 11:18:09 +00001290 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1291 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001292
Werner Lemberg12342992006-08-19 11:18:09 +00001293 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1294 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001295
David Turner33f5f242006-08-16 16:50:55 +00001296
Werner Lemberg12342992006-08-19 11:18:09 +00001297 Improvements to native TrueType hinting. This is a first try,
1298 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1299
1300 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1301 `extra_points2'.
1302
1303 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1304 `orus'.
1305
1306 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1307 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1308 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1309 handle `extra_points2'.
1310
1311 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1312 Remove compiler warning.
1313 (cur_to_arg): Remove macro.
1314 (TT_Hint_Glyph): Updated.
1315 (TT_Process_Simple_Glyph): Handle `orus'.
1316
1317 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1318 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1319 (LOC_Ins_IUP): Renamed to...
1320 (IUP_WorkerRec): This.
1321 Add `orus' member.
1322 (Shift): Renamed to...
1323 (_iup_worker_shift): This.
1324 Updated.
1325 (Interp): Renamed to...
1326 (_iup_worker_interpolate): This.
1327 Updated to handle `orus'.
1328 (Ins_IUP): Updated.
1329
1330 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1331 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001332
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013332006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1334
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001335 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001336 build ftvalid in ft2demos. This has been inadvertedly changed
1337 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001338
13392006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1340
Werner Lemberg12342992006-08-19 11:18:09 +00001341 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1342 Jens:
1343 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001344
Werner Lemberg12342992006-08-19 11:18:09 +00001345 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1346 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001347
1348 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1349
Jens Claudius9950adc2006-08-13 12:14:36 +000013502006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1351
Werner Lemberg12342992006-08-19 11:18:09 +00001352 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1353 T1_TOKEN_TYPE_KEY.
1354 (T1_FieldRec): Add `dict'.
1355 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1356 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1357 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001358
Werner Lemberg12342992006-08-19 11:18:09 +00001359 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1360 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001361
1362 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1363
1364 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001365 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1366 not T1_TOKEN_TYPE_ANY.
1367 (ps_parser_load_field): Make sure a token that should be a string or
1368 name is really a string or name.
1369 Avoid memory leak if a keyword has been already encountered and its
1370 value is overwritten.
1371 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1372 T1_FIELD_XXX.
1373 (parse_dict): Ignore keywords that occur in the wrong dictionary
1374 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001375
Werner Lemberg12342992006-08-19 11:18:09 +00001376 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1377 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001378
Werner Lemberg12342992006-08-19 11:18:09 +00001379 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1380 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001381
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013822006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1383
1384 Move creation of field `buildchar' of T1_DecoderRec out of
1385 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1386 of it.
1387
1388 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1389 and `T1_Compute_Max_Advance'.
1390
1391 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1392 Remove field `face', add `len_buildchar'.
1393
1394 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1395 field `buildchar'.
1396
1397 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1398 finisher for T1_Decoder.
1399 (cid_slot_load_glyph): Do not ignore failure when initializing the
1400 T1_Decoder.
1401
1402 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1403 Updated.
1404 (t1_decoder_init): Remove initialization of fields `buildchar' and
1405 `len_buildchar'.
1406 (t1_decoder_done): Remove deallocation of field `buildchar'.
1407
1408 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1409 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1410 T1_Decoder.
1411 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1412 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1413 case of error.
1414
1415 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1416 `buildchar' of T1_FaceRec.
1417
1418 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1419 `buildchar' of T1_FaceRec.
1420
Werner Lemberg1a380e02006-07-14 18:28:08 +000014212006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1422
1423 * freetype2/include/freetype/internal/psaux.h: New macros
1424 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1425 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1426 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1427 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1428 (T1_DecoderRec): New fields `buildchar' and `face'.
1429 (IS_PS_TOKEN): New macro.
1430
1431 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1432 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1433
1434 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1435 `default_design_vector' and `num_default_design_vector'.
1436
1437 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1438 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1439 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1440
1441 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1442 `token' argument to be NULL if we want only to count the number of
1443 tokens.
1444 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1445 want to skip the array.
1446 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1447 want to skip the array.
1448
1449 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1450 support for (partially commented out) othersubrs 19-25, 27, and 28.
1451 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1452 (t1_decoder_done): Release new field `buildchar'.
1453
1454 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1455 functions.
1456 (t1_keywords): Register them.
1457 (t1_allocate_blend): Updated.
1458 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1459 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1460 (parse_dict): Remove `keyword_flags' argument.
1461 Use new macro IS_PS_TOKEN.
1462 Changed function so that later PostScript definitions override
1463 earlier ones.
1464 (t1_init_loader): Initialize new field `keywords_encountered'.
1465 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1466 `len_buildchar'.
1467 Remove `keywords_flags'.
1468
1469 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1470 `keywords_encountered'.
1471 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1472
1473 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1474 New entries for parsing /NDV, /CDV, and /DesignVector.
1475
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014762006-07-07 Werner Lemberg <wl@gnu.org>
1477
1478 Add many checks to protect against malformed PCF files.
1479
1480 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1481 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1482
1483 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1484 data and check that tables don't overlap (using a simple
1485 bubblesort).
1486 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1487 New macros which give the size of data structures in the data
1488 stream.
1489 (pcf_get_properties): Use rough estimates to get array size limits.
1490 Assign `face->nprops' and `face->properties' earlier so that a call
1491 to PCF_Face_Done can do the clean-up in case of error.
1492 Protect against invalid string offsets.
1493 (pcf_get_metrics): Clean up code.
1494 Adjust tracing message levels.
1495 Use rough estimate to get array size limit.
1496 (pcf_get_bitmaps): Clean up code.
1497 Adjust tracing message levels.
1498 Use rough estimates to get offset limits.
1499 (pcf_get_encodings): Adjust tracing message level.
1500 (pcf_get_accel): Clean up code.
1501
Werner Lemberg8eb05252006-06-27 06:20:01 +000015022006-06-26 Werner Lemberg <wl@gnu.org>
1503
1504 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1505 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1506
Werner Lemberg24703f82006-06-26 19:12:51 +000015072006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1508
1509 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1510 (t1_decoder_parse_charstrings): Operator with
1511 opcode 15 pops its two arguments.
1512 Handle the case where the pops of an othersubr may be part of a
1513 subroutine.
1514 Handle unknown othersubrs gracefully: count their operands and let
1515 the following pop operators push the operands as the results onto
1516 the Type1 stack.
1517 Improve handling of setcurrentpoint opcode.
1518
Werner Lembergc011f4c2006-06-26 09:40:00 +000015192006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1520
1521 The Type 1 parser now skips over top-level procedures as required
1522 for a `Simplified Parser'. This makes the parser more robust as it
1523 doesn't poke around in PostScript code. Additionally, it makes the
1524 FontDirectory hackery in src/type1/t1load.c unnecessary.
1525
1526 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1527 (skip_literal_string): Add FT_Error as return value.
1528 Handle escapes better.
1529 (skip_string): Add FT_Error as return value.
1530 Don't set `parser->error' but return error code directly.
1531 (skip_procedure): New function.
1532 (ps_parser_skip_PS_token): Handle procedures.
1533 Update code.
1534 (ps_parser_to_token): Update code.
1535 (ps_parser_load_field_table): Handle bbox entries also.
1536
1537 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1538 Add commented-out code for synthetic fonts.
1539
Werner Lemberga2da05c2006-06-25 06:27:27 +000015402006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1541
1542 Fix two hinting bugs as reported in
1543 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1544
1545 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1546 `first_point' member.
1547
1548 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1549 `first_point'.
1550 (TT_Process_Composite_Glyph): Always untouch points.
1551
1552 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1553 `first_point' and `last_point' in case of composite glyphs.
1554 (Ins_IUP): Fix computation of `end_point'.
1555
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015562006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1557
Werner Lembergef3d2c22006-06-25 06:07:14 +00001558 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1559 Mac. The original patch was written by David Sachitano and Lawrence
1560 Coopet, and modified by Sean McBride for MPW compatibility. Only
1561 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001562
Werner Lembergef3d2c22006-06-25 06:07:14 +00001563 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1564 Mac OS X platforms.
1565 (OS_INLINE): Undefine before definition.
1566 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1567 FontAssociation table in FOND resource.
1568 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1569 and fontSize at each entry of FontAssociation table in FOND
1570 resource.
1571 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1572 ffStylOff of FamilyRecord header of FOND resource, the header,
1573 fontSize, fontID at each entry of FontAssociation table, and
1574 StyleMapping table.
1575 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001576
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015772006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1578
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001579 Public API of TrueTypeGX, OpenType, and classic kern table validator
1580 should return `FT_Err_Unimplemented_Feature' if validation service
1581 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001582 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001583 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1584
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001585 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1586 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1587 unavailable.
1588 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1589 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001590
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001591 * src/base/ftotval.c (FT_OpenType_Validate): Return
1592 FT_Err_Unimplemented_Feature if OpenType validation service is
1593 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001594
Werner Lembergb10e45a2006-06-08 07:32:56 +000015952006-06-08 Werner Lemberg <wl@gnu.org>
1596
1597 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1598 errors.
1599
David Turner5f1f7502006-06-07 05:11:50 +000016002006-06-07 David Turner <david@freetype.org>
1601
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001602 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1603 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1604 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001605
David Turner457b4a82006-06-06 08:14:14 +000016062006-06-06 David Turner <david@freetype.org>
1607
Werner Lemberg4836f952006-06-06 12:54:08 +00001608 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001609
Werner Lemberg4836f952006-06-06 12:54:08 +00001610 We change `ps_unicodes_init' so that it also takes a
1611 `free_glyph_name' callback to release the glyph names returned by
1612 `get_glyph_name'
1613
1614 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1615 Renamed to ...
1616 (PS_GetGlyphNameFunc): This.
1617 (PS_FreeGlyphNameFunc): New typedef.
1618 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1619
1620 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1621 argument.
1622 (cff_sid_free_glyph_name): New function.
1623 (cff_cmap_unicode_init): Updated.
1624
1625 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1626
1627 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1628 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001629
1630
David Turner09717352006-06-04 14:33:08 +000016312006-06-04 David Turner <david@freetype.org>
1632
Werner Lembergd724f202006-06-04 15:17:41 +00001633 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1634 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001635 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001636
Werner Lembergd724f202006-06-04 15:17:41 +00001637 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1638 of `face->num_glyphs' which missed the last glyph, due to
1639 the offset-by-1 computation, since the PFR format doesn't
1640 guarantee that glyph index 0 corresponds to the `missing
1641 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001642
Werner Lemberg33779662006-05-26 06:30:05 +000016432006-05-25 Werner Lemberg <wl@gnu.org>
1644
1645 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1646 `-no-undefined'. Reported by Christian Biesinger.
1647
Werner Lemberg24773d62006-05-20 08:53:13 +000016482006-05-19 Brian Weed <bw@imaginengine.com>
1649
1650 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1651 have debug information, and debug libraries use `C7 compatible'
1652 debug info.
1653
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016542006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1655
Werner Lemberga6523a62006-05-20 08:47:01 +00001656 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001657 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001658
Werner Lemberga6523a62006-05-20 08:47:01 +00001659 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1660 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001661
1662 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001663 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001664
16652006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1666
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001667 * build/unix/configure.raw: Add a fallback to disable Carbon
1668 dependency, if configured with no options on Mac OS X.
1669
16702006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1671
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001672 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001673 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001674 the second part of Savannah bug #16590.
1675
Werner Lemberg545c4e52006-05-17 22:55:04 +000016762006-05-18 Werner Lemberg <wl@gnu.org>
1677
1678 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1679 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1680
David Turnerdc3ff312006-05-17 12:59:35 +000016812006-05-17 David Turner <david@freetype.org>
1682
Werner Lemberg545c4e52006-05-17 22:55:04 +00001683 This is a major patch used to drastically improve the performance of
1684 loading glyphs. This both speeds up loading the glyph vectors
1685 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001686
Werner Lemberg545c4e52006-05-17 22:55:04 +00001687 We now use inline assembler code with GCC to implement `FT_MulFix',
1688 which is probably the most important function related to the
1689 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001690
Werner Lemberg545c4e52006-05-17 22:55:04 +00001691 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001692
1693
Werner Lemberg545c4e52006-05-17 22:55:04 +00001694 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1695 `cursor' and `limit'.
1696
1697 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1698 New functions.
1699 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1700 [TEST]: Remove.
1701
1702 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1703 code.
1704
1705 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1706 `FT_ZERO'
1707 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1708 (af_glyph_hints_reload: Rewrite recognition of weak points.
1709
1710 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1711 constant values out of the loops.
1712
1713 * src/autofit/aftypes.h: Updated.
1714
1715 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1716
1717 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1718 product to get orientation.
1719
1720 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1721 (FT_Stream_OpenGzip): Use it to handle small files directly in
1722 memory.
1723
1724 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1725 Improve performance.
1726
1727 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1728 `limit'.
1729
1730 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1731 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1732 exceedingly large values of number of contours. Speed up by
1733 reducing the number of loops.
1734
1735 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1736
1737
1738 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1739 used to detect rogue clients from 4 to 16. This is to prevent some
1740 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1741 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001742
Werner Lembergde2d90a2006-05-17 08:54:30 +000017432007-05-17 Werner Lemberg <wl@gnu.org>
1744
1745 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001746 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001747
17482006-05-16 Werner Lemberg <wl@gnu.org>
1749
1750 * docs/PROBLEMS: Updated icl issues.
1751
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001752----------------------------------------------------------------------------
1753
Werner Lemberg42b63b22007-01-21 21:01:33 +00001754Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001755David Turner, Robert Wilhelm, and Werner Lemberg.
1756
1757This file is part of the FreeType project, and may only be used, modified,
1758and distributed under the terms of the FreeType project license,
1759LICENSE.TXT. By continuing to use, modify, or distribute this file you
1760indicate that you have read the license and understand and accept it
1761fully.
1762
1763
1764Local Variables:
1765version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001766coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001767End: