blob: 7d085af38b43f5483a7393a8f8da6a1d56979425 [file] [log] [blame]
David Turner085bc6e2007-03-05 17:40:03 +000012007-03-05 David Turner <david@freetype.org>
2
3 * src/type1/t1afm.c (T1_Read_PFM): bug fix: read the kerning values
4 as 16-bit *signed* values, not unsigned ones.
5
David Turner601aefe2007-02-21 16:47:49 +000062007-02-21 David Turner <david@freetype.org>
7
Werner Lembergde5e6862007-02-25 21:06:43 +00008 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
9 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000010
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000112007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
12
13 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
14 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
15 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
16
Werner Lemberga0915172007-02-16 08:12:50 +0000172007-02-16 Werner Lemberg <wl@gnu.org>
18
19 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
20 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
21
David Turner2c4500e2007-02-14 15:08:47 +0000222007-02-14 David Turner <david@freetype.org>
23
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000024 It seems that the following changes fix most of the known
25 interpreter problems with my fonts, but more testing is needed,
26 though.
27
28 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
29 (TT_MulFix14): Rewrite.
30 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
31 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000032
Werner Lembergc6a14082007-02-12 22:08:15 +0000332007-02-12 Werner Lemberg <wl@gnu.org>
34
35 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
36 warnings.
37
38 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
39 (bdf_interpret_style): Ditto.
40
David Turnerc0f9c4a2007-02-12 14:55:03 +0000412007-02-12 David Turner <david@freetype.org>
42
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000043 Simplify projection and dual-projection code interface.
44
Werner Lemberg406d25f2007-02-12 22:01:18 +000045 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
46 FT_Vector' as argument type.
47 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
48 Updated.
49 (CUR_fast_project, CUR_fast_dualproj): New macros.
50 (Project, Dual_Project, Project_x, Project_y): Updated.
51 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
52 macros.
53
54
55 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
56 adjustments for the non-light auto-hinted modes. Gets rid of
57 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000058
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000059 * src/autofit/aflatin.c (af_latin_hints_link_segments,
60 af_latin_hints_compute_edges): Slight optimization of the segment
61 linker and better handling of serif segments to get rid of broken
62 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000063
David Turnerc0f9c4a2007-02-12 14:55:03 +000064
Werner Lemberg442bfb82007-02-12 21:44:10 +000065 Introduce new string functions and the corresponding macros to get
66 rid of various uses of strcpy and other `evil' functions, as well as
67 to simplify a few things.
68
69 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
70 ft_mem_strcpyn): New declarations.
71 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
72 macros.
73 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
74 functions.
75
76 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
77 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
78 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
79 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
80 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
81 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
82 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
83 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +000084
Werner Lemberg406d25f2007-02-12 22:01:18 +000085 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
86
Werner Lemberg582067d2007-02-11 15:03:05 +0000872007-02-11 Werner Lemberg <wl@gnu.org>
88
89 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
90 non-spacing glyphs.
91
Werner Lemberg8f474532007-02-07 08:31:01 +0000922007-02-07 Tom Parker <palfrey@tevp.net>
93
94 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
95 pointer.
96
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000972007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
98
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000099 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
100 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000101 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000102 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
103 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
104 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
105 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000106
107 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
108 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000109 * builds/mac/ftmac.c: Ditto.
110
1112007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
112
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000113 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000114 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000115 #include <ftmac.c>.
116
1172007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
118
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000119 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
120 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
121 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
122 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
123 FT_GetFilePath_From_Mac_ATS_Name.
124 * builds/mac/ftmac.c: Ditto.
125
1262007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
127
Werner Lembergdcbb7082007-02-08 08:54:09 +0000128 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000129 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
130 for passing to FT_New_Face_From_FSSpec.
131
1322007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
133
Werner Lembergdcbb7082007-02-08 08:54:09 +0000134 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000135 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000136
137 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
138 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000139 * builds/mac/ftmac.c (OS_INLINE): Ditto.
140
Werner Lemberg313d7772007-02-01 08:10:45 +00001412007-02-01 Werner Lemberg <wl@gnu.org>
142
143 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
144 Explain why applications shouldn't use it. Found by Alexei.
145
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001462007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000147
148 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
149 message.
150
151 * src/gxvalid/gxvmort1.c
152 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
153 message.
154
Werner Lemberg53935932007-01-31 08:53:02 +00001552007-01-31 Werner Lemberg <wl@gnu.org>
156
157
158 * Version 2.3.1 released.
159 =========================
160
161
162 Tag sources with `VER-2-3-1-FINAL'.
163
164 * builds/win32/visualc/freetype.dsp,
165 builds/win32/visualc/freetype.vcproj: s/230/231/.
166 * builds/win32/visualc/index.html: s/221/231/.
167
168 * vms_make.com: Add `ftgasp'.
169
David Turnera7ee6082007-01-30 10:33:53 +00001702007-01-30 David Turner <david@freetype.org>
171
Werner Lemberg53935932007-01-31 08:53:02 +0000172 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000173
Werner Lemberg53935932007-01-31 08:53:02 +0000174 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000175
Werner Lemberg53935932007-01-31 08:53:02 +0000176 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
177 s/2.3.0/2.3.1/.
178
179 * builds/unix/configure.raw (version_info): Set to 9:12:3.
180
181
182 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
183 (af_loader_load_g): Disable the warper (i.e., the light hinting
184 improvements) to make a 2.3.1 bugfix release before introducing a
185 new feature. This should give us more time to tune and improve the
186 warper for the next release.
187
188 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000189
David Turnerd91eebd2007-01-26 15:05:41 +00001902007-01-25 David Turner <david@freetype.org>
191
Werner Lembergbf241762007-01-26 16:08:49 +0000192 For light auto-hinting, improve glyph advance widths and resurrect
193 normal/full hinting to its normal quality.
194
195 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
196 and `xmax_delta'.
197 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
198 and `xmax_delta'.
199
200 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
201 preprocessor conditional with if-clause, handling both light and
202 normal mode.
203
204 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
205 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000206
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002072007-01-25 Werner Lemberg <wl@gnu.org>
208
209 * docs/release: Updated -- Savannah uses a new uploading scheme.
210
David Turnera42567b2007-01-25 12:23:37 +00002112007-01-25 David Turner <david@freetype.org>
212
Werner Lembergd7855662007-01-25 13:53:56 +0000213 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000214
Werner Lembergd7855662007-01-25 13:53:56 +0000215 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
216 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
217 functions.
David Turnera42567b2007-01-25 12:23:37 +0000218
Werner Lembergd7855662007-01-25 13:53:56 +0000219 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000220
Werner Lembergb1be9e82007-01-25 11:50:00 +00002212007-01-25 Werner Lemberg <wl@gnu.org>
222
223 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000224 correctly in a sanity check. Since this function is only used to
225 load local and global functions, any charstring that called the last
226 local/global function would fail otherwise. This fixes Savannah bug
227 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000228
229 * docs/CHANGES: Document it.
230
David Turnerb6de8d12007-01-23 15:51:50 +00002312007-01-23 David Turner <david@freetype.org>
232
Werner Lembergb1be9e82007-01-25 11:50:00 +0000233 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
234 prevented compilation when disabling both the unpatented and the
235 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000236
Werner Lembergb1be9e82007-01-25 11:50:00 +0000237
238 Fix and enable the warper to improve `light' hinting mode. This is
239 not necessarily a final version, but it seems to work well.
240
241 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
242 Disable code.
243 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
244 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
245
246 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
247 (af_warper_compute_line_best): Fix array size of `scores'.
248 (af_warper_compute): Better handling of border cases.
249 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
250 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000251
Werner Lemberg011d1112007-01-21 09:36:00 +00002522007-01-21 Werner Lemberg <wl@gnu.org>
253
Werner Lemberg42b63b22007-01-21 21:01:33 +0000254 * ChangeLog: Split off older entries into...
255 * ChangeLog.22: This new file.
256
2572007-01-21 Werner Lemberg <wl@gnu.org>
258
Werner Lemberg555258f2007-01-21 09:46:37 +0000259 * docs/CHANGES: Document SHZ fix.
260
2612007-01-21 George Williams <gww@silcom.com>
262
263 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
264 points.
265
2662007-01-21 Werner Lemberg <wl@gnu.org>
267
Werner Lemberg011d1112007-01-21 09:36:00 +0000268 * src/sfnt/ttmtx.c (tt_face_get_metrics)
269 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
270
Werner Lemberg87a5a432007-01-17 12:44:39 +00002712007-01-17 Werner Lemberg <wl@gnu.org>
272
Werner Lembergb8003292007-01-17 12:56:25 +0000273
274 * Version 2.3.0 released.
275 =========================
276
277
278 Tag sources with `VER-2-3-0-FINAL'.
279
2802007-01-17 Werner Lemberg <wl@gnu.org>
281
Werner Lemberg87a5a432007-01-17 12:44:39 +0000282 * docs/release: Updated.
283
David Turner22122722007-01-16 20:06:44 +00002842007-01-16 David Turner <david@freetype.org>
285
Werner Lemberg87a5a432007-01-17 12:44:39 +0000286 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
287 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
288 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
289 warnings.
David Turner22122722007-01-16 20:06:44 +0000290
Werner Lemberg267e1d72007-01-15 07:48:09 +00002912007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
292
293 * builds/amiga/makefile, builds/amiga/makefile.os4,
294 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
295
296 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
297
Werner Lemberg8c4120d2007-01-15 06:42:40 +00002982007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
299
300 Fix various compiler warnings.
301
302 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
303 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
304 s/index/strike_index/.
305 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
306
307 * src/gxvalid/gxvmorx5.c
308 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
309
310 * src/truetype/ttinterp.c (Compute_Point_Displacement),
311 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
312 uninitialized variables.
313
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003142007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
315
316 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
317
Werner Lemberg281c1482007-01-13 22:50:51 +00003182007-01-13 Werner Lemberg <wl@gnu.org>
319
320 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
321 versions up to 0x3FF without complaining.
322
Werner Lembergac250b22007-01-13 14:01:36 +00003232007-01-13 Derek Clegg <dclegg@apple.com>
324
325 Add FT_Get_PS_Font_Info interface to CFF driver.
326
327 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
328 (CFF_FontRec): Add `font_info' field.
329
330 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
331 (cff_font_done): Free font->font_info if necessary.
332
333 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
334 (cff_service_ps_info): Register cff_ps_get_font_info.
335
Werner Lemberg23df31a2007-01-13 08:45:00 +00003362007-01-13 Werner Lemberg <wl@gnu.org>
337
338 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
339 with C++ compiler.
340
341 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
342 af_glyph_hints_dump_edges): Ditto.
343
344 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
345 `modules.cfg').
346
347 * src/sfnt/ttsbit0.h: Remove.
348
349 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
350
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003512007-01-12 David Turner <david@freetype.org>
352
353 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
354 bug in the bitmap emboldener if the pitch of the source bitmap is
355 much larger than its width.
356
357 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
358 compilation warning.
359
Werner Lemberg6d96d312007-01-12 10:30:19 +00003602007-01-12 Werner Lemberg <wl@gnu.org>
361
362 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
363 `automake' CVS module from sources.redhat.com.
364
Werner Lemberg17432b52007-01-12 09:28:44 +00003652007-01-11 Werner Lemberg <wl@gnu.org>
366
367 * src/type1/t1load.c (is_space): Removed.
368 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
369 (parse_charstrings): Use IS_PS_TOKEN.
370
371
372 * autogen.sh: Avoid bash specific syntax.
373
David Turner038ace22007-01-11 15:00:59 +00003742007-01-11 David Turner <david@freetype.org>
375
Werner Lemberg17432b52007-01-12 09:28:44 +0000376 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000377
Werner Lemberg17432b52007-01-12 09:28:44 +0000378 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000379
Werner Lemberg17432b52007-01-12 09:28:44 +0000380 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
381 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000382 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000383
Werner Lemberg17432b52007-01-12 09:28:44 +0000384 * autogen.sh: Small fix to get it working on Mac OS X properly:
385 The issue is that GNU libtool is called `glibtool' on this platform,
386 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000387
David Turner2628ea92007-01-10 13:15:56 +00003882007-01-10 David Turner <david@freetype.org>
389
Werner Lemberg17432b52007-01-12 09:28:44 +0000390 * all-sources: Tag all sources with VER-2-3-0-RC1 and
391 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000392
Werner Lemberg17432b52007-01-12 09:28:44 +0000393 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
394 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
395 version number to 2.3.0.
396
397 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
398 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000399
400 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000401 include/freetype/ftlcdfil.h: Update reference documentation with
402 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000403
Werner Lemberg17432b52007-01-12 09:28:44 +0000404 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
405 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000406
Werner Lembergbf02d392007-01-10 07:07:37 +00004072007-01-10 Derek Clegg <dclegg@apple.com>
408
409 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
410 values.
411
David Turnerf48b60e2007-01-08 15:15:32 +00004122007-01-08 David Turner <david@freetype.org>
413
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000414 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000415
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000416 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
417 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000418 corresponding to a given character pixel size.
419
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000420 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
421 `gasp' table, in order to avoid potential problems with later
422 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000423
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000424 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
425 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000426
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000427 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
428 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
429 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
430 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000431
Werner Lemberge6b6f372007-01-07 00:06:47 +00004322007-01-07 Werner Lemberg <wl@gnu.org>
433
Werner Lembergb8004d22007-01-07 09:13:38 +0000434 * src/cid/cidparse.c (cid_parser_new): Improve error message for
435 Type 11 fonts.
436 Scan for `/sfnts' token.
437
4382007-01-07 Werner Lemberg <wl@gnu.org>
439
440 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000441
Werner Lembergbe5f7972007-01-06 07:51:48 +00004422007-01-06 Werner Lemberg <wl@gnu.org>
443
444 * src/cff/cffload.c (cff_index_init): Remove unused variable.
445 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
446
David Turnera8cf42b2007-01-04 16:46:46 +00004472007-01-04 David Turner <david@freetype.org>
448
Werner Lembergf6294392007-01-06 07:47:45 +0000449 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
450 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000451
Werner Lembergf6294392007-01-06 07:47:45 +0000452
453 Do not allocate interpreter-specific tables in memory if we are not
454 going to load glyphs with the bytecode interpreter anyway.
455
456 * src/truetype/ttgload.c (tt_loader_init): Load execution context
457 only if glyph is hinted.
458 Updated.
459 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
460 and `cvs_ready'.
461 Add `tt_size_ready_bytecode' declaration.
462 * src/truetype/ttobjs.c (tt_size_done_bytecode,
463 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
464 (tt_size_init): Move most code into `tt_size_init_bytecode'.
465 (tt_size_done): Move most code into `tt_size_done_bytecode'.
466 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000467
David Turner91a34022007-01-05 14:47:08 +0000468
Werner Lembergf6294392007-01-06 07:47:45 +0000469 Don't extract the metrics table from the SFNT font file. Instead,
470 reparse it on each glyph load. The runtime difference is not
471 noticeable, and it can save a lot of heap memory when memory-mapped
472 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000473
Werner Lembergf6294392007-01-06 07:47:45 +0000474 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
475 `horz_metrics_offset' and `vert_metrics_ofset'.
476 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
477 Updated.
478
479
480 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
481
482
483 Do not load the CFF index offsets into memory, since this wastes a
484 *lot* of heap memory with large Asian CFF fonts. There is no
485 significant performance loss.
486
487 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
488 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
489 `data_size'.
490 (CFF_CharsetRec): Add field `num_glyphs'.
491
492 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
493 cff_charset_cid_to_gindex): New functions.
494 (cff_new_index): Renamed to...
495 (cff_index_init): This. Update all callers.
496 Updated -- some code has been moved to `cff_index_load_offsets'.
497 (cff_done_index): Renamed to...
498 (cff_index_done): This. Update all callers.
499 (cff_index_get_pointers, cff_index_access_element): Updated to use
500 stream offsets.
501 (cff_charset_compute_cids): Set `num_glyphs' field.
502 (cff_encoding_load): Updated.
503
504 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000505
5062007-01-04 David Turner <david@freetype.org>
507
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000508 * docs/INSTALL.UNIX: Simplify some parts, add reference to
509 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000510
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000511 * README.CVS: Add common problem description and solution
512 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000513
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000514 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000515
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000516 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000517
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000518 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000519
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000520 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
521 (TWorker): This.
522 Remove `count_table' and `memory'.
523 Make `grays' a pointer.
524 (TRaster): New structure.
525 (count_table): New static array.
526 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
527 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
528 ft_black_set_mode, ft_black_render): Updated.
529 (ft_black_init): Don't initialize `count_table'.
530 (ft_black_reset): Use the render pool. This saves about 6KB of
531 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000532
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000533 * src/smooth/ftgrays.c (TRaster): Replaced with...
534 (TWorker): This.
535 Remove `memory'.
536 (TRaster): New structure.
537
538 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
539 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
540 gray_render_span, gray_raster_render): Updated.
541 (gray_raster_reset): Use the render pool. This saves about 6KB of
542 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000543
David Turner8a6c44e2007-01-04 17:03:11 +0000544 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
545 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000546 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
547 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
548 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000549
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000550 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
551 Remove a typo that results in no hinting and a memory leak with some
552 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000553
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000554 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000555 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000556 CFF_Faces in it. We need to close all faces before destroying the
557 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000558
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005592007-01-02 Werner Lemberg <wl@gnu.org>
560
561 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
562 Remove compiler warning.
563
David Turner9207e002007-01-02 16:58:13 +00005642007-01-02 David Turner <david@freetype.org>
565
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000566 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000567
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005682006-12-31 Masatake YAMATO <jet@gyve.org>
569
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000570 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
571 function.
572 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000573 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000574 `gxv_kern_subtable_fmt0_pairs_validate'.
575
David Turner115b4422006-12-22 11:37:05 +00005762006-12-22 David Turner <david@freetype.org>
577
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000578 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
579 warnings.
David Turner115b4422006-12-22 11:37:05 +0000580
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000581 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
582 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000583
Werner Lemberg4755bf72006-12-16 08:58:44 +00005842006-12-16 Anders Kaseorg <anders@kaseorg.com>
585
586 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
587 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
588
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00005892006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
590
Werner Lemberg9b774e22007-01-16 06:11:27 +0000591 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000592 sync with the modification by Jens Claudius on 2006-08-22; cf.
593 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 +0000594
5952006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
596
597 * src/base/ftmac.c: Specialized for Mac OS X only.
598 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
599 * builds/unix/configure.raw: Ditto. When explicit switches for
600 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
601 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
602
6032006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
604
605 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
606 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
607 instead of src/base/ftmac.c
608 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
609 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
610 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
611 that cannot be built at present.
612
6132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
614
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000615 * src/base/ftobjs.c: Improvement of resource fork handler for
616 POSIX, cf.
617 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000618 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
619 format or .dfont, to simulate the face index number counted by ftmac.c.
620 (IsMacResource): Return the number of scalable faces correctly.
621
Werner Lembergec5b4502006-12-10 07:51:38 +00006222006-12-10 Werner Lemberg <wl@gnu.org>
623
624 * builds/toplevel.mk (version): Protect against `distclean' target.
625
Werner Lembergb26b3142006-12-09 20:01:43 +00006262006-12-09 Werner Lemberg <wl@gnu.org>
627
628 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
629 or `type'.
630
631 * builds/freetype.mk (version): Extracted from freetype.h, using
632 GNU make's built-in string functions.
633 (refdoc): Use $(version) instead of static version number.
634
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006352006-12-08 Werner Lemberg <wl@gnu.org>
636
637 * builds/toplevel.mk (dist): Extract version number from freetype.h.
638
Werner Lemberg15c29502006-12-09 07:29:54 +00006392006-12-08 Vladimir Volovich <vvv@vsu.ru>
640
641 * src/tools/apinames (State): Remove final comma in structure -- xlc
642 v5 under AIX 4.3 doesn't like this.
643
David Turnerdbf3b432006-12-07 21:18:09 +00006442006-12-07 David Turner <david@freetype.org>
645
Werner Lemberg256a3512006-12-08 06:49:33 +0000646 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
647 to the spacing of auto-fitted glyphs. This only impacts rare
648 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000649
Werner Lemberg11171312006-12-03 09:43:40 +00006502006-12-03 Werner Lemberg <wl@gnu.org>
651
652 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
653
Werner Lemberg960ba592006-12-01 08:20:47 +00006542006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000655
Werner Lemberg960ba592006-12-01 08:20:47 +0000656 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
657 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
658 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000659
David Turner80658e52006-11-28 08:09:20 +0000660
Werner Lemberg960ba592006-12-01 08:20:47 +0000661 * include/freetype/ftxf86.h: Fix and extend comment so that it
662 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000663
Werner Lemberg960ba592006-12-01 08:20:47 +0000664 * include/freetype/ftchapters.h: Add `font_format' section.
665
666
667 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
668 to TOC in index page.
669
6702006-11-28 David Turner <david@freetype.org>
671
672 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
673 trying to render into a zero-width/height bitmap, not an error code.
674
675 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
676
677 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
678 ones instead.
679
680 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
681 variable.
David Turner80658e52006-11-28 08:09:20 +0000682
Werner Lemberg8636c292006-11-26 22:28:13 +00006832006-11-26 Pierre Hanser <hanser@club-internet.fr>
684
685 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
686
Werner Lemberg960ba592006-12-01 08:20:47 +00006872006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000688
Werner Lemberg960ba592006-12-01 08:20:47 +0000689 * src/autofit/afhints.c (af_glyph_hints_dump_points,
690 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
691 Add stubs to link the `ftgrid' test program when debugging is
692 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000693
Werner Lemberg960ba592006-12-01 08:20:47 +00006942006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000695
696 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000697 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
698
699 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
700 Emit more sensible information.
701
702 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
703
704 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
705 rounding of blue values.
706 (af_latin_hints_compute_segments): Hint segment heights.
707 (af_latin_hints_link_segments): Reduce `len_score' value.
708 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
709 value and use `height' member for comparisons.
710 (af_latin_hint_edges): Extend logging message.
711 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000712
Werner Lemberg91959bf2006-11-22 10:36:55 +00007132006-11-22 Werner Lemberg <wl@gnu.org>
714
715 Fix Savannah bug #15553.
716
717 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
718 program after a change from mono to grayscaling (and vice versa).
719 Use correct constant for comparison to get `exec->grayscale'.
720
Werner Lemberg913a3652006-11-19 09:19:17 +00007212006-11-18 Werner Lemberg <wl@gnu.org>
722
723 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000724 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000725 This patch fixes Savannah bug #18301.
726
727 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
728 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
729 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
730 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
731 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
732 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
733 (FNT_Load_Glyph): Check validity of `glyph_index'.
734
David Turner7bab6ae2006-11-13 11:25:06 +00007352006-11-13 David Turner <david@freetype.org>
736
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000737 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
738 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000739
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000740 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
741 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
742 when building the library to change the default LCD filter to be
743 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000744
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000745 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000746
David Turner8765c712006-11-10 16:49:42 +00007472006-11-10 David Turner <david@freetype.org>
748
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000749 * src/smooth/ftsmooth.c: API change for the LCD
750 filter. The FT_LcdFilter value is an enumeration describing which
751 filter to apply, with new values FT_LCD_FILTER_LIGHT and
752 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
753 algorithm which produces strong color fringes for everything
754 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000755
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000756 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
757 second parameter to an enum type.
758
759 * src/base/ftlcdfil.c (USE_LEGACY): Define.
760 (_ft_lcd_filter): Rename to...
761 (_ft_lcd_filter_fir): This.
762 Update parameters.
763 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
764 (FT_Library_Set_LcdFilter): Update parameters.
765 Handle new filter modes.
766
767 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
768 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
769 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
770 callback and update other fields.
771
772 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
773 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
774 Other minor improvements.
775
776 * src/autofit/aflatin.c: Various tiny improvements that drastically
777 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
778 (af_latin_hints_compute_edges): Fix typo.
779 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000780
David Turner4e9cc3c2006-11-09 16:31:52 +00007812006-11-09 David Turner <david@freetype.org>
782
Werner Lemberg49c77a82006-11-09 21:51:57 +0000783 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
784 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000785
Werner Lemberg5e430892006-11-07 09:35:03 +00007862006-11-07 Zhe Su <james.su@gmail.com>
787
788 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
789 also.
790
Werner Lemberg111b5ae2006-11-03 09:40:12 +00007912006-11-03 Werner Lemberg <wl@gnu.org>
792
793 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
794
David Turner40604742006-11-02 16:37:35 +00007952006-11-02 David Turner <david@freetype.org>
796
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000797 Add a few tweaks to better handle serif fonts.
798 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000799
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000800 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
801 segments that are less than 1.5 pixels high. This gets rid of
802 *many* corner cases with serifs.
803 (af_latin_align_linked_edge): Add logging message.
804 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
805 Add logging messages.
806 Handle AF_EDGE_FLAG flag specially.
807
808 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
809 _af_debug_disable_blue_hints, and _af_debug_hints variables.
810
811 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
812 Update external declarations.
813 (af_corner_orientation, af_corner_is_flat): Replaced by...
814
815 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
816 ft_corner_is_flat): These declarations.
817
818 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
819 Comment out. Replaced by...
820
821 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
822 These functions. Update all callers.
823 (FT_Add64) [!FT_LONG64]: Simplify.
824
825 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
826 (af_direction_compute): Add a missing FT_ABS call. This bug caused
827 production of garbage by missing lots of segments.
828
829 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
830
831 * src/autofit/afloader.c (af_loader_init, af_loader_done)
832 [AF_DEBUG]: Set _af_debug_hints.
833
834
835 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
836 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
837 and ft_corner_orientation.
838
839
840 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000841
Werner Lemberge88c5262006-10-24 05:46:26 +00008422006-10-24 Werner Lemberg <wl@gnu.org>
843
844 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
845
846 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
847 as argument.
848
David Turnera1861392006-10-23 16:00:59 +00008492006-10-23 Zhe Su <zsu@novell.com>
850
Werner Lemberg715e96e2006-10-24 05:28:45 +0000851 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
852 better deal with broken Asian fonts with strange glyphs, having
853 self-intersections and other peculiarities. The used algorithm is
854 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000855
David Turnere140f142006-10-23 08:56:57 +00008562006-10-23 David Turner <david@freetype.org>
857
Werner Lemberg715e96e2006-10-24 05:28:45 +0000858 Speed up the CFF font loader. With some large CFF fonts,
859 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000860
Werner Lemberg715e96e2006-10-24 05:28:45 +0000861 * src/cff/cffload.c (cff_get_offset): Removed.
862 (cff_new_index): Inline functionality of `cff_get_offset'.
863 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
864 (cff_charset_done): Call `cff_charset_free_cids'.
865 (cff_charset_load): Call `cff_charset_compute_cids'.
866 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
867
868 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
869 with FT_NEXT_XXX.
870
871
872 Speed up the Postscript hinter, with more than 100% speed increase
873 on my machine.
874
875 * src/pshinter/pshalgo.c (psh_corner_is_flat,
876 psh_corner_orientation): New functions.
877 (psh_glyph_compute_inflections): Merge loops for efficiency.
878 Use `psh_corner_orientation'.
879 (psh_glyph_init): Use `psh_corner_is_flat'.
880 (psh_hint_table_find_strong_point): Renamed to...
881 (psh_hint_table_find_strong_points): This.
882 Rewrite, adding argument to handle all points at once.
883 Update all callers.
884 (PSH_MAX_STRONG_INTERNAL): New macro.
885 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000886
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00008872006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
888
889 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000890 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000891
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00008922006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
893
894 * docs/INSTALL.CROSS: New document file for cross-building.
895
896 * builds/unix/configure.raw: Preliminary cross-building support.
897 Find native C compiler and pass it by CC_BUILD, and
898 find suffix for native executable and pass it by EXEEXT_BUILD.
899 Also suffix for target executable is passed by EXEEXT.
900
Werner Lembergb9e6d692006-10-15 08:58:40 +0000901 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
902 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000903 CC_BUILD and EXEEXT_BUILD.
904
Werner Lembergb9e6d692006-10-15 08:58:40 +0000905 * builds/exports.mk (APINAMES_EXE): Change the extension for
906 apinames from the suffix for target (E) to that for building host
907 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000908
Werner Lemberg82a07e92006-10-12 06:20:44 +00009092006-10-12 Werner Lemberg <wl@gnu.org>
910
911 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
912 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
913 which reference those files.
914
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009152006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
916
Werner Lembergb9e6d692006-10-15 08:58:40 +0000917 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
918 embedded in freetype2.pc and freetype-config. Use it to record
919 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000920
921 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
922
923 * builds/unix/freetype-config.in: Ditto.
924
Werner Lemberg28e17d92006-10-11 17:27:47 +00009252006-10-11 Werner Lemberg <wl@gnu.org>
926
927 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
928 development.
929
Jens Claudius336d2292006-10-03 08:53:37 +00009302006-10-03 Jens Claudius <jens.claudius@yahoo.com>
931
932 * include/freetype/config/ftstdlib.h: Cast away volatileness from
933 argument to ft_setjmp.
934
935 * include/freetype/internal/ftvalid.h: Add comment that
936 ft_validator_run must not be used.
937
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009382006-10-01 Werner Lemberg <wl@gnu.org>
939
940 * src/base/ftbase.c: Undo change from 2006-09-30.
941
942 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
943
9442006-09-30 David Turner <david@freetype.org>
945
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000946 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
947 s/unpatented_hinting/ignore_unpatented_hinter/.
948 Update all callers.
949
950 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
951 auto-hinting shall be used or not.
952
953 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000954
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009552006-09-30 Werner Lemberg <wl@gnu.org>
956
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000957 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
958 in use).
959
960 * src/base/ftbase.c: Include `ftlcdfil.c'.
961
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009622006-09-29 Werner Lemberg <wl@gnu.org>
963
964 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
965 overlapping segments. Bug reported by Stefan Koch.
966
David Turnerad830712006-09-27 16:20:59 +00009672006-09-28 David Turner <david@freetype.org>
968
Werner Lemberg2c002e12006-09-29 21:31:53 +0000969 Fix a bug in the automatic unpatented hinting support which prevents
970 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000971
Werner Lemberg2c002e12006-09-29 21:31:53 +0000972 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
973 s/force_autohint/unpatented_hinting/. Update all callers.
974
975 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
976
977 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000978
David Turner8a317cf2006-09-27 07:52:48 +00009792006-09-27 David Turner <david@freetype.org>
980
Werner Lemberg2c002e12006-09-29 21:31:53 +0000981 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000982
David Turner8a317cf2006-09-27 07:52:48 +0000983
David Turnere140f142006-10-23 08:56:57 +0000984 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000985 In a default build, the function `FT_Library_SetLcdFilter' returns
986 `FT_Err_Unimplemented_Feature'; you need to #define
987 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
988 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000989
Werner Lemberg2c002e12006-09-29 21:31:53 +0000990 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000991
Werner Lemberg2c002e12006-09-29 21:31:53 +0000992 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
993 typedef.
994 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
995 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000996
Werner Lemberg2c002e12006-09-29 21:31:53 +0000997 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
998 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000999
Werner Lemberg2c002e12006-09-29 21:31:53 +00001000 Handle subpixel rendering.
1001 Simplify function.
1002 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1003 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1004
1005 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1006 pointing to <freetype/ftlcdfil.h>.
1007
1008 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1009 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1010
1011 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001012
Werner Lemberge20df4a2006-09-27 06:29:21 +000010132006-09-26 David Bustin
1014
1015 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1016 correctly. Reported as Savannah bug #17843.
1017
David Turner6f8c6222006-09-26 15:42:44 +000010182006-09-26 David Turner <david@freetype.org>
1019
Werner Lemberg110246c2006-09-26 21:55:44 +00001020 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1021 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1022 horizontal and vertical hinting for the purpose of debugging the
1023 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001024
Werner Lemberg110246c2006-09-26 21:55:44 +00001025 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1026 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001027
Werner Lemberg110246c2006-09-26 21:55:44 +00001028 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1029
1030 * include/freetype/config/ftoption.h, devel/ftoption.h
1031 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1032 we want to compile LCD-optimized rendering code (à la ClearType) or
1033 not. The macro *must* be disabled in default builds of the library
1034 for patent reasons.
1035
1036 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1037 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1038 isn't defined at compile time. This only changes the content of the
1039 rendered glyph to match the one of normal gray-level rendering,
1040 hence clients should not need to be modified.
1041
1042 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001043
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010442006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1045
1046 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1047 LWFN fails and both are available.
1048
David Turnerf3050052006-09-11 12:00:32 +000010492006-09-11 David Turner <david@freetype.org>
1050
Werner Lembergf9644552006-09-12 13:48:10 +00001051 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1052 report their English names through an Apple Roman
1053 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001054
Werner Lembergf9644552006-09-12 13:48:10 +00001055 If the font uses another name entry with language_id == English, it
1056 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001057
Werner Lembergf9644552006-09-12 13:48:10 +00001058 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1059 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001060
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010612006-09-05 Werner Lemberg <wl@gnu.org>
1062
1063 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001064 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001065 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1066 `HAN NOM B.ttf').
1067
1068 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1069
David Turner772e55d2006-09-05 09:45:15 +000010702006-09-05 David Turner <david@freetype.org>
1071
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001072 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001073
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001074 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1075 (TRaster): Remove `count_ex' and `count_ey'.
1076 (gray_find_cell): Remove 2nd and 3rd argument.
1077 (gray_alloc_cell): Merged with `gray_find_cell'.
1078 (gray_record_cell): Simplify.
1079 (gray_set_cell): Rewrite.
1080 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1081 (gray_render_span): Don't use FT_MEM_SET for small values.
1082 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1083 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1084 bitmap scanline.
1085 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001086
David Turneraa557a92006-09-04 16:42:44 +000010872006-09-04 David Turner <david@freetype.org>
1088
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001089 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1090 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001091
Werner Lemberg2d8629b2006-09-03 06:18:45 +000010922006-09-03 Werner Lemberg <wl@gnu.org>
1093
1094 * devel/ftoption.h: Synchronize with
1095 include/freetype/config/ftoption.h.
1096
1097 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1098 variable declaration.
1099 (gray_convert_glyph): Fix compiler warnings.
1100
David Turner6d79f212006-09-01 14:09:35 +000011012006-09-01 David Turner <david@freetype.org>
1102
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001103 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1104 to recognize a few fonts that require the automatic unpatented
1105 loader.
David Turnerbd502952006-09-01 19:05:24 +00001106
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001107 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1108 rasterizer. The speed improvement is between 15% and 25%, depending
1109 on the font data.
1110
1111 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1112 (TCell): Redefine.
1113 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1114 (gray_init_cells): Updated.
1115 (gray_find_cell, gray_alloc_cell): New functions.
1116 (gray_record_cell): Rewritten to use `gray_find_cell' and
1117 `gray_alloc_cell'.
1118 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1119 QSORT_THRESHOLD):
1120 Removed.
1121 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1122 gray_dump_cells): Removed.
1123 (gray_sweep): Rewritten.
1124 (gray_convert_glyph): Rewrite code which used one of the sorting
1125 functions.
1126 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001127
Werner Lembergd898aed2006-08-29 09:50:34 +000011282006-08-29 Dr. Werner Fink <werner@suse.de>
1129
1130 * configure: Make it possible to handle configure options which
1131 have strings containing spaces.
1132
11332006-08-27 David Turner <david@freetype.org>
1134
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001135 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1136 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1137 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1138
1139 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1140 src/truetype/truetype.c, src/truetype/ttdriver.c,
1141 src/truetype/ttgload.c, src/truetype/ttgload.h,
1142 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1143 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1144 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1145
1146 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1147 member `force_autohint'.
1148
1149 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1150
1151 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1152 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001153
Jens Claudiusa787f452006-08-27 11:26:18 +000011542006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1155
1156 Fix miscellaneous compiler warnings.
1157
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001158 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1159 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001160
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001161 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1162 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1163 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001164
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001165 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1166 volatileness of argument to ft_longjmp. Spotted by Werner
1167 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001168
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001169 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1170 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001171
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001172 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1173 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001174
Werner Lembergc4c35b72006-08-27 08:03:46 +000011752006-08-27 Werner Lemberg <wl@gnu.org>
1176
1177 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1178 Reported by Jens.
1179
Jens Claudius088e44e2006-08-22 14:24:30 +000011802006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001181
Jens Claudius088e44e2006-08-22 14:24:30 +00001182 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001183 about addresses of volatile objects passed as function arguments as
1184 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001185
Werner Lembergc4c35b72006-08-27 08:03:46 +00001186 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1187 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001188
1189 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1190 argument `table' a pointer to a volatile object.
1191
1192 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1193 argument `table' a pointer to a volatile object.
1194
Jens Claudius2652bd52006-08-18 17:20:37 +000011952006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1196
1197 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1198 variable `_sfnt' as volatile since it must keep its value across
1199 a call to ft_setjmp.
1200 (gxv_validate): Same for local variables `memory' and `valid'.
1201 (classic_kern_validate): Same for local variables `memory',
1202 `ckern', and `valid'.
1203
1204 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1205 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1206 `jstf', and 'valid'.
1207
1208 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1209 local variable `cmap'.
1210
David Turner9fbfc6a2006-08-16 09:11:31 +000012112006-08-16 David Turner <david@freetype.org>
1212
Werner Lemberg12342992006-08-19 11:18:09 +00001213 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1214 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001215
Werner Lemberg12342992006-08-19 11:18:09 +00001216 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1217 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001218
David Turner33f5f242006-08-16 16:50:55 +00001219
Werner Lemberg12342992006-08-19 11:18:09 +00001220 Improvements to native TrueType hinting. This is a first try,
1221 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1222
1223 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1224 `extra_points2'.
1225
1226 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1227 `orus'.
1228
1229 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1230 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1231 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1232 handle `extra_points2'.
1233
1234 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1235 Remove compiler warning.
1236 (cur_to_arg): Remove macro.
1237 (TT_Hint_Glyph): Updated.
1238 (TT_Process_Simple_Glyph): Handle `orus'.
1239
1240 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1241 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1242 (LOC_Ins_IUP): Renamed to...
1243 (IUP_WorkerRec): This.
1244 Add `orus' member.
1245 (Shift): Renamed to...
1246 (_iup_worker_shift): This.
1247 Updated.
1248 (Interp): Renamed to...
1249 (_iup_worker_interpolate): This.
1250 Updated to handle `orus'.
1251 (Ins_IUP): Updated.
1252
1253 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1254 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001255
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012562006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1257
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001258 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001259 build ftvalid in ft2demos. This has been inadvertedly changed
1260 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001261
12622006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1263
Werner Lemberg12342992006-08-19 11:18:09 +00001264 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1265 Jens:
1266 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001267
Werner Lemberg12342992006-08-19 11:18:09 +00001268 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1269 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001270
1271 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1272
Jens Claudius9950adc2006-08-13 12:14:36 +000012732006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1274
Werner Lemberg12342992006-08-19 11:18:09 +00001275 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1276 T1_TOKEN_TYPE_KEY.
1277 (T1_FieldRec): Add `dict'.
1278 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1279 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1280 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001281
Werner Lemberg12342992006-08-19 11:18:09 +00001282 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1283 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001284
1285 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1286
1287 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001288 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1289 not T1_TOKEN_TYPE_ANY.
1290 (ps_parser_load_field): Make sure a token that should be a string or
1291 name is really a string or name.
1292 Avoid memory leak if a keyword has been already encountered and its
1293 value is overwritten.
1294 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1295 T1_FIELD_XXX.
1296 (parse_dict): Ignore keywords that occur in the wrong dictionary
1297 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001298
Werner Lemberg12342992006-08-19 11:18:09 +00001299 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1300 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001301
Werner Lemberg12342992006-08-19 11:18:09 +00001302 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1303 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001304
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013052006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1306
1307 Move creation of field `buildchar' of T1_DecoderRec out of
1308 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1309 of it.
1310
1311 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1312 and `T1_Compute_Max_Advance'.
1313
1314 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1315 Remove field `face', add `len_buildchar'.
1316
1317 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1318 field `buildchar'.
1319
1320 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1321 finisher for T1_Decoder.
1322 (cid_slot_load_glyph): Do not ignore failure when initializing the
1323 T1_Decoder.
1324
1325 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1326 Updated.
1327 (t1_decoder_init): Remove initialization of fields `buildchar' and
1328 `len_buildchar'.
1329 (t1_decoder_done): Remove deallocation of field `buildchar'.
1330
1331 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1332 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1333 T1_Decoder.
1334 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1335 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1336 case of error.
1337
1338 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1339 `buildchar' of T1_FaceRec.
1340
1341 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1342 `buildchar' of T1_FaceRec.
1343
Werner Lemberg1a380e02006-07-14 18:28:08 +000013442006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1345
1346 * freetype2/include/freetype/internal/psaux.h: New macros
1347 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1348 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1349 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1350 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1351 (T1_DecoderRec): New fields `buildchar' and `face'.
1352 (IS_PS_TOKEN): New macro.
1353
1354 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1355 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1356
1357 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1358 `default_design_vector' and `num_default_design_vector'.
1359
1360 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1361 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1362 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1363
1364 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1365 `token' argument to be NULL if we want only to count the number of
1366 tokens.
1367 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1368 want to skip the array.
1369 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1370 want to skip the array.
1371
1372 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1373 support for (partially commented out) othersubrs 19-25, 27, and 28.
1374 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1375 (t1_decoder_done): Release new field `buildchar'.
1376
1377 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1378 functions.
1379 (t1_keywords): Register them.
1380 (t1_allocate_blend): Updated.
1381 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1382 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1383 (parse_dict): Remove `keyword_flags' argument.
1384 Use new macro IS_PS_TOKEN.
1385 Changed function so that later PostScript definitions override
1386 earlier ones.
1387 (t1_init_loader): Initialize new field `keywords_encountered'.
1388 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1389 `len_buildchar'.
1390 Remove `keywords_flags'.
1391
1392 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1393 `keywords_encountered'.
1394 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1395
1396 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1397 New entries for parsing /NDV, /CDV, and /DesignVector.
1398
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000013992006-07-07 Werner Lemberg <wl@gnu.org>
1400
1401 Add many checks to protect against malformed PCF files.
1402
1403 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1404 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1405
1406 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1407 data and check that tables don't overlap (using a simple
1408 bubblesort).
1409 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1410 New macros which give the size of data structures in the data
1411 stream.
1412 (pcf_get_properties): Use rough estimates to get array size limits.
1413 Assign `face->nprops' and `face->properties' earlier so that a call
1414 to PCF_Face_Done can do the clean-up in case of error.
1415 Protect against invalid string offsets.
1416 (pcf_get_metrics): Clean up code.
1417 Adjust tracing message levels.
1418 Use rough estimate to get array size limit.
1419 (pcf_get_bitmaps): Clean up code.
1420 Adjust tracing message levels.
1421 Use rough estimates to get offset limits.
1422 (pcf_get_encodings): Adjust tracing message level.
1423 (pcf_get_accel): Clean up code.
1424
Werner Lemberg8eb05252006-06-27 06:20:01 +000014252006-06-26 Werner Lemberg <wl@gnu.org>
1426
1427 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1428 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1429
Werner Lemberg24703f82006-06-26 19:12:51 +000014302006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1431
1432 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1433 (t1_decoder_parse_charstrings): Operator with
1434 opcode 15 pops its two arguments.
1435 Handle the case where the pops of an othersubr may be part of a
1436 subroutine.
1437 Handle unknown othersubrs gracefully: count their operands and let
1438 the following pop operators push the operands as the results onto
1439 the Type1 stack.
1440 Improve handling of setcurrentpoint opcode.
1441
Werner Lembergc011f4c2006-06-26 09:40:00 +000014422006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1443
1444 The Type 1 parser now skips over top-level procedures as required
1445 for a `Simplified Parser'. This makes the parser more robust as it
1446 doesn't poke around in PostScript code. Additionally, it makes the
1447 FontDirectory hackery in src/type1/t1load.c unnecessary.
1448
1449 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1450 (skip_literal_string): Add FT_Error as return value.
1451 Handle escapes better.
1452 (skip_string): Add FT_Error as return value.
1453 Don't set `parser->error' but return error code directly.
1454 (skip_procedure): New function.
1455 (ps_parser_skip_PS_token): Handle procedures.
1456 Update code.
1457 (ps_parser_to_token): Update code.
1458 (ps_parser_load_field_table): Handle bbox entries also.
1459
1460 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1461 Add commented-out code for synthetic fonts.
1462
Werner Lemberga2da05c2006-06-25 06:27:27 +000014632006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1464
1465 Fix two hinting bugs as reported in
1466 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1467
1468 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1469 `first_point' member.
1470
1471 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1472 `first_point'.
1473 (TT_Process_Composite_Glyph): Always untouch points.
1474
1475 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1476 `first_point' and `last_point' in case of composite glyphs.
1477 (Ins_IUP): Fix computation of `end_point'.
1478
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014792006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1480
Werner Lembergef3d2c22006-06-25 06:07:14 +00001481 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1482 Mac. The original patch was written by David Sachitano and Lawrence
1483 Coopet, and modified by Sean McBride for MPW compatibility. Only
1484 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001485
Werner Lembergef3d2c22006-06-25 06:07:14 +00001486 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1487 Mac OS X platforms.
1488 (OS_INLINE): Undefine before definition.
1489 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1490 FontAssociation table in FOND resource.
1491 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1492 and fontSize at each entry of FontAssociation table in FOND
1493 resource.
1494 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1495 ffStylOff of FamilyRecord header of FOND resource, the header,
1496 fontSize, fontID at each entry of FontAssociation table, and
1497 StyleMapping table.
1498 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001499
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015002006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1501
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001502 Public API of TrueTypeGX, OpenType, and classic kern table validator
1503 should return `FT_Err_Unimplemented_Feature' if validation service
1504 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001505 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001506 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1507
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001508 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1509 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1510 unavailable.
1511 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1512 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001513
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001514 * src/base/ftotval.c (FT_OpenType_Validate): Return
1515 FT_Err_Unimplemented_Feature if OpenType validation service is
1516 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001517
Werner Lembergb10e45a2006-06-08 07:32:56 +000015182006-06-08 Werner Lemberg <wl@gnu.org>
1519
1520 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1521 errors.
1522
David Turner5f1f7502006-06-07 05:11:50 +000015232006-06-07 David Turner <david@freetype.org>
1524
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001525 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1526 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1527 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001528
David Turner457b4a82006-06-06 08:14:14 +000015292006-06-06 David Turner <david@freetype.org>
1530
Werner Lemberg4836f952006-06-06 12:54:08 +00001531 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001532
Werner Lemberg4836f952006-06-06 12:54:08 +00001533 We change `ps_unicodes_init' so that it also takes a
1534 `free_glyph_name' callback to release the glyph names returned by
1535 `get_glyph_name'
1536
1537 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1538 Renamed to ...
1539 (PS_GetGlyphNameFunc): This.
1540 (PS_FreeGlyphNameFunc): New typedef.
1541 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1542
1543 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1544 argument.
1545 (cff_sid_free_glyph_name): New function.
1546 (cff_cmap_unicode_init): Updated.
1547
1548 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1549
1550 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1551 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001552
1553
David Turner09717352006-06-04 14:33:08 +000015542006-06-04 David Turner <david@freetype.org>
1555
Werner Lembergd724f202006-06-04 15:17:41 +00001556 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1557 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001558 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001559
Werner Lembergd724f202006-06-04 15:17:41 +00001560 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1561 of `face->num_glyphs' which missed the last glyph, due to
1562 the offset-by-1 computation, since the PFR format doesn't
1563 guarantee that glyph index 0 corresponds to the `missing
1564 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001565
Werner Lemberg33779662006-05-26 06:30:05 +000015662006-05-25 Werner Lemberg <wl@gnu.org>
1567
1568 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1569 `-no-undefined'. Reported by Christian Biesinger.
1570
Werner Lemberg24773d62006-05-20 08:53:13 +000015712006-05-19 Brian Weed <bw@imaginengine.com>
1572
1573 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1574 have debug information, and debug libraries use `C7 compatible'
1575 debug info.
1576
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015772006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1578
Werner Lemberga6523a62006-05-20 08:47:01 +00001579 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001580 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001581
Werner Lemberga6523a62006-05-20 08:47:01 +00001582 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1583 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001584
1585 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001586 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001587
15882006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1589
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001590 * build/unix/configure.raw: Add a fallback to disable Carbon
1591 dependency, if configured with no options on Mac OS X.
1592
15932006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1594
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001595 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001596 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001597 the second part of Savannah bug #16590.
1598
Werner Lemberg545c4e52006-05-17 22:55:04 +000015992006-05-18 Werner Lemberg <wl@gnu.org>
1600
1601 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1602 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1603
David Turnerdc3ff312006-05-17 12:59:35 +000016042006-05-17 David Turner <david@freetype.org>
1605
Werner Lemberg545c4e52006-05-17 22:55:04 +00001606 This is a major patch used to drastically improve the performance of
1607 loading glyphs. This both speeds up loading the glyph vectors
1608 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001609
Werner Lemberg545c4e52006-05-17 22:55:04 +00001610 We now use inline assembler code with GCC to implement `FT_MulFix',
1611 which is probably the most important function related to the
1612 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001613
Werner Lemberg545c4e52006-05-17 22:55:04 +00001614 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001615
1616
Werner Lemberg545c4e52006-05-17 22:55:04 +00001617 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1618 `cursor' and `limit'.
1619
1620 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1621 New functions.
1622 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1623 [TEST]: Remove.
1624
1625 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1626 code.
1627
1628 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1629 `FT_ZERO'
1630 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1631 (af_glyph_hints_reload: Rewrite recognition of weak points.
1632
1633 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1634 constant values out of the loops.
1635
1636 * src/autofit/aftypes.h: Updated.
1637
1638 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1639
1640 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1641 product to get orientation.
1642
1643 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1644 (FT_Stream_OpenGzip): Use it to handle small files directly in
1645 memory.
1646
1647 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1648 Improve performance.
1649
1650 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1651 `limit'.
1652
1653 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1654 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1655 exceedingly large values of number of contours. Speed up by
1656 reducing the number of loops.
1657
1658 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1659
1660
1661 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1662 used to detect rogue clients from 4 to 16. This is to prevent some
1663 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1664 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001665
Werner Lembergde2d90a2006-05-17 08:54:30 +000016662007-05-17 Werner Lemberg <wl@gnu.org>
1667
1668 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001669 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001670
16712006-05-16 Werner Lemberg <wl@gnu.org>
1672
1673 * docs/PROBLEMS: Updated icl issues.
1674
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001675----------------------------------------------------------------------------
1676
Werner Lemberg42b63b22007-01-21 21:01:33 +00001677Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001678David Turner, Robert Wilhelm, and Werner Lemberg.
1679
1680This file is part of the FreeType project, and may only be used, modified,
1681and distributed under the terms of the FreeType project license,
1682LICENSE.TXT. By continuing to use, modify, or distribute this file you
1683indicate that you have read the license and understand and accept it
1684fully.
1685
1686
1687Local Variables:
1688version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001689coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001690End: