blob: 57328ff1342909ecef0282e64aad823272273cd2 [file] [log] [blame]
David Turner3a51afa2007-03-08 10:50:38 +000012007-03-08 David Turner <david@freetype.org>
2
David Turner121cad52007-03-08 16:43:50 +00003 * docs/CHANGES, docs/VERSION.DLL: updating documentation for upcoming release
4
5 * builds/unix/configure.raw, include/freetype/freetype.h, README, Jamfile:
6 updating version number to 2.3.2
7
Werner Lemberg1e259de2007-03-08 15:39:21 +00008 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
9 function to work properly, over-writing user-provided buffers in
10 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000011
David Turner121cad52007-03-08 16:43:50 +000012
Werner Lemberg3d92f082007-03-06 11:59:24 +0000132007-03-05 Werner Lemberg <wl@gnu.org>
14
15 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
16 macro for `strstr'.
17
18 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
19 `trick_names', as suggested by Ivan Nincic.
20
David Turner085bc6e2007-03-05 17:40:03 +0000212007-03-05 David Turner <david@freetype.org>
22
Werner Lembergd112cf02007-03-06 12:06:56 +000023 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
24 case FT_Init_FreeType fails for some reason. Problem reported by
25 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000026
Werner Lembergd112cf02007-03-06 12:06:56 +000027 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
28 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
29 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
30 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000031
Werner Lembergd112cf02007-03-06 12:06:56 +000032 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
33 signed values, not unsigned ones. Problem reported by Johannes
34 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000035
David Turner601aefe2007-02-21 16:47:49 +0000362007-02-21 David Turner <david@freetype.org>
37
Werner Lembergde5e6862007-02-25 21:06:43 +000038 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
39 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000040
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000412007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
42
43 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
44 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
45 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
46
Werner Lemberga0915172007-02-16 08:12:50 +0000472007-02-16 Werner Lemberg <wl@gnu.org>
48
49 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
50 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
51
David Turner2c4500e2007-02-14 15:08:47 +0000522007-02-14 David Turner <david@freetype.org>
53
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000054 It seems that the following changes fix most of the known
55 interpreter problems with my fonts, but more testing is needed,
56 though.
57
58 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
59 (TT_MulFix14): Rewrite.
60 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
61 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000062
Werner Lembergc6a14082007-02-12 22:08:15 +0000632007-02-12 Werner Lemberg <wl@gnu.org>
64
65 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
66 warnings.
67
68 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
69 (bdf_interpret_style): Ditto.
70
David Turnerc0f9c4a2007-02-12 14:55:03 +0000712007-02-12 David Turner <david@freetype.org>
72
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000073 Simplify projection and dual-projection code interface.
74
Werner Lemberg406d25f2007-02-12 22:01:18 +000075 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
76 FT_Vector' as argument type.
77 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
78 Updated.
79 (CUR_fast_project, CUR_fast_dualproj): New macros.
80 (Project, Dual_Project, Project_x, Project_y): Updated.
81 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
82 macros.
83
84
85 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
86 adjustments for the non-light auto-hinted modes. Gets rid of
87 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000088
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000089 * src/autofit/aflatin.c (af_latin_hints_link_segments,
90 af_latin_hints_compute_edges): Slight optimization of the segment
91 linker and better handling of serif segments to get rid of broken
92 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000093
David Turnerc0f9c4a2007-02-12 14:55:03 +000094
Werner Lemberg442bfb82007-02-12 21:44:10 +000095 Introduce new string functions and the corresponding macros to get
96 rid of various uses of strcpy and other `evil' functions, as well as
97 to simplify a few things.
98
99 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
100 ft_mem_strcpyn): New declarations.
101 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
102 macros.
103 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
104 functions.
105
106 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
107 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
108 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
109 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
110 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
111 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
112 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
113 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000114
Werner Lemberg406d25f2007-02-12 22:01:18 +0000115 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
116
Werner Lemberg582067d2007-02-11 15:03:05 +00001172007-02-11 Werner Lemberg <wl@gnu.org>
118
119 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
120 non-spacing glyphs.
121
Werner Lemberg8f474532007-02-07 08:31:01 +00001222007-02-07 Tom Parker <palfrey@tevp.net>
123
124 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
125 pointer.
126
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001272007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
128
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000129 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
130 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000131 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000132 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
133 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
134 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
135 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000136
137 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
138 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000139 * builds/mac/ftmac.c: Ditto.
140
1412007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
142
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000143 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000144 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000145 #include <ftmac.c>.
146
1472007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
148
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000149 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
150 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
151 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
152 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
153 FT_GetFilePath_From_Mac_ATS_Name.
154 * builds/mac/ftmac.c: Ditto.
155
1562007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
157
Werner Lembergdcbb7082007-02-08 08:54:09 +0000158 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000159 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
160 for passing to FT_New_Face_From_FSSpec.
161
1622007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
163
Werner Lembergdcbb7082007-02-08 08:54:09 +0000164 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000165 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000166
167 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
168 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000169 * builds/mac/ftmac.c (OS_INLINE): Ditto.
170
Werner Lemberg313d7772007-02-01 08:10:45 +00001712007-02-01 Werner Lemberg <wl@gnu.org>
172
173 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
174 Explain why applications shouldn't use it. Found by Alexei.
175
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001762007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000177
178 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
179 message.
180
181 * src/gxvalid/gxvmort1.c
182 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
183 message.
184
Werner Lemberg53935932007-01-31 08:53:02 +00001852007-01-31 Werner Lemberg <wl@gnu.org>
186
187
188 * Version 2.3.1 released.
189 =========================
190
191
192 Tag sources with `VER-2-3-1-FINAL'.
193
194 * builds/win32/visualc/freetype.dsp,
195 builds/win32/visualc/freetype.vcproj: s/230/231/.
196 * builds/win32/visualc/index.html: s/221/231/.
197
198 * vms_make.com: Add `ftgasp'.
199
David Turnera7ee6082007-01-30 10:33:53 +00002002007-01-30 David Turner <david@freetype.org>
201
Werner Lemberg53935932007-01-31 08:53:02 +0000202 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000203
Werner Lemberg53935932007-01-31 08:53:02 +0000204 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000205
Werner Lemberg53935932007-01-31 08:53:02 +0000206 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
207 s/2.3.0/2.3.1/.
208
209 * builds/unix/configure.raw (version_info): Set to 9:12:3.
210
211
212 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
213 (af_loader_load_g): Disable the warper (i.e., the light hinting
214 improvements) to make a 2.3.1 bugfix release before introducing a
215 new feature. This should give us more time to tune and improve the
216 warper for the next release.
217
218 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000219
David Turnerd91eebd2007-01-26 15:05:41 +00002202007-01-25 David Turner <david@freetype.org>
221
Werner Lembergbf241762007-01-26 16:08:49 +0000222 For light auto-hinting, improve glyph advance widths and resurrect
223 normal/full hinting to its normal quality.
224
225 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
226 and `xmax_delta'.
227 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
228 and `xmax_delta'.
229
230 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
231 preprocessor conditional with if-clause, handling both light and
232 normal mode.
233
234 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
235 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000236
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002372007-01-25 Werner Lemberg <wl@gnu.org>
238
239 * docs/release: Updated -- Savannah uses a new uploading scheme.
240
David Turnera42567b2007-01-25 12:23:37 +00002412007-01-25 David Turner <david@freetype.org>
242
Werner Lembergd7855662007-01-25 13:53:56 +0000243 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000244
Werner Lembergd7855662007-01-25 13:53:56 +0000245 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
246 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
247 functions.
David Turnera42567b2007-01-25 12:23:37 +0000248
Werner Lembergd7855662007-01-25 13:53:56 +0000249 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000250
Werner Lembergb1be9e82007-01-25 11:50:00 +00002512007-01-25 Werner Lemberg <wl@gnu.org>
252
253 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000254 correctly in a sanity check. Since this function is only used to
255 load local and global functions, any charstring that called the last
256 local/global function would fail otherwise. This fixes Savannah bug
257 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000258
259 * docs/CHANGES: Document it.
260
David Turnerb6de8d12007-01-23 15:51:50 +00002612007-01-23 David Turner <david@freetype.org>
262
Werner Lembergb1be9e82007-01-25 11:50:00 +0000263 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
264 prevented compilation when disabling both the unpatented and the
265 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000266
Werner Lembergb1be9e82007-01-25 11:50:00 +0000267
268 Fix and enable the warper to improve `light' hinting mode. This is
269 not necessarily a final version, but it seems to work well.
270
271 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
272 Disable code.
273 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
274 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
275
276 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
277 (af_warper_compute_line_best): Fix array size of `scores'.
278 (af_warper_compute): Better handling of border cases.
279 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
280 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000281
Werner Lemberg011d1112007-01-21 09:36:00 +00002822007-01-21 Werner Lemberg <wl@gnu.org>
283
Werner Lemberg42b63b22007-01-21 21:01:33 +0000284 * ChangeLog: Split off older entries into...
285 * ChangeLog.22: This new file.
286
2872007-01-21 Werner Lemberg <wl@gnu.org>
288
Werner Lemberg555258f2007-01-21 09:46:37 +0000289 * docs/CHANGES: Document SHZ fix.
290
2912007-01-21 George Williams <gww@silcom.com>
292
293 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
294 points.
295
2962007-01-21 Werner Lemberg <wl@gnu.org>
297
Werner Lemberg011d1112007-01-21 09:36:00 +0000298 * src/sfnt/ttmtx.c (tt_face_get_metrics)
299 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
300
Werner Lemberg87a5a432007-01-17 12:44:39 +00003012007-01-17 Werner Lemberg <wl@gnu.org>
302
Werner Lembergb8003292007-01-17 12:56:25 +0000303
304 * Version 2.3.0 released.
305 =========================
306
307
308 Tag sources with `VER-2-3-0-FINAL'.
309
3102007-01-17 Werner Lemberg <wl@gnu.org>
311
Werner Lemberg87a5a432007-01-17 12:44:39 +0000312 * docs/release: Updated.
313
David Turner22122722007-01-16 20:06:44 +00003142007-01-16 David Turner <david@freetype.org>
315
Werner Lemberg87a5a432007-01-17 12:44:39 +0000316 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
317 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
318 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
319 warnings.
David Turner22122722007-01-16 20:06:44 +0000320
Werner Lemberg267e1d72007-01-15 07:48:09 +00003212007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
322
323 * builds/amiga/makefile, builds/amiga/makefile.os4,
324 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
325
326 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
327
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003282007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
329
330 Fix various compiler warnings.
331
332 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
333 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
334 s/index/strike_index/.
335 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
336
337 * src/gxvalid/gxvmorx5.c
338 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
339
340 * src/truetype/ttinterp.c (Compute_Point_Displacement),
341 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
342 uninitialized variables.
343
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003442007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
345
346 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
347
Werner Lemberg281c1482007-01-13 22:50:51 +00003482007-01-13 Werner Lemberg <wl@gnu.org>
349
350 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
351 versions up to 0x3FF without complaining.
352
Werner Lembergac250b22007-01-13 14:01:36 +00003532007-01-13 Derek Clegg <dclegg@apple.com>
354
355 Add FT_Get_PS_Font_Info interface to CFF driver.
356
357 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
358 (CFF_FontRec): Add `font_info' field.
359
360 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
361 (cff_font_done): Free font->font_info if necessary.
362
363 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
364 (cff_service_ps_info): Register cff_ps_get_font_info.
365
Werner Lemberg23df31a2007-01-13 08:45:00 +00003662007-01-13 Werner Lemberg <wl@gnu.org>
367
368 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
369 with C++ compiler.
370
371 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
372 af_glyph_hints_dump_edges): Ditto.
373
374 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
375 `modules.cfg').
376
377 * src/sfnt/ttsbit0.h: Remove.
378
379 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
380
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003812007-01-12 David Turner <david@freetype.org>
382
383 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
384 bug in the bitmap emboldener if the pitch of the source bitmap is
385 much larger than its width.
386
387 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
388 compilation warning.
389
Werner Lemberg6d96d312007-01-12 10:30:19 +00003902007-01-12 Werner Lemberg <wl@gnu.org>
391
392 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
393 `automake' CVS module from sources.redhat.com.
394
Werner Lemberg17432b52007-01-12 09:28:44 +00003952007-01-11 Werner Lemberg <wl@gnu.org>
396
397 * src/type1/t1load.c (is_space): Removed.
398 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
399 (parse_charstrings): Use IS_PS_TOKEN.
400
401
402 * autogen.sh: Avoid bash specific syntax.
403
David Turner038ace22007-01-11 15:00:59 +00004042007-01-11 David Turner <david@freetype.org>
405
Werner Lemberg17432b52007-01-12 09:28:44 +0000406 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000407
Werner Lemberg17432b52007-01-12 09:28:44 +0000408 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000409
Werner Lemberg17432b52007-01-12 09:28:44 +0000410 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
411 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000412 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000413
Werner Lemberg17432b52007-01-12 09:28:44 +0000414 * autogen.sh: Small fix to get it working on Mac OS X properly:
415 The issue is that GNU libtool is called `glibtool' on this platform,
416 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000417
David Turner2628ea92007-01-10 13:15:56 +00004182007-01-10 David Turner <david@freetype.org>
419
Werner Lemberg17432b52007-01-12 09:28:44 +0000420 * all-sources: Tag all sources with VER-2-3-0-RC1 and
421 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000422
Werner Lemberg17432b52007-01-12 09:28:44 +0000423 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
424 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
425 version number to 2.3.0.
426
427 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
428 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000429
430 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000431 include/freetype/ftlcdfil.h: Update reference documentation with
432 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000433
Werner Lemberg17432b52007-01-12 09:28:44 +0000434 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
435 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000436
Werner Lembergbf02d392007-01-10 07:07:37 +00004372007-01-10 Derek Clegg <dclegg@apple.com>
438
439 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
440 values.
441
David Turnerf48b60e2007-01-08 15:15:32 +00004422007-01-08 David Turner <david@freetype.org>
443
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000444 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000445
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000446 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
447 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000448 corresponding to a given character pixel size.
449
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000450 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
451 `gasp' table, in order to avoid potential problems with later
452 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000453
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000454 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
455 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000456
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000457 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
458 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
459 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
460 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000461
Werner Lemberge6b6f372007-01-07 00:06:47 +00004622007-01-07 Werner Lemberg <wl@gnu.org>
463
Werner Lembergb8004d22007-01-07 09:13:38 +0000464 * src/cid/cidparse.c (cid_parser_new): Improve error message for
465 Type 11 fonts.
466 Scan for `/sfnts' token.
467
4682007-01-07 Werner Lemberg <wl@gnu.org>
469
470 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000471
Werner Lembergbe5f7972007-01-06 07:51:48 +00004722007-01-06 Werner Lemberg <wl@gnu.org>
473
474 * src/cff/cffload.c (cff_index_init): Remove unused variable.
475 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
476
David Turnera8cf42b2007-01-04 16:46:46 +00004772007-01-04 David Turner <david@freetype.org>
478
Werner Lembergf6294392007-01-06 07:47:45 +0000479 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
480 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000481
Werner Lembergf6294392007-01-06 07:47:45 +0000482
483 Do not allocate interpreter-specific tables in memory if we are not
484 going to load glyphs with the bytecode interpreter anyway.
485
486 * src/truetype/ttgload.c (tt_loader_init): Load execution context
487 only if glyph is hinted.
488 Updated.
489 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
490 and `cvs_ready'.
491 Add `tt_size_ready_bytecode' declaration.
492 * src/truetype/ttobjs.c (tt_size_done_bytecode,
493 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
494 (tt_size_init): Move most code into `tt_size_init_bytecode'.
495 (tt_size_done): Move most code into `tt_size_done_bytecode'.
496 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000497
David Turner91a34022007-01-05 14:47:08 +0000498
Werner Lembergf6294392007-01-06 07:47:45 +0000499 Don't extract the metrics table from the SFNT font file. Instead,
500 reparse it on each glyph load. The runtime difference is not
501 noticeable, and it can save a lot of heap memory when memory-mapped
502 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000503
Werner Lembergf6294392007-01-06 07:47:45 +0000504 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
505 `horz_metrics_offset' and `vert_metrics_ofset'.
506 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
507 Updated.
508
509
510 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
511
512
513 Do not load the CFF index offsets into memory, since this wastes a
514 *lot* of heap memory with large Asian CFF fonts. There is no
515 significant performance loss.
516
517 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
518 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
519 `data_size'.
520 (CFF_CharsetRec): Add field `num_glyphs'.
521
522 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
523 cff_charset_cid_to_gindex): New functions.
524 (cff_new_index): Renamed to...
525 (cff_index_init): This. Update all callers.
526 Updated -- some code has been moved to `cff_index_load_offsets'.
527 (cff_done_index): Renamed to...
528 (cff_index_done): This. Update all callers.
529 (cff_index_get_pointers, cff_index_access_element): Updated to use
530 stream offsets.
531 (cff_charset_compute_cids): Set `num_glyphs' field.
532 (cff_encoding_load): Updated.
533
534 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000535
5362007-01-04 David Turner <david@freetype.org>
537
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000538 * docs/INSTALL.UNIX: Simplify some parts, add reference to
539 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000540
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000541 * README.CVS: Add common problem description and solution
542 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000543
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000544 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000545
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000546 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000547
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000548 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000549
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000550 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
551 (TWorker): This.
552 Remove `count_table' and `memory'.
553 Make `grays' a pointer.
554 (TRaster): New structure.
555 (count_table): New static array.
556 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
557 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
558 ft_black_set_mode, ft_black_render): Updated.
559 (ft_black_init): Don't initialize `count_table'.
560 (ft_black_reset): Use the render pool. This saves about 6KB of
561 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000562
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000563 * src/smooth/ftgrays.c (TRaster): Replaced with...
564 (TWorker): This.
565 Remove `memory'.
566 (TRaster): New structure.
567
568 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
569 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
570 gray_render_span, gray_raster_render): Updated.
571 (gray_raster_reset): Use the render pool. This saves about 6KB of
572 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000573
David Turner8a6c44e2007-01-04 17:03:11 +0000574 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
575 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000576 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
577 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
578 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000579
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000580 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
581 Remove a typo that results in no hinting and a memory leak with some
582 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000583
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000584 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000585 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000586 CFF_Faces in it. We need to close all faces before destroying the
587 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000588
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005892007-01-02 Werner Lemberg <wl@gnu.org>
590
591 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
592 Remove compiler warning.
593
David Turner9207e002007-01-02 16:58:13 +00005942007-01-02 David Turner <david@freetype.org>
595
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000596 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000597
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005982006-12-31 Masatake YAMATO <jet@gyve.org>
599
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000600 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
601 function.
602 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000603 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000604 `gxv_kern_subtable_fmt0_pairs_validate'.
605
David Turner115b4422006-12-22 11:37:05 +00006062006-12-22 David Turner <david@freetype.org>
607
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000608 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
609 warnings.
David Turner115b4422006-12-22 11:37:05 +0000610
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000611 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
612 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000613
Werner Lemberg4755bf72006-12-16 08:58:44 +00006142006-12-16 Anders Kaseorg <anders@kaseorg.com>
615
616 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
617 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
618
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006192006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
620
Werner Lemberg9b774e22007-01-16 06:11:27 +0000621 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000622 sync with the modification by Jens Claudius on 2006-08-22; cf.
623 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 +0000624
6252006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
626
627 * src/base/ftmac.c: Specialized for Mac OS X only.
628 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
629 * builds/unix/configure.raw: Ditto. When explicit switches for
630 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
631 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
632
6332006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
634
635 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
636 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
637 instead of src/base/ftmac.c
638 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
639 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
640 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
641 that cannot be built at present.
642
6432006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
644
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000645 * src/base/ftobjs.c: Improvement of resource fork handler for
646 POSIX, cf.
647 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000648 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
649 format or .dfont, to simulate the face index number counted by ftmac.c.
650 (IsMacResource): Return the number of scalable faces correctly.
651
Werner Lembergec5b4502006-12-10 07:51:38 +00006522006-12-10 Werner Lemberg <wl@gnu.org>
653
654 * builds/toplevel.mk (version): Protect against `distclean' target.
655
Werner Lembergb26b3142006-12-09 20:01:43 +00006562006-12-09 Werner Lemberg <wl@gnu.org>
657
658 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
659 or `type'.
660
661 * builds/freetype.mk (version): Extracted from freetype.h, using
662 GNU make's built-in string functions.
663 (refdoc): Use $(version) instead of static version number.
664
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006652006-12-08 Werner Lemberg <wl@gnu.org>
666
667 * builds/toplevel.mk (dist): Extract version number from freetype.h.
668
Werner Lemberg15c29502006-12-09 07:29:54 +00006692006-12-08 Vladimir Volovich <vvv@vsu.ru>
670
671 * src/tools/apinames (State): Remove final comma in structure -- xlc
672 v5 under AIX 4.3 doesn't like this.
673
David Turnerdbf3b432006-12-07 21:18:09 +00006742006-12-07 David Turner <david@freetype.org>
675
Werner Lemberg256a3512006-12-08 06:49:33 +0000676 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
677 to the spacing of auto-fitted glyphs. This only impacts rare
678 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000679
Werner Lemberg11171312006-12-03 09:43:40 +00006802006-12-03 Werner Lemberg <wl@gnu.org>
681
682 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
683
Werner Lemberg960ba592006-12-01 08:20:47 +00006842006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000685
Werner Lemberg960ba592006-12-01 08:20:47 +0000686 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
687 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
688 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000689
David Turner80658e52006-11-28 08:09:20 +0000690
Werner Lemberg960ba592006-12-01 08:20:47 +0000691 * include/freetype/ftxf86.h: Fix and extend comment so that it
692 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000693
Werner Lemberg960ba592006-12-01 08:20:47 +0000694 * include/freetype/ftchapters.h: Add `font_format' section.
695
696
697 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
698 to TOC in index page.
699
7002006-11-28 David Turner <david@freetype.org>
701
702 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
703 trying to render into a zero-width/height bitmap, not an error code.
704
705 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
706
707 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
708 ones instead.
709
710 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
711 variable.
David Turner80658e52006-11-28 08:09:20 +0000712
Werner Lemberg8636c292006-11-26 22:28:13 +00007132006-11-26 Pierre Hanser <hanser@club-internet.fr>
714
715 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
716
Werner Lemberg960ba592006-12-01 08:20:47 +00007172006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000718
Werner Lemberg960ba592006-12-01 08:20:47 +0000719 * src/autofit/afhints.c (af_glyph_hints_dump_points,
720 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
721 Add stubs to link the `ftgrid' test program when debugging is
722 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000723
Werner Lemberg960ba592006-12-01 08:20:47 +00007242006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000725
726 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000727 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
728
729 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
730 Emit more sensible information.
731
732 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
733
734 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
735 rounding of blue values.
736 (af_latin_hints_compute_segments): Hint segment heights.
737 (af_latin_hints_link_segments): Reduce `len_score' value.
738 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
739 value and use `height' member for comparisons.
740 (af_latin_hint_edges): Extend logging message.
741 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000742
Werner Lemberg91959bf2006-11-22 10:36:55 +00007432006-11-22 Werner Lemberg <wl@gnu.org>
744
745 Fix Savannah bug #15553.
746
747 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
748 program after a change from mono to grayscaling (and vice versa).
749 Use correct constant for comparison to get `exec->grayscale'.
750
Werner Lemberg913a3652006-11-19 09:19:17 +00007512006-11-18 Werner Lemberg <wl@gnu.org>
752
753 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000754 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000755 This patch fixes Savannah bug #18301.
756
757 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
758 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
759 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
760 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
761 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
762 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
763 (FNT_Load_Glyph): Check validity of `glyph_index'.
764
David Turner7bab6ae2006-11-13 11:25:06 +00007652006-11-13 David Turner <david@freetype.org>
766
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000767 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
768 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000769
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000770 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
771 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
772 when building the library to change the default LCD filter to be
773 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000774
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000775 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000776
David Turner8765c712006-11-10 16:49:42 +00007772006-11-10 David Turner <david@freetype.org>
778
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000779 * src/smooth/ftsmooth.c: API change for the LCD
780 filter. The FT_LcdFilter value is an enumeration describing which
781 filter to apply, with new values FT_LCD_FILTER_LIGHT and
782 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
783 algorithm which produces strong color fringes for everything
784 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000785
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000786 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
787 second parameter to an enum type.
788
789 * src/base/ftlcdfil.c (USE_LEGACY): Define.
790 (_ft_lcd_filter): Rename to...
791 (_ft_lcd_filter_fir): This.
792 Update parameters.
793 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
794 (FT_Library_Set_LcdFilter): Update parameters.
795 Handle new filter modes.
796
797 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
798 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
799 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
800 callback and update other fields.
801
802 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
803 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
804 Other minor improvements.
805
806 * src/autofit/aflatin.c: Various tiny improvements that drastically
807 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
808 (af_latin_hints_compute_edges): Fix typo.
809 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000810
David Turner4e9cc3c2006-11-09 16:31:52 +00008112006-11-09 David Turner <david@freetype.org>
812
Werner Lemberg49c77a82006-11-09 21:51:57 +0000813 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
814 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000815
Werner Lemberg5e430892006-11-07 09:35:03 +00008162006-11-07 Zhe Su <james.su@gmail.com>
817
818 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
819 also.
820
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008212006-11-03 Werner Lemberg <wl@gnu.org>
822
823 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
824
David Turner40604742006-11-02 16:37:35 +00008252006-11-02 David Turner <david@freetype.org>
826
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000827 Add a few tweaks to better handle serif fonts.
828 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000829
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000830 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
831 segments that are less than 1.5 pixels high. This gets rid of
832 *many* corner cases with serifs.
833 (af_latin_align_linked_edge): Add logging message.
834 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
835 Add logging messages.
836 Handle AF_EDGE_FLAG flag specially.
837
838 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
839 _af_debug_disable_blue_hints, and _af_debug_hints variables.
840
841 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
842 Update external declarations.
843 (af_corner_orientation, af_corner_is_flat): Replaced by...
844
845 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
846 ft_corner_is_flat): These declarations.
847
848 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
849 Comment out. Replaced by...
850
851 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
852 These functions. Update all callers.
853 (FT_Add64) [!FT_LONG64]: Simplify.
854
855 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
856 (af_direction_compute): Add a missing FT_ABS call. This bug caused
857 production of garbage by missing lots of segments.
858
859 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
860
861 * src/autofit/afloader.c (af_loader_init, af_loader_done)
862 [AF_DEBUG]: Set _af_debug_hints.
863
864
865 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
866 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
867 and ft_corner_orientation.
868
869
870 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000871
Werner Lemberge88c5262006-10-24 05:46:26 +00008722006-10-24 Werner Lemberg <wl@gnu.org>
873
874 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
875
876 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
877 as argument.
878
David Turnera1861392006-10-23 16:00:59 +00008792006-10-23 Zhe Su <zsu@novell.com>
880
Werner Lemberg715e96e2006-10-24 05:28:45 +0000881 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
882 better deal with broken Asian fonts with strange glyphs, having
883 self-intersections and other peculiarities. The used algorithm is
884 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000885
David Turnere140f142006-10-23 08:56:57 +00008862006-10-23 David Turner <david@freetype.org>
887
Werner Lemberg715e96e2006-10-24 05:28:45 +0000888 Speed up the CFF font loader. With some large CFF fonts,
889 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000890
Werner Lemberg715e96e2006-10-24 05:28:45 +0000891 * src/cff/cffload.c (cff_get_offset): Removed.
892 (cff_new_index): Inline functionality of `cff_get_offset'.
893 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
894 (cff_charset_done): Call `cff_charset_free_cids'.
895 (cff_charset_load): Call `cff_charset_compute_cids'.
896 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
897
898 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
899 with FT_NEXT_XXX.
900
901
902 Speed up the Postscript hinter, with more than 100% speed increase
903 on my machine.
904
905 * src/pshinter/pshalgo.c (psh_corner_is_flat,
906 psh_corner_orientation): New functions.
907 (psh_glyph_compute_inflections): Merge loops for efficiency.
908 Use `psh_corner_orientation'.
909 (psh_glyph_init): Use `psh_corner_is_flat'.
910 (psh_hint_table_find_strong_point): Renamed to...
911 (psh_hint_table_find_strong_points): This.
912 Rewrite, adding argument to handle all points at once.
913 Update all callers.
914 (PSH_MAX_STRONG_INTERNAL): New macro.
915 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000916
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009172006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
918
919 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000920 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000921
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009222006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
923
924 * docs/INSTALL.CROSS: New document file for cross-building.
925
926 * builds/unix/configure.raw: Preliminary cross-building support.
927 Find native C compiler and pass it by CC_BUILD, and
928 find suffix for native executable and pass it by EXEEXT_BUILD.
929 Also suffix for target executable is passed by EXEEXT.
930
Werner Lembergb9e6d692006-10-15 08:58:40 +0000931 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
932 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000933 CC_BUILD and EXEEXT_BUILD.
934
Werner Lembergb9e6d692006-10-15 08:58:40 +0000935 * builds/exports.mk (APINAMES_EXE): Change the extension for
936 apinames from the suffix for target (E) to that for building host
937 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000938
Werner Lemberg82a07e92006-10-12 06:20:44 +00009392006-10-12 Werner Lemberg <wl@gnu.org>
940
941 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
942 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
943 which reference those files.
944
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009452006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
946
Werner Lembergb9e6d692006-10-15 08:58:40 +0000947 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
948 embedded in freetype2.pc and freetype-config. Use it to record
949 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000950
951 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
952
953 * builds/unix/freetype-config.in: Ditto.
954
Werner Lemberg28e17d92006-10-11 17:27:47 +00009552006-10-11 Werner Lemberg <wl@gnu.org>
956
957 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
958 development.
959
Jens Claudius336d2292006-10-03 08:53:37 +00009602006-10-03 Jens Claudius <jens.claudius@yahoo.com>
961
962 * include/freetype/config/ftstdlib.h: Cast away volatileness from
963 argument to ft_setjmp.
964
965 * include/freetype/internal/ftvalid.h: Add comment that
966 ft_validator_run must not be used.
967
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009682006-10-01 Werner Lemberg <wl@gnu.org>
969
970 * src/base/ftbase.c: Undo change from 2006-09-30.
971
972 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
973
9742006-09-30 David Turner <david@freetype.org>
975
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000976 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
977 s/unpatented_hinting/ignore_unpatented_hinter/.
978 Update all callers.
979
980 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
981 auto-hinting shall be used or not.
982
983 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000984
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009852006-09-30 Werner Lemberg <wl@gnu.org>
986
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000987 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
988 in use).
989
990 * src/base/ftbase.c: Include `ftlcdfil.c'.
991
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009922006-09-29 Werner Lemberg <wl@gnu.org>
993
994 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
995 overlapping segments. Bug reported by Stefan Koch.
996
David Turnerad830712006-09-27 16:20:59 +00009972006-09-28 David Turner <david@freetype.org>
998
Werner Lemberg2c002e12006-09-29 21:31:53 +0000999 Fix a bug in the automatic unpatented hinting support which prevents
1000 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001001
Werner Lemberg2c002e12006-09-29 21:31:53 +00001002 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1003 s/force_autohint/unpatented_hinting/. Update all callers.
1004
1005 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1006
1007 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001008
David Turner8a317cf2006-09-27 07:52:48 +000010092006-09-27 David Turner <david@freetype.org>
1010
Werner Lemberg2c002e12006-09-29 21:31:53 +00001011 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001012
David Turner8a317cf2006-09-27 07:52:48 +00001013
David Turnere140f142006-10-23 08:56:57 +00001014 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001015 In a default build, the function `FT_Library_SetLcdFilter' returns
1016 `FT_Err_Unimplemented_Feature'; you need to #define
1017 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1018 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001019
Werner Lemberg2c002e12006-09-29 21:31:53 +00001020 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001021
Werner Lemberg2c002e12006-09-29 21:31:53 +00001022 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1023 typedef.
1024 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1025 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001026
Werner Lemberg2c002e12006-09-29 21:31:53 +00001027 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1028 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001029
Werner Lemberg2c002e12006-09-29 21:31:53 +00001030 Handle subpixel rendering.
1031 Simplify function.
1032 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1033 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1034
1035 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1036 pointing to <freetype/ftlcdfil.h>.
1037
1038 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1039 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1040
1041 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001042
Werner Lemberge20df4a2006-09-27 06:29:21 +000010432006-09-26 David Bustin
1044
1045 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1046 correctly. Reported as Savannah bug #17843.
1047
David Turner6f8c6222006-09-26 15:42:44 +000010482006-09-26 David Turner <david@freetype.org>
1049
Werner Lemberg110246c2006-09-26 21:55:44 +00001050 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1051 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1052 horizontal and vertical hinting for the purpose of debugging the
1053 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001054
Werner Lemberg110246c2006-09-26 21:55:44 +00001055 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1056 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001057
Werner Lemberg110246c2006-09-26 21:55:44 +00001058 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1059
1060 * include/freetype/config/ftoption.h, devel/ftoption.h
1061 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1062 we want to compile LCD-optimized rendering code (à la ClearType) or
1063 not. The macro *must* be disabled in default builds of the library
1064 for patent reasons.
1065
1066 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1067 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1068 isn't defined at compile time. This only changes the content of the
1069 rendered glyph to match the one of normal gray-level rendering,
1070 hence clients should not need to be modified.
1071
1072 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001073
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010742006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1075
1076 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1077 LWFN fails and both are available.
1078
David Turnerf3050052006-09-11 12:00:32 +000010792006-09-11 David Turner <david@freetype.org>
1080
Werner Lembergf9644552006-09-12 13:48:10 +00001081 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1082 report their English names through an Apple Roman
1083 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001084
Werner Lembergf9644552006-09-12 13:48:10 +00001085 If the font uses another name entry with language_id == English, it
1086 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001087
Werner Lembergf9644552006-09-12 13:48:10 +00001088 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1089 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001090
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010912006-09-05 Werner Lemberg <wl@gnu.org>
1092
1093 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001094 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001095 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1096 `HAN NOM B.ttf').
1097
1098 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1099
David Turner772e55d2006-09-05 09:45:15 +000011002006-09-05 David Turner <david@freetype.org>
1101
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001102 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001103
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001104 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1105 (TRaster): Remove `count_ex' and `count_ey'.
1106 (gray_find_cell): Remove 2nd and 3rd argument.
1107 (gray_alloc_cell): Merged with `gray_find_cell'.
1108 (gray_record_cell): Simplify.
1109 (gray_set_cell): Rewrite.
1110 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1111 (gray_render_span): Don't use FT_MEM_SET for small values.
1112 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1113 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1114 bitmap scanline.
1115 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001116
David Turneraa557a92006-09-04 16:42:44 +000011172006-09-04 David Turner <david@freetype.org>
1118
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001119 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1120 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001121
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011222006-09-03 Werner Lemberg <wl@gnu.org>
1123
1124 * devel/ftoption.h: Synchronize with
1125 include/freetype/config/ftoption.h.
1126
1127 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1128 variable declaration.
1129 (gray_convert_glyph): Fix compiler warnings.
1130
David Turner6d79f212006-09-01 14:09:35 +000011312006-09-01 David Turner <david@freetype.org>
1132
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001133 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1134 to recognize a few fonts that require the automatic unpatented
1135 loader.
David Turnerbd502952006-09-01 19:05:24 +00001136
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001137 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1138 rasterizer. The speed improvement is between 15% and 25%, depending
1139 on the font data.
1140
1141 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1142 (TCell): Redefine.
1143 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1144 (gray_init_cells): Updated.
1145 (gray_find_cell, gray_alloc_cell): New functions.
1146 (gray_record_cell): Rewritten to use `gray_find_cell' and
1147 `gray_alloc_cell'.
1148 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1149 QSORT_THRESHOLD):
1150 Removed.
1151 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1152 gray_dump_cells): Removed.
1153 (gray_sweep): Rewritten.
1154 (gray_convert_glyph): Rewrite code which used one of the sorting
1155 functions.
1156 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001157
Werner Lembergd898aed2006-08-29 09:50:34 +000011582006-08-29 Dr. Werner Fink <werner@suse.de>
1159
1160 * configure: Make it possible to handle configure options which
1161 have strings containing spaces.
1162
11632006-08-27 David Turner <david@freetype.org>
1164
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001165 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1166 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1167 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1168
1169 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1170 src/truetype/truetype.c, src/truetype/ttdriver.c,
1171 src/truetype/ttgload.c, src/truetype/ttgload.h,
1172 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1173 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1174 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1175
1176 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1177 member `force_autohint'.
1178
1179 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1180
1181 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1182 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001183
Jens Claudiusa787f452006-08-27 11:26:18 +000011842006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1185
1186 Fix miscellaneous compiler warnings.
1187
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001188 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1189 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001190
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001191 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1192 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1193 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001194
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001195 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1196 volatileness of argument to ft_longjmp. Spotted by Werner
1197 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001198
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001199 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1200 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001201
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001202 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1203 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001204
Werner Lembergc4c35b72006-08-27 08:03:46 +000012052006-08-27 Werner Lemberg <wl@gnu.org>
1206
1207 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1208 Reported by Jens.
1209
Jens Claudius088e44e2006-08-22 14:24:30 +000012102006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001211
Jens Claudius088e44e2006-08-22 14:24:30 +00001212 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001213 about addresses of volatile objects passed as function arguments as
1214 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001215
Werner Lembergc4c35b72006-08-27 08:03:46 +00001216 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1217 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001218
1219 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1220 argument `table' a pointer to a volatile object.
1221
1222 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1223 argument `table' a pointer to a volatile object.
1224
Jens Claudius2652bd52006-08-18 17:20:37 +000012252006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1226
1227 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1228 variable `_sfnt' as volatile since it must keep its value across
1229 a call to ft_setjmp.
1230 (gxv_validate): Same for local variables `memory' and `valid'.
1231 (classic_kern_validate): Same for local variables `memory',
1232 `ckern', and `valid'.
1233
1234 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1235 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1236 `jstf', and 'valid'.
1237
1238 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1239 local variable `cmap'.
1240
David Turner9fbfc6a2006-08-16 09:11:31 +000012412006-08-16 David Turner <david@freetype.org>
1242
Werner Lemberg12342992006-08-19 11:18:09 +00001243 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1244 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001245
Werner Lemberg12342992006-08-19 11:18:09 +00001246 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1247 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001248
David Turner33f5f242006-08-16 16:50:55 +00001249
Werner Lemberg12342992006-08-19 11:18:09 +00001250 Improvements to native TrueType hinting. This is a first try,
1251 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1252
1253 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1254 `extra_points2'.
1255
1256 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1257 `orus'.
1258
1259 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1260 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1261 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1262 handle `extra_points2'.
1263
1264 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1265 Remove compiler warning.
1266 (cur_to_arg): Remove macro.
1267 (TT_Hint_Glyph): Updated.
1268 (TT_Process_Simple_Glyph): Handle `orus'.
1269
1270 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1271 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1272 (LOC_Ins_IUP): Renamed to...
1273 (IUP_WorkerRec): This.
1274 Add `orus' member.
1275 (Shift): Renamed to...
1276 (_iup_worker_shift): This.
1277 Updated.
1278 (Interp): Renamed to...
1279 (_iup_worker_interpolate): This.
1280 Updated to handle `orus'.
1281 (Ins_IUP): Updated.
1282
1283 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1284 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001285
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012862006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1287
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001288 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001289 build ftvalid in ft2demos. This has been inadvertedly changed
1290 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001291
12922006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1293
Werner Lemberg12342992006-08-19 11:18:09 +00001294 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1295 Jens:
1296 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001297
Werner Lemberg12342992006-08-19 11:18:09 +00001298 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1299 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001300
1301 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1302
Jens Claudius9950adc2006-08-13 12:14:36 +000013032006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1304
Werner Lemberg12342992006-08-19 11:18:09 +00001305 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1306 T1_TOKEN_TYPE_KEY.
1307 (T1_FieldRec): Add `dict'.
1308 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1309 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1310 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001311
Werner Lemberg12342992006-08-19 11:18:09 +00001312 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1313 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001314
1315 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1316
1317 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001318 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1319 not T1_TOKEN_TYPE_ANY.
1320 (ps_parser_load_field): Make sure a token that should be a string or
1321 name is really a string or name.
1322 Avoid memory leak if a keyword has been already encountered and its
1323 value is overwritten.
1324 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1325 T1_FIELD_XXX.
1326 (parse_dict): Ignore keywords that occur in the wrong dictionary
1327 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001328
Werner Lemberg12342992006-08-19 11:18:09 +00001329 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1330 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001331
Werner Lemberg12342992006-08-19 11:18:09 +00001332 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1333 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001334
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013352006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1336
1337 Move creation of field `buildchar' of T1_DecoderRec out of
1338 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1339 of it.
1340
1341 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1342 and `T1_Compute_Max_Advance'.
1343
1344 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1345 Remove field `face', add `len_buildchar'.
1346
1347 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1348 field `buildchar'.
1349
1350 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1351 finisher for T1_Decoder.
1352 (cid_slot_load_glyph): Do not ignore failure when initializing the
1353 T1_Decoder.
1354
1355 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1356 Updated.
1357 (t1_decoder_init): Remove initialization of fields `buildchar' and
1358 `len_buildchar'.
1359 (t1_decoder_done): Remove deallocation of field `buildchar'.
1360
1361 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1362 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1363 T1_Decoder.
1364 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1365 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1366 case of error.
1367
1368 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1369 `buildchar' of T1_FaceRec.
1370
1371 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1372 `buildchar' of T1_FaceRec.
1373
Werner Lemberg1a380e02006-07-14 18:28:08 +000013742006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1375
1376 * freetype2/include/freetype/internal/psaux.h: New macros
1377 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1378 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1379 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1380 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1381 (T1_DecoderRec): New fields `buildchar' and `face'.
1382 (IS_PS_TOKEN): New macro.
1383
1384 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1385 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1386
1387 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1388 `default_design_vector' and `num_default_design_vector'.
1389
1390 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1391 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1392 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1393
1394 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1395 `token' argument to be NULL if we want only to count the number of
1396 tokens.
1397 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1398 want to skip the array.
1399 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1400 want to skip the array.
1401
1402 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1403 support for (partially commented out) othersubrs 19-25, 27, and 28.
1404 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1405 (t1_decoder_done): Release new field `buildchar'.
1406
1407 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1408 functions.
1409 (t1_keywords): Register them.
1410 (t1_allocate_blend): Updated.
1411 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1412 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1413 (parse_dict): Remove `keyword_flags' argument.
1414 Use new macro IS_PS_TOKEN.
1415 Changed function so that later PostScript definitions override
1416 earlier ones.
1417 (t1_init_loader): Initialize new field `keywords_encountered'.
1418 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1419 `len_buildchar'.
1420 Remove `keywords_flags'.
1421
1422 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1423 `keywords_encountered'.
1424 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1425
1426 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1427 New entries for parsing /NDV, /CDV, and /DesignVector.
1428
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014292006-07-07 Werner Lemberg <wl@gnu.org>
1430
1431 Add many checks to protect against malformed PCF files.
1432
1433 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1434 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1435
1436 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1437 data and check that tables don't overlap (using a simple
1438 bubblesort).
1439 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1440 New macros which give the size of data structures in the data
1441 stream.
1442 (pcf_get_properties): Use rough estimates to get array size limits.
1443 Assign `face->nprops' and `face->properties' earlier so that a call
1444 to PCF_Face_Done can do the clean-up in case of error.
1445 Protect against invalid string offsets.
1446 (pcf_get_metrics): Clean up code.
1447 Adjust tracing message levels.
1448 Use rough estimate to get array size limit.
1449 (pcf_get_bitmaps): Clean up code.
1450 Adjust tracing message levels.
1451 Use rough estimates to get offset limits.
1452 (pcf_get_encodings): Adjust tracing message level.
1453 (pcf_get_accel): Clean up code.
1454
Werner Lemberg8eb05252006-06-27 06:20:01 +000014552006-06-26 Werner Lemberg <wl@gnu.org>
1456
1457 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1458 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1459
Werner Lemberg24703f82006-06-26 19:12:51 +000014602006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1461
1462 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1463 (t1_decoder_parse_charstrings): Operator with
1464 opcode 15 pops its two arguments.
1465 Handle the case where the pops of an othersubr may be part of a
1466 subroutine.
1467 Handle unknown othersubrs gracefully: count their operands and let
1468 the following pop operators push the operands as the results onto
1469 the Type1 stack.
1470 Improve handling of setcurrentpoint opcode.
1471
Werner Lembergc011f4c2006-06-26 09:40:00 +000014722006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1473
1474 The Type 1 parser now skips over top-level procedures as required
1475 for a `Simplified Parser'. This makes the parser more robust as it
1476 doesn't poke around in PostScript code. Additionally, it makes the
1477 FontDirectory hackery in src/type1/t1load.c unnecessary.
1478
1479 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1480 (skip_literal_string): Add FT_Error as return value.
1481 Handle escapes better.
1482 (skip_string): Add FT_Error as return value.
1483 Don't set `parser->error' but return error code directly.
1484 (skip_procedure): New function.
1485 (ps_parser_skip_PS_token): Handle procedures.
1486 Update code.
1487 (ps_parser_to_token): Update code.
1488 (ps_parser_load_field_table): Handle bbox entries also.
1489
1490 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1491 Add commented-out code for synthetic fonts.
1492
Werner Lemberga2da05c2006-06-25 06:27:27 +000014932006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1494
1495 Fix two hinting bugs as reported in
1496 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1497
1498 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1499 `first_point' member.
1500
1501 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1502 `first_point'.
1503 (TT_Process_Composite_Glyph): Always untouch points.
1504
1505 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1506 `first_point' and `last_point' in case of composite glyphs.
1507 (Ins_IUP): Fix computation of `end_point'.
1508
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015092006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1510
Werner Lembergef3d2c22006-06-25 06:07:14 +00001511 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1512 Mac. The original patch was written by David Sachitano and Lawrence
1513 Coopet, and modified by Sean McBride for MPW compatibility. Only
1514 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001515
Werner Lembergef3d2c22006-06-25 06:07:14 +00001516 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1517 Mac OS X platforms.
1518 (OS_INLINE): Undefine before definition.
1519 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1520 FontAssociation table in FOND resource.
1521 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1522 and fontSize at each entry of FontAssociation table in FOND
1523 resource.
1524 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1525 ffStylOff of FamilyRecord header of FOND resource, the header,
1526 fontSize, fontID at each entry of FontAssociation table, and
1527 StyleMapping table.
1528 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001529
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015302006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1531
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001532 Public API of TrueTypeGX, OpenType, and classic kern table validator
1533 should return `FT_Err_Unimplemented_Feature' if validation service
1534 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001535 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001536 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1537
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001538 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1539 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1540 unavailable.
1541 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1542 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001543
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001544 * src/base/ftotval.c (FT_OpenType_Validate): Return
1545 FT_Err_Unimplemented_Feature if OpenType validation service is
1546 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001547
Werner Lembergb10e45a2006-06-08 07:32:56 +000015482006-06-08 Werner Lemberg <wl@gnu.org>
1549
1550 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1551 errors.
1552
David Turner5f1f7502006-06-07 05:11:50 +000015532006-06-07 David Turner <david@freetype.org>
1554
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001555 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1556 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1557 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001558
David Turner457b4a82006-06-06 08:14:14 +000015592006-06-06 David Turner <david@freetype.org>
1560
Werner Lemberg4836f952006-06-06 12:54:08 +00001561 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001562
Werner Lemberg4836f952006-06-06 12:54:08 +00001563 We change `ps_unicodes_init' so that it also takes a
1564 `free_glyph_name' callback to release the glyph names returned by
1565 `get_glyph_name'
1566
1567 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1568 Renamed to ...
1569 (PS_GetGlyphNameFunc): This.
1570 (PS_FreeGlyphNameFunc): New typedef.
1571 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1572
1573 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1574 argument.
1575 (cff_sid_free_glyph_name): New function.
1576 (cff_cmap_unicode_init): Updated.
1577
1578 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1579
1580 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1581 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001582
1583
David Turner09717352006-06-04 14:33:08 +000015842006-06-04 David Turner <david@freetype.org>
1585
Werner Lembergd724f202006-06-04 15:17:41 +00001586 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1587 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001588 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001589
Werner Lembergd724f202006-06-04 15:17:41 +00001590 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1591 of `face->num_glyphs' which missed the last glyph, due to
1592 the offset-by-1 computation, since the PFR format doesn't
1593 guarantee that glyph index 0 corresponds to the `missing
1594 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001595
Werner Lemberg33779662006-05-26 06:30:05 +000015962006-05-25 Werner Lemberg <wl@gnu.org>
1597
1598 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1599 `-no-undefined'. Reported by Christian Biesinger.
1600
Werner Lemberg24773d62006-05-20 08:53:13 +000016012006-05-19 Brian Weed <bw@imaginengine.com>
1602
1603 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1604 have debug information, and debug libraries use `C7 compatible'
1605 debug info.
1606
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016072006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1608
Werner Lemberga6523a62006-05-20 08:47:01 +00001609 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001610 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001611
Werner Lemberga6523a62006-05-20 08:47:01 +00001612 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1613 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001614
1615 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001616 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001617
16182006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1619
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001620 * build/unix/configure.raw: Add a fallback to disable Carbon
1621 dependency, if configured with no options on Mac OS X.
1622
16232006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1624
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001625 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001626 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001627 the second part of Savannah bug #16590.
1628
Werner Lemberg545c4e52006-05-17 22:55:04 +000016292006-05-18 Werner Lemberg <wl@gnu.org>
1630
1631 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1632 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1633
David Turnerdc3ff312006-05-17 12:59:35 +000016342006-05-17 David Turner <david@freetype.org>
1635
Werner Lemberg545c4e52006-05-17 22:55:04 +00001636 This is a major patch used to drastically improve the performance of
1637 loading glyphs. This both speeds up loading the glyph vectors
1638 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001639
Werner Lemberg545c4e52006-05-17 22:55:04 +00001640 We now use inline assembler code with GCC to implement `FT_MulFix',
1641 which is probably the most important function related to the
1642 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001643
Werner Lemberg545c4e52006-05-17 22:55:04 +00001644 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001645
1646
Werner Lemberg545c4e52006-05-17 22:55:04 +00001647 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1648 `cursor' and `limit'.
1649
1650 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1651 New functions.
1652 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1653 [TEST]: Remove.
1654
1655 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1656 code.
1657
1658 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1659 `FT_ZERO'
1660 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1661 (af_glyph_hints_reload: Rewrite recognition of weak points.
1662
1663 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1664 constant values out of the loops.
1665
1666 * src/autofit/aftypes.h: Updated.
1667
1668 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1669
1670 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1671 product to get orientation.
1672
1673 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1674 (FT_Stream_OpenGzip): Use it to handle small files directly in
1675 memory.
1676
1677 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1678 Improve performance.
1679
1680 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1681 `limit'.
1682
1683 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1684 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1685 exceedingly large values of number of contours. Speed up by
1686 reducing the number of loops.
1687
1688 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1689
1690
1691 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1692 used to detect rogue clients from 4 to 16. This is to prevent some
1693 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1694 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001695
Werner Lembergde2d90a2006-05-17 08:54:30 +000016962007-05-17 Werner Lemberg <wl@gnu.org>
1697
1698 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001699 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001700
17012006-05-16 Werner Lemberg <wl@gnu.org>
1702
1703 * docs/PROBLEMS: Updated icl issues.
1704
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001705----------------------------------------------------------------------------
1706
Werner Lemberg42b63b22007-01-21 21:01:33 +00001707Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001708David Turner, Robert Wilhelm, and Werner Lemberg.
1709
1710This file is part of the FreeType project, and may only be used, modified,
1711and distributed under the terms of the FreeType project license,
1712LICENSE.TXT. By continuing to use, modify, or distribute this file you
1713indicate that you have read the license and understand and accept it
1714fully.
1715
1716
1717Local Variables:
1718version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001719coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001720End: