blob: 8f7922294141dbc021e11d73770a4ba27e320753 [file] [log] [blame]
David Turner3f539692007-03-28 14:53:40 +000012007-03-28 David Turner <david@freetype.org>
2
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +00004 padding.
5
Werner Lemberga08b2172007-03-28 07:17:17 +000062007-03-28 Werner Lemberg <wl@gnu.org>
7
8 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
9 gracefully.
10 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
11 issue an error for longer names.
12 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
13 number of code points in Unicode.
14
Werner Lemberg644b1ad2007-03-28 21:17:11 +000015 * builds/win32/visualc/index.html,
16 builds/win32/visualc/freetype.dsp,
17 builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
18 s/232/233/.
19
20 * docs/CHANGES: Mention ftdiff.
21
David Turner3b242d32007-03-26 12:03:04 +0000222007-03-26 David Turner <david@freetype.org>
23
Werner Lemberg644b1ad2007-03-28 21:17:11 +000024 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
25 corresponding code.
26 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000027
Werner Lemberga08b2172007-03-28 07:17:17 +000028 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000029 computations in order to ignore single-point contours. These are
30 never rasterized and correspond in certain fonts to mark-attach
31 points that are very far from the glyph's real outline, ruining the
32 computation.
David Turnerf58caa02007-03-26 12:39:25 +000033
Werner Lemberga08b2172007-03-28 07:17:17 +000034 * src/autofit/afloader.c (af_loader_load_g): In the case of
35 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
36 Otherwise code that uses them will most certainly ruin the fixed
37 advance property.
David Turner23553d62007-03-26 13:37:17 +000038
Werner Lemberg644b1ad2007-03-28 21:17:11 +000039 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
40 documentation and bump version number to 2.3.3.
41
42 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
43
44 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +000045
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000462007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
47
Werner Lemberg644b1ad2007-03-28 21:17:11 +000048 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
49 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000050 * builds/vms/ftconfig.h: Ditto.
51 * include/freetype/config/ftconfig.h: Ditto.
52
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000532007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
54
Werner Lemberg14ffe092007-03-22 06:12:43 +000055 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
56 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000057 proposed by Sean McBride:
58 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
59
602007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
61
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000062 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
63 setjmp, proposed by Sean McBride:
64 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
65
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000662007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
67
Werner Lembergc9f6c662007-03-21 13:30:14 +000068 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
69 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
70 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000071
David Turner74c34eb2007-03-18 07:19:31 +0000722007-03-18 David Turner <david@freetype.org>
73
Werner Lembergc9f6c662007-03-21 13:30:14 +000074 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
75 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000076
Werner Lembergc9f6c662007-03-21 13:30:14 +000077 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000078
David Turner89020d92007-03-17 17:48:57 +0000792007-03-17 David Turner <david@freetype.org>
80
Werner Lembergc9f6c662007-03-21 13:30:14 +000081 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
82 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000083
Werner Lemberg25d592a2007-03-09 07:59:35 +0000842007-03-09 Werner Lemberg <wl@gnu.org>
85
86 * Version 2.3.2 released.
87 =========================
88
89
90 Tag sources with `VER-2-3-2'.
91
92 * builds/win32/visualc/index.html,
93 builds/win32/visualc/freetype.dsp,
94 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
95 s/231/232/.
96
David Turner3a51afa2007-03-08 10:50:38 +0000972007-03-08 David Turner <david@freetype.org>
98
Werner Lemberg25d592a2007-03-09 07:59:35 +000099 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000100
Werner Lemberg25d592a2007-03-09 07:59:35 +0000101 * builds/unix/configure.raw (version_info): Set to 9:13:3.
102
103 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
104
105 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000106
Werner Lemberg1e259de2007-03-08 15:39:21 +0000107 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
108 function to work properly, over-writing user-provided buffers in
109 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000110
David Turner121cad52007-03-08 16:43:50 +0000111
Werner Lemberg3d92f082007-03-06 11:59:24 +00001122007-03-05 Werner Lemberg <wl@gnu.org>
113
114 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
115 macro for `strstr'.
116
117 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
118 `trick_names', as suggested by Ivan Nincic.
119
David Turner085bc6e2007-03-05 17:40:03 +00001202007-03-05 David Turner <david@freetype.org>
121
Werner Lembergd112cf02007-03-06 12:06:56 +0000122 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
123 case FT_Init_FreeType fails for some reason. Problem reported by
124 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000125
Werner Lembergd112cf02007-03-06 12:06:56 +0000126 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
127 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
128 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
129 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000130
Werner Lembergd112cf02007-03-06 12:06:56 +0000131 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
132 signed values, not unsigned ones. Problem reported by Johannes
133 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000134
David Turner601aefe2007-02-21 16:47:49 +00001352007-02-21 David Turner <david@freetype.org>
136
Werner Lembergde5e6862007-02-25 21:06:43 +0000137 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
138 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000139
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001402007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
141
142 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
143 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
144 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
145
Werner Lemberga0915172007-02-16 08:12:50 +00001462007-02-16 Werner Lemberg <wl@gnu.org>
147
148 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
149 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
150
David Turner2c4500e2007-02-14 15:08:47 +00001512007-02-14 David Turner <david@freetype.org>
152
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000153 It seems that the following changes fix most of the known
154 interpreter problems with my fonts, but more testing is needed,
155 though.
156
157 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
158 (TT_MulFix14): Rewrite.
159 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
160 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000161
Werner Lembergc6a14082007-02-12 22:08:15 +00001622007-02-12 Werner Lemberg <wl@gnu.org>
163
164 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
165 warnings.
166
167 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
168 (bdf_interpret_style): Ditto.
169
David Turnerc0f9c4a2007-02-12 14:55:03 +00001702007-02-12 David Turner <david@freetype.org>
171
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000172 Simplify projection and dual-projection code interface.
173
Werner Lemberg406d25f2007-02-12 22:01:18 +0000174 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
175 FT_Vector' as argument type.
176 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
177 Updated.
178 (CUR_fast_project, CUR_fast_dualproj): New macros.
179 (Project, Dual_Project, Project_x, Project_y): Updated.
180 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
181 macros.
182
183
184 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
185 adjustments for the non-light auto-hinted modes. Gets rid of
186 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000187
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000188 * src/autofit/aflatin.c (af_latin_hints_link_segments,
189 af_latin_hints_compute_edges): Slight optimization of the segment
190 linker and better handling of serif segments to get rid of broken
191 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000192
David Turnerc0f9c4a2007-02-12 14:55:03 +0000193
Werner Lemberg442bfb82007-02-12 21:44:10 +0000194 Introduce new string functions and the corresponding macros to get
195 rid of various uses of strcpy and other `evil' functions, as well as
196 to simplify a few things.
197
198 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
199 ft_mem_strcpyn): New declarations.
200 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
201 macros.
202 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
203 functions.
204
205 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
206 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
207 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
208 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
209 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
210 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
211 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
212 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000213
Werner Lemberg406d25f2007-02-12 22:01:18 +0000214 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
215
Werner Lemberg582067d2007-02-11 15:03:05 +00002162007-02-11 Werner Lemberg <wl@gnu.org>
217
218 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
219 non-spacing glyphs.
220
Werner Lemberg8f474532007-02-07 08:31:01 +00002212007-02-07 Tom Parker <palfrey@tevp.net>
222
223 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
224 pointer.
225
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002262007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
227
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000228 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
229 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000230 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000231 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
232 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
233 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
234 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000235
236 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
237 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000238 * builds/mac/ftmac.c: Ditto.
239
2402007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
241
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000242 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000243 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000244 #include <ftmac.c>.
245
2462007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
247
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000248 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
249 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
250 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
251 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
252 FT_GetFilePath_From_Mac_ATS_Name.
253 * builds/mac/ftmac.c: Ditto.
254
2552007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
256
Werner Lembergdcbb7082007-02-08 08:54:09 +0000257 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000258 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
259 for passing to FT_New_Face_From_FSSpec.
260
2612007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
262
Werner Lembergdcbb7082007-02-08 08:54:09 +0000263 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000264 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000265
266 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
267 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000268 * builds/mac/ftmac.c (OS_INLINE): Ditto.
269
Werner Lemberg313d7772007-02-01 08:10:45 +00002702007-02-01 Werner Lemberg <wl@gnu.org>
271
272 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
273 Explain why applications shouldn't use it. Found by Alexei.
274
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002752007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000276
277 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
278 message.
279
280 * src/gxvalid/gxvmort1.c
281 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
282 message.
283
Werner Lemberg53935932007-01-31 08:53:02 +00002842007-01-31 Werner Lemberg <wl@gnu.org>
285
286
287 * Version 2.3.1 released.
288 =========================
289
290
291 Tag sources with `VER-2-3-1-FINAL'.
292
293 * builds/win32/visualc/freetype.dsp,
294 builds/win32/visualc/freetype.vcproj: s/230/231/.
295 * builds/win32/visualc/index.html: s/221/231/.
296
297 * vms_make.com: Add `ftgasp'.
298
David Turnera7ee6082007-01-30 10:33:53 +00002992007-01-30 David Turner <david@freetype.org>
300
Werner Lemberg53935932007-01-31 08:53:02 +0000301 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000302
Werner Lemberg53935932007-01-31 08:53:02 +0000303 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000304
Werner Lemberg25d592a2007-03-09 07:59:35 +0000305 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000306 s/2.3.0/2.3.1/.
307
308 * builds/unix/configure.raw (version_info): Set to 9:12:3.
309
310
311 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
312 (af_loader_load_g): Disable the warper (i.e., the light hinting
313 improvements) to make a 2.3.1 bugfix release before introducing a
314 new feature. This should give us more time to tune and improve the
315 warper for the next release.
316
317 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000318
David Turnerd91eebd2007-01-26 15:05:41 +00003192007-01-25 David Turner <david@freetype.org>
320
Werner Lembergbf241762007-01-26 16:08:49 +0000321 For light auto-hinting, improve glyph advance widths and resurrect
322 normal/full hinting to its normal quality.
323
324 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
325 and `xmax_delta'.
326 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
327 and `xmax_delta'.
328
329 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
330 preprocessor conditional with if-clause, handling both light and
331 normal mode.
332
333 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
334 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000335
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003362007-01-25 Werner Lemberg <wl@gnu.org>
337
338 * docs/release: Updated -- Savannah uses a new uploading scheme.
339
David Turnera42567b2007-01-25 12:23:37 +00003402007-01-25 David Turner <david@freetype.org>
341
Werner Lembergd7855662007-01-25 13:53:56 +0000342 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000343
Werner Lembergd7855662007-01-25 13:53:56 +0000344 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
345 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
346 functions.
David Turnera42567b2007-01-25 12:23:37 +0000347
Werner Lembergd7855662007-01-25 13:53:56 +0000348 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000349
Werner Lembergb1be9e82007-01-25 11:50:00 +00003502007-01-25 Werner Lemberg <wl@gnu.org>
351
352 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000353 correctly in a sanity check. Since this function is only used to
354 load local and global functions, any charstring that called the last
355 local/global function would fail otherwise. This fixes Savannah bug
356 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000357
358 * docs/CHANGES: Document it.
359
David Turnerb6de8d12007-01-23 15:51:50 +00003602007-01-23 David Turner <david@freetype.org>
361
Werner Lembergb1be9e82007-01-25 11:50:00 +0000362 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
363 prevented compilation when disabling both the unpatented and the
364 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000365
Werner Lembergb1be9e82007-01-25 11:50:00 +0000366
367 Fix and enable the warper to improve `light' hinting mode. This is
368 not necessarily a final version, but it seems to work well.
369
370 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
371 Disable code.
372 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
373 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
374
375 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
376 (af_warper_compute_line_best): Fix array size of `scores'.
377 (af_warper_compute): Better handling of border cases.
378 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
379 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000380
Werner Lemberg011d1112007-01-21 09:36:00 +00003812007-01-21 Werner Lemberg <wl@gnu.org>
382
Werner Lemberg42b63b22007-01-21 21:01:33 +0000383 * ChangeLog: Split off older entries into...
384 * ChangeLog.22: This new file.
385
3862007-01-21 Werner Lemberg <wl@gnu.org>
387
Werner Lemberg555258f2007-01-21 09:46:37 +0000388 * docs/CHANGES: Document SHZ fix.
389
3902007-01-21 George Williams <gww@silcom.com>
391
392 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
393 points.
394
3952007-01-21 Werner Lemberg <wl@gnu.org>
396
Werner Lemberg011d1112007-01-21 09:36:00 +0000397 * src/sfnt/ttmtx.c (tt_face_get_metrics)
398 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
399
Werner Lemberg87a5a432007-01-17 12:44:39 +00004002007-01-17 Werner Lemberg <wl@gnu.org>
401
Werner Lembergb8003292007-01-17 12:56:25 +0000402
403 * Version 2.3.0 released.
404 =========================
405
406
407 Tag sources with `VER-2-3-0-FINAL'.
408
4092007-01-17 Werner Lemberg <wl@gnu.org>
410
Werner Lemberg87a5a432007-01-17 12:44:39 +0000411 * docs/release: Updated.
412
David Turner22122722007-01-16 20:06:44 +00004132007-01-16 David Turner <david@freetype.org>
414
Werner Lemberg87a5a432007-01-17 12:44:39 +0000415 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
416 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
417 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
418 warnings.
David Turner22122722007-01-16 20:06:44 +0000419
Werner Lemberg267e1d72007-01-15 07:48:09 +00004202007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
421
422 * builds/amiga/makefile, builds/amiga/makefile.os4,
423 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
424
425 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
426
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004272007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
428
429 Fix various compiler warnings.
430
431 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
432 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
433 s/index/strike_index/.
434 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
435
436 * src/gxvalid/gxvmorx5.c
437 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
438
439 * src/truetype/ttinterp.c (Compute_Point_Displacement),
440 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
441 uninitialized variables.
442
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004432007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
444
445 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
446
Werner Lemberg281c1482007-01-13 22:50:51 +00004472007-01-13 Werner Lemberg <wl@gnu.org>
448
449 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
450 versions up to 0x3FF without complaining.
451
Werner Lembergac250b22007-01-13 14:01:36 +00004522007-01-13 Derek Clegg <dclegg@apple.com>
453
454 Add FT_Get_PS_Font_Info interface to CFF driver.
455
456 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
457 (CFF_FontRec): Add `font_info' field.
458
459 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
460 (cff_font_done): Free font->font_info if necessary.
461
462 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
463 (cff_service_ps_info): Register cff_ps_get_font_info.
464
Werner Lemberg23df31a2007-01-13 08:45:00 +00004652007-01-13 Werner Lemberg <wl@gnu.org>
466
467 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
468 with C++ compiler.
469
470 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
471 af_glyph_hints_dump_edges): Ditto.
472
473 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
474 `modules.cfg').
475
476 * src/sfnt/ttsbit0.h: Remove.
477
478 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
479
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004802007-01-12 David Turner <david@freetype.org>
481
482 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
483 bug in the bitmap emboldener if the pitch of the source bitmap is
484 much larger than its width.
485
486 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
487 compilation warning.
488
Werner Lemberg6d96d312007-01-12 10:30:19 +00004892007-01-12 Werner Lemberg <wl@gnu.org>
490
491 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
492 `automake' CVS module from sources.redhat.com.
493
Werner Lemberg17432b52007-01-12 09:28:44 +00004942007-01-11 Werner Lemberg <wl@gnu.org>
495
496 * src/type1/t1load.c (is_space): Removed.
497 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
498 (parse_charstrings): Use IS_PS_TOKEN.
499
500
501 * autogen.sh: Avoid bash specific syntax.
502
David Turner038ace22007-01-11 15:00:59 +00005032007-01-11 David Turner <david@freetype.org>
504
Werner Lemberg17432b52007-01-12 09:28:44 +0000505 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000506
Werner Lemberg17432b52007-01-12 09:28:44 +0000507 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000508
Werner Lemberg17432b52007-01-12 09:28:44 +0000509 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
510 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000511 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000512
Werner Lemberg17432b52007-01-12 09:28:44 +0000513 * autogen.sh: Small fix to get it working on Mac OS X properly:
514 The issue is that GNU libtool is called `glibtool' on this platform,
515 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000516
David Turner2628ea92007-01-10 13:15:56 +00005172007-01-10 David Turner <david@freetype.org>
518
Werner Lemberg17432b52007-01-12 09:28:44 +0000519 * all-sources: Tag all sources with VER-2-3-0-RC1 and
520 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000521
Werner Lemberg17432b52007-01-12 09:28:44 +0000522 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
523 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
524 version number to 2.3.0.
525
526 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
527 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000528
529 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000530 include/freetype/ftlcdfil.h: Update reference documentation with
531 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000532
Werner Lemberg17432b52007-01-12 09:28:44 +0000533 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
534 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000535
Werner Lembergbf02d392007-01-10 07:07:37 +00005362007-01-10 Derek Clegg <dclegg@apple.com>
537
538 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
539 values.
540
David Turnerf48b60e2007-01-08 15:15:32 +00005412007-01-08 David Turner <david@freetype.org>
542
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000543 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000544
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000545 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
546 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000547 corresponding to a given character pixel size.
548
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000549 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
550 `gasp' table, in order to avoid potential problems with later
551 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000552
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000553 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
554 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000555
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000556 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
557 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
558 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
559 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000560
Werner Lemberge6b6f372007-01-07 00:06:47 +00005612007-01-07 Werner Lemberg <wl@gnu.org>
562
Werner Lembergb8004d22007-01-07 09:13:38 +0000563 * src/cid/cidparse.c (cid_parser_new): Improve error message for
564 Type 11 fonts.
565 Scan for `/sfnts' token.
566
5672007-01-07 Werner Lemberg <wl@gnu.org>
568
569 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000570
Werner Lembergbe5f7972007-01-06 07:51:48 +00005712007-01-06 Werner Lemberg <wl@gnu.org>
572
573 * src/cff/cffload.c (cff_index_init): Remove unused variable.
574 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
575
David Turnera8cf42b2007-01-04 16:46:46 +00005762007-01-04 David Turner <david@freetype.org>
577
Werner Lembergf6294392007-01-06 07:47:45 +0000578 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
579 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000580
Werner Lembergf6294392007-01-06 07:47:45 +0000581
582 Do not allocate interpreter-specific tables in memory if we are not
583 going to load glyphs with the bytecode interpreter anyway.
584
585 * src/truetype/ttgload.c (tt_loader_init): Load execution context
586 only if glyph is hinted.
587 Updated.
588 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
589 and `cvs_ready'.
590 Add `tt_size_ready_bytecode' declaration.
591 * src/truetype/ttobjs.c (tt_size_done_bytecode,
592 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
593 (tt_size_init): Move most code into `tt_size_init_bytecode'.
594 (tt_size_done): Move most code into `tt_size_done_bytecode'.
595 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000596
David Turner91a34022007-01-05 14:47:08 +0000597
Werner Lembergf6294392007-01-06 07:47:45 +0000598 Don't extract the metrics table from the SFNT font file. Instead,
599 reparse it on each glyph load. The runtime difference is not
600 noticeable, and it can save a lot of heap memory when memory-mapped
601 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000602
Werner Lembergf6294392007-01-06 07:47:45 +0000603 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
604 `horz_metrics_offset' and `vert_metrics_ofset'.
605 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
606 Updated.
607
608
609 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
610
611
612 Do not load the CFF index offsets into memory, since this wastes a
613 *lot* of heap memory with large Asian CFF fonts. There is no
614 significant performance loss.
615
616 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
617 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
618 `data_size'.
619 (CFF_CharsetRec): Add field `num_glyphs'.
620
621 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
622 cff_charset_cid_to_gindex): New functions.
623 (cff_new_index): Renamed to...
624 (cff_index_init): This. Update all callers.
625 Updated -- some code has been moved to `cff_index_load_offsets'.
626 (cff_done_index): Renamed to...
627 (cff_index_done): This. Update all callers.
628 (cff_index_get_pointers, cff_index_access_element): Updated to use
629 stream offsets.
630 (cff_charset_compute_cids): Set `num_glyphs' field.
631 (cff_encoding_load): Updated.
632
633 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000634
6352007-01-04 David Turner <david@freetype.org>
636
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000637 * docs/INSTALL.UNIX: Simplify some parts, add reference to
638 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000639
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000640 * README.CVS: Add common problem description and solution
641 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000642
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000643 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000644
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000645 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000646
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000647 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000648
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000649 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
650 (TWorker): This.
651 Remove `count_table' and `memory'.
652 Make `grays' a pointer.
653 (TRaster): New structure.
654 (count_table): New static array.
655 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
656 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
657 ft_black_set_mode, ft_black_render): Updated.
658 (ft_black_init): Don't initialize `count_table'.
659 (ft_black_reset): Use the render pool. This saves about 6KB of
660 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000661
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000662 * src/smooth/ftgrays.c (TRaster): Replaced with...
663 (TWorker): This.
664 Remove `memory'.
665 (TRaster): New structure.
666
667 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
668 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
669 gray_render_span, gray_raster_render): Updated.
670 (gray_raster_reset): Use the render pool. This saves about 6KB of
671 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000672
David Turner8a6c44e2007-01-04 17:03:11 +0000673 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
674 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000675 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
676 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
677 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000678
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000679 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
680 Remove a typo that results in no hinting and a memory leak with some
681 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000682
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000683 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000684 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000685 CFF_Faces in it. We need to close all faces before destroying the
686 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000687
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006882007-01-02 Werner Lemberg <wl@gnu.org>
689
690 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
691 Remove compiler warning.
692
David Turner9207e002007-01-02 16:58:13 +00006932007-01-02 David Turner <david@freetype.org>
694
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000695 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000696
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006972006-12-31 Masatake YAMATO <jet@gyve.org>
698
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000699 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
700 function.
701 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000702 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000703 `gxv_kern_subtable_fmt0_pairs_validate'.
704
David Turner115b4422006-12-22 11:37:05 +00007052006-12-22 David Turner <david@freetype.org>
706
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000707 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
708 warnings.
David Turner115b4422006-12-22 11:37:05 +0000709
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000710 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
711 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000712
Werner Lemberg4755bf72006-12-16 08:58:44 +00007132006-12-16 Anders Kaseorg <anders@kaseorg.com>
714
715 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
716 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
717
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007182006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
719
Werner Lemberg9b774e22007-01-16 06:11:27 +0000720 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000721 sync with the modification by Jens Claudius on 2006-08-22; cf.
722 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 +0000723
7242006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
725
726 * src/base/ftmac.c: Specialized for Mac OS X only.
727 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
728 * builds/unix/configure.raw: Ditto. When explicit switches for
729 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
730 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
731
7322006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
733
734 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
735 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
736 instead of src/base/ftmac.c
737 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
738 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
739 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
740 that cannot be built at present.
741
7422006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
743
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000744 * src/base/ftobjs.c: Improvement of resource fork handler for
745 POSIX, cf.
746 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000747 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
748 format or .dfont, to simulate the face index number counted by ftmac.c.
749 (IsMacResource): Return the number of scalable faces correctly.
750
Werner Lembergec5b4502006-12-10 07:51:38 +00007512006-12-10 Werner Lemberg <wl@gnu.org>
752
753 * builds/toplevel.mk (version): Protect against `distclean' target.
754
Werner Lembergb26b3142006-12-09 20:01:43 +00007552006-12-09 Werner Lemberg <wl@gnu.org>
756
757 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
758 or `type'.
759
760 * builds/freetype.mk (version): Extracted from freetype.h, using
761 GNU make's built-in string functions.
762 (refdoc): Use $(version) instead of static version number.
763
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007642006-12-08 Werner Lemberg <wl@gnu.org>
765
766 * builds/toplevel.mk (dist): Extract version number from freetype.h.
767
Werner Lemberg15c29502006-12-09 07:29:54 +00007682006-12-08 Vladimir Volovich <vvv@vsu.ru>
769
770 * src/tools/apinames (State): Remove final comma in structure -- xlc
771 v5 under AIX 4.3 doesn't like this.
772
David Turnerdbf3b432006-12-07 21:18:09 +00007732006-12-07 David Turner <david@freetype.org>
774
Werner Lemberg256a3512006-12-08 06:49:33 +0000775 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
776 to the spacing of auto-fitted glyphs. This only impacts rare
777 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000778
Werner Lemberg11171312006-12-03 09:43:40 +00007792006-12-03 Werner Lemberg <wl@gnu.org>
780
781 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
782
Werner Lemberg960ba592006-12-01 08:20:47 +00007832006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000784
Werner Lemberg960ba592006-12-01 08:20:47 +0000785 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
786 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
787 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000788
David Turner80658e52006-11-28 08:09:20 +0000789
Werner Lemberg960ba592006-12-01 08:20:47 +0000790 * include/freetype/ftxf86.h: Fix and extend comment so that it
791 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000792
Werner Lemberg960ba592006-12-01 08:20:47 +0000793 * include/freetype/ftchapters.h: Add `font_format' section.
794
795
796 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
797 to TOC in index page.
798
7992006-11-28 David Turner <david@freetype.org>
800
801 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
802 trying to render into a zero-width/height bitmap, not an error code.
803
804 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
805
806 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
807 ones instead.
808
809 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
810 variable.
David Turner80658e52006-11-28 08:09:20 +0000811
Werner Lemberg8636c292006-11-26 22:28:13 +00008122006-11-26 Pierre Hanser <hanser@club-internet.fr>
813
814 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
815
Werner Lemberg960ba592006-12-01 08:20:47 +00008162006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000817
Werner Lemberg960ba592006-12-01 08:20:47 +0000818 * src/autofit/afhints.c (af_glyph_hints_dump_points,
819 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
820 Add stubs to link the `ftgrid' test program when debugging is
821 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000822
Werner Lemberg960ba592006-12-01 08:20:47 +00008232006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000824
825 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000826 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
827
828 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
829 Emit more sensible information.
830
831 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
832
833 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
834 rounding of blue values.
835 (af_latin_hints_compute_segments): Hint segment heights.
836 (af_latin_hints_link_segments): Reduce `len_score' value.
837 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
838 value and use `height' member for comparisons.
839 (af_latin_hint_edges): Extend logging message.
840 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000841
Werner Lemberg91959bf2006-11-22 10:36:55 +00008422006-11-22 Werner Lemberg <wl@gnu.org>
843
844 Fix Savannah bug #15553.
845
846 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
847 program after a change from mono to grayscaling (and vice versa).
848 Use correct constant for comparison to get `exec->grayscale'.
849
Werner Lemberg913a3652006-11-19 09:19:17 +00008502006-11-18 Werner Lemberg <wl@gnu.org>
851
852 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000853 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000854 This patch fixes Savannah bug #18301.
855
856 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
857 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
858 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
859 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
860 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
861 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
862 (FNT_Load_Glyph): Check validity of `glyph_index'.
863
David Turner7bab6ae2006-11-13 11:25:06 +00008642006-11-13 David Turner <david@freetype.org>
865
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000866 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
867 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000868
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000869 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
870 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
871 when building the library to change the default LCD filter to be
872 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000873
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000874 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000875
David Turner8765c712006-11-10 16:49:42 +00008762006-11-10 David Turner <david@freetype.org>
877
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000878 * src/smooth/ftsmooth.c: API change for the LCD
879 filter. The FT_LcdFilter value is an enumeration describing which
880 filter to apply, with new values FT_LCD_FILTER_LIGHT and
881 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
882 algorithm which produces strong color fringes for everything
883 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000884
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000885 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
886 second parameter to an enum type.
887
888 * src/base/ftlcdfil.c (USE_LEGACY): Define.
889 (_ft_lcd_filter): Rename to...
890 (_ft_lcd_filter_fir): This.
891 Update parameters.
892 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
893 (FT_Library_Set_LcdFilter): Update parameters.
894 Handle new filter modes.
895
896 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
897 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
898 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
899 callback and update other fields.
900
901 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
902 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
903 Other minor improvements.
904
905 * src/autofit/aflatin.c: Various tiny improvements that drastically
906 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
907 (af_latin_hints_compute_edges): Fix typo.
908 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000909
David Turner4e9cc3c2006-11-09 16:31:52 +00009102006-11-09 David Turner <david@freetype.org>
911
Werner Lemberg49c77a82006-11-09 21:51:57 +0000912 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
913 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000914
Werner Lemberg5e430892006-11-07 09:35:03 +00009152006-11-07 Zhe Su <james.su@gmail.com>
916
917 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
918 also.
919
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009202006-11-03 Werner Lemberg <wl@gnu.org>
921
922 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
923
David Turner40604742006-11-02 16:37:35 +00009242006-11-02 David Turner <david@freetype.org>
925
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000926 Add a few tweaks to better handle serif fonts.
927 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000928
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000929 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
930 segments that are less than 1.5 pixels high. This gets rid of
931 *many* corner cases with serifs.
932 (af_latin_align_linked_edge): Add logging message.
933 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
934 Add logging messages.
935 Handle AF_EDGE_FLAG flag specially.
936
937 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
938 _af_debug_disable_blue_hints, and _af_debug_hints variables.
939
940 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
941 Update external declarations.
942 (af_corner_orientation, af_corner_is_flat): Replaced by...
943
944 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
945 ft_corner_is_flat): These declarations.
946
947 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
948 Comment out. Replaced by...
949
950 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
951 These functions. Update all callers.
952 (FT_Add64) [!FT_LONG64]: Simplify.
953
954 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
955 (af_direction_compute): Add a missing FT_ABS call. This bug caused
956 production of garbage by missing lots of segments.
957
958 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
959
960 * src/autofit/afloader.c (af_loader_init, af_loader_done)
961 [AF_DEBUG]: Set _af_debug_hints.
962
963
964 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
965 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
966 and ft_corner_orientation.
967
968
969 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000970
Werner Lemberge88c5262006-10-24 05:46:26 +00009712006-10-24 Werner Lemberg <wl@gnu.org>
972
973 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
974
975 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
976 as argument.
977
David Turnera1861392006-10-23 16:00:59 +00009782006-10-23 Zhe Su <zsu@novell.com>
979
Werner Lemberg715e96e2006-10-24 05:28:45 +0000980 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
981 better deal with broken Asian fonts with strange glyphs, having
982 self-intersections and other peculiarities. The used algorithm is
983 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000984
David Turnere140f142006-10-23 08:56:57 +00009852006-10-23 David Turner <david@freetype.org>
986
Werner Lemberg715e96e2006-10-24 05:28:45 +0000987 Speed up the CFF font loader. With some large CFF fonts,
988 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000989
Werner Lemberg715e96e2006-10-24 05:28:45 +0000990 * src/cff/cffload.c (cff_get_offset): Removed.
991 (cff_new_index): Inline functionality of `cff_get_offset'.
992 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
993 (cff_charset_done): Call `cff_charset_free_cids'.
994 (cff_charset_load): Call `cff_charset_compute_cids'.
995 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
996
997 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
998 with FT_NEXT_XXX.
999
1000
1001 Speed up the Postscript hinter, with more than 100% speed increase
1002 on my machine.
1003
1004 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1005 psh_corner_orientation): New functions.
1006 (psh_glyph_compute_inflections): Merge loops for efficiency.
1007 Use `psh_corner_orientation'.
1008 (psh_glyph_init): Use `psh_corner_is_flat'.
1009 (psh_hint_table_find_strong_point): Renamed to...
1010 (psh_hint_table_find_strong_points): This.
1011 Rewrite, adding argument to handle all points at once.
1012 Update all callers.
1013 (PSH_MAX_STRONG_INTERNAL): New macro.
1014 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001015
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010162006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1017
1018 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001019 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001020
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010212006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1022
1023 * docs/INSTALL.CROSS: New document file for cross-building.
1024
1025 * builds/unix/configure.raw: Preliminary cross-building support.
1026 Find native C compiler and pass it by CC_BUILD, and
1027 find suffix for native executable and pass it by EXEEXT_BUILD.
1028 Also suffix for target executable is passed by EXEEXT.
1029
Werner Lembergb9e6d692006-10-15 08:58:40 +00001030 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1031 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001032 CC_BUILD and EXEEXT_BUILD.
1033
Werner Lembergb9e6d692006-10-15 08:58:40 +00001034 * builds/exports.mk (APINAMES_EXE): Change the extension for
1035 apinames from the suffix for target (E) to that for building host
1036 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001037
Werner Lemberg82a07e92006-10-12 06:20:44 +000010382006-10-12 Werner Lemberg <wl@gnu.org>
1039
1040 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1041 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1042 which reference those files.
1043
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010442006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1045
Werner Lembergb9e6d692006-10-15 08:58:40 +00001046 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1047 embedded in freetype2.pc and freetype-config. Use it to record
1048 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001049
1050 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1051
1052 * builds/unix/freetype-config.in: Ditto.
1053
Werner Lemberg28e17d92006-10-11 17:27:47 +000010542006-10-11 Werner Lemberg <wl@gnu.org>
1055
1056 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1057 development.
1058
Jens Claudius336d2292006-10-03 08:53:37 +000010592006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1060
1061 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1062 argument to ft_setjmp.
1063
1064 * include/freetype/internal/ftvalid.h: Add comment that
1065 ft_validator_run must not be used.
1066
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010672006-10-01 Werner Lemberg <wl@gnu.org>
1068
1069 * src/base/ftbase.c: Undo change from 2006-09-30.
1070
1071 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1072
10732006-09-30 David Turner <david@freetype.org>
1074
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001075 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1076 s/unpatented_hinting/ignore_unpatented_hinter/.
1077 Update all callers.
1078
1079 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1080 auto-hinting shall be used or not.
1081
1082 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001083
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010842006-09-30 Werner Lemberg <wl@gnu.org>
1085
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001086 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1087 in use).
1088
1089 * src/base/ftbase.c: Include `ftlcdfil.c'.
1090
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010912006-09-29 Werner Lemberg <wl@gnu.org>
1092
1093 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1094 overlapping segments. Bug reported by Stefan Koch.
1095
David Turnerad830712006-09-27 16:20:59 +000010962006-09-28 David Turner <david@freetype.org>
1097
Werner Lemberg2c002e12006-09-29 21:31:53 +00001098 Fix a bug in the automatic unpatented hinting support which prevents
1099 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001100
Werner Lemberg2c002e12006-09-29 21:31:53 +00001101 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1102 s/force_autohint/unpatented_hinting/. Update all callers.
1103
1104 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1105
1106 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001107
David Turner8a317cf2006-09-27 07:52:48 +000011082006-09-27 David Turner <david@freetype.org>
1109
Werner Lemberg2c002e12006-09-29 21:31:53 +00001110 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001111
David Turner8a317cf2006-09-27 07:52:48 +00001112
David Turnere140f142006-10-23 08:56:57 +00001113 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001114 In a default build, the function `FT_Library_SetLcdFilter' returns
1115 `FT_Err_Unimplemented_Feature'; you need to #define
1116 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1117 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001118
Werner Lemberg2c002e12006-09-29 21:31:53 +00001119 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001120
Werner Lemberg2c002e12006-09-29 21:31:53 +00001121 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1122 typedef.
1123 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1124 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001125
Werner Lemberg2c002e12006-09-29 21:31:53 +00001126 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1127 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001128
Werner Lemberg2c002e12006-09-29 21:31:53 +00001129 Handle subpixel rendering.
1130 Simplify function.
1131 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1132 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1133
1134 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1135 pointing to <freetype/ftlcdfil.h>.
1136
1137 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1138 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1139
1140 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001141
Werner Lemberge20df4a2006-09-27 06:29:21 +000011422006-09-26 David Bustin
1143
1144 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1145 correctly. Reported as Savannah bug #17843.
1146
David Turner6f8c6222006-09-26 15:42:44 +000011472006-09-26 David Turner <david@freetype.org>
1148
Werner Lemberg110246c2006-09-26 21:55:44 +00001149 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1150 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1151 horizontal and vertical hinting for the purpose of debugging the
1152 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001153
Werner Lemberg110246c2006-09-26 21:55:44 +00001154 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1155 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001156
Werner Lemberg110246c2006-09-26 21:55:44 +00001157 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1158
1159 * include/freetype/config/ftoption.h, devel/ftoption.h
1160 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1161 we want to compile LCD-optimized rendering code la ClearType) or
1162 not. The macro *must* be disabled in default builds of the library
1163 for patent reasons.
1164
1165 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1166 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1167 isn't defined at compile time. This only changes the content of the
1168 rendered glyph to match the one of normal gray-level rendering,
1169 hence clients should not need to be modified.
1170
1171 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001172
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011732006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1174
1175 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1176 LWFN fails and both are available.
1177
David Turnerf3050052006-09-11 12:00:32 +000011782006-09-11 David Turner <david@freetype.org>
1179
Werner Lembergf9644552006-09-12 13:48:10 +00001180 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1181 report their English names through an Apple Roman
1182 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001183
Werner Lembergf9644552006-09-12 13:48:10 +00001184 If the font uses another name entry with language_id == English, it
1185 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001186
Werner Lembergf9644552006-09-12 13:48:10 +00001187 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1188 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001189
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011902006-09-05 Werner Lemberg <wl@gnu.org>
1191
1192 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001193 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001194 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1195 `HAN NOM B.ttf').
1196
1197 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1198
David Turner772e55d2006-09-05 09:45:15 +000011992006-09-05 David Turner <david@freetype.org>
1200
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001201 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001202
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001203 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1204 (TRaster): Remove `count_ex' and `count_ey'.
1205 (gray_find_cell): Remove 2nd and 3rd argument.
1206 (gray_alloc_cell): Merged with `gray_find_cell'.
1207 (gray_record_cell): Simplify.
1208 (gray_set_cell): Rewrite.
1209 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1210 (gray_render_span): Don't use FT_MEM_SET for small values.
1211 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1212 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1213 bitmap scanline.
1214 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001215
David Turneraa557a92006-09-04 16:42:44 +000012162006-09-04 David Turner <david@freetype.org>
1217
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001218 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1219 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001220
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012212006-09-03 Werner Lemberg <wl@gnu.org>
1222
1223 * devel/ftoption.h: Synchronize with
1224 include/freetype/config/ftoption.h.
1225
1226 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1227 variable declaration.
1228 (gray_convert_glyph): Fix compiler warnings.
1229
David Turner6d79f212006-09-01 14:09:35 +000012302006-09-01 David Turner <david@freetype.org>
1231
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001232 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1233 to recognize a few fonts that require the automatic unpatented
1234 loader.
David Turnerbd502952006-09-01 19:05:24 +00001235
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001236 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1237 rasterizer. The speed improvement is between 15% and 25%, depending
1238 on the font data.
1239
1240 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1241 (TCell): Redefine.
1242 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1243 (gray_init_cells): Updated.
1244 (gray_find_cell, gray_alloc_cell): New functions.
1245 (gray_record_cell): Rewritten to use `gray_find_cell' and
1246 `gray_alloc_cell'.
1247 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1248 QSORT_THRESHOLD):
1249 Removed.
1250 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1251 gray_dump_cells): Removed.
1252 (gray_sweep): Rewritten.
1253 (gray_convert_glyph): Rewrite code which used one of the sorting
1254 functions.
1255 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001256
Werner Lembergd898aed2006-08-29 09:50:34 +000012572006-08-29 Dr. Werner Fink <werner@suse.de>
1258
1259 * configure: Make it possible to handle configure options which
1260 have strings containing spaces.
1261
12622006-08-27 David Turner <david@freetype.org>
1263
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001264 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1265 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1266 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1267
1268 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1269 src/truetype/truetype.c, src/truetype/ttdriver.c,
1270 src/truetype/ttgload.c, src/truetype/ttgload.h,
1271 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1272 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1273 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1274
1275 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1276 member `force_autohint'.
1277
1278 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1279
1280 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1281 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001282
Jens Claudiusa787f452006-08-27 11:26:18 +000012832006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1284
1285 Fix miscellaneous compiler warnings.
1286
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001287 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1288 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001289
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001290 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1291 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1292 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001293
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001294 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1295 volatileness of argument to ft_longjmp. Spotted by Werner
1296 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001297
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001298 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1299 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001300
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001301 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1302 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001303
Werner Lembergc4c35b72006-08-27 08:03:46 +000013042006-08-27 Werner Lemberg <wl@gnu.org>
1305
1306 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1307 Reported by Jens.
1308
Jens Claudius088e44e2006-08-22 14:24:30 +000013092006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001310
Jens Claudius088e44e2006-08-22 14:24:30 +00001311 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001312 about addresses of volatile objects passed as function arguments as
1313 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001314
Werner Lembergc4c35b72006-08-27 08:03:46 +00001315 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1316 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001317
1318 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1319 argument `table' a pointer to a volatile object.
1320
1321 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1322 argument `table' a pointer to a volatile object.
1323
Jens Claudius2652bd52006-08-18 17:20:37 +000013242006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1325
1326 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1327 variable `_sfnt' as volatile since it must keep its value across
1328 a call to ft_setjmp.
1329 (gxv_validate): Same for local variables `memory' and `valid'.
1330 (classic_kern_validate): Same for local variables `memory',
1331 `ckern', and `valid'.
1332
1333 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1334 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1335 `jstf', and 'valid'.
1336
1337 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1338 local variable `cmap'.
1339
David Turner9fbfc6a2006-08-16 09:11:31 +000013402006-08-16 David Turner <david@freetype.org>
1341
Werner Lemberg12342992006-08-19 11:18:09 +00001342 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1343 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001344
Werner Lemberg12342992006-08-19 11:18:09 +00001345 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1346 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001347
David Turner33f5f242006-08-16 16:50:55 +00001348
Werner Lemberg12342992006-08-19 11:18:09 +00001349 Improvements to native TrueType hinting. This is a first try,
1350 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1351
1352 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1353 `extra_points2'.
1354
1355 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1356 `orus'.
1357
1358 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1359 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1360 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1361 handle `extra_points2'.
1362
1363 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1364 Remove compiler warning.
1365 (cur_to_arg): Remove macro.
1366 (TT_Hint_Glyph): Updated.
1367 (TT_Process_Simple_Glyph): Handle `orus'.
1368
1369 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1370 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1371 (LOC_Ins_IUP): Renamed to...
1372 (IUP_WorkerRec): This.
1373 Add `orus' member.
1374 (Shift): Renamed to...
1375 (_iup_worker_shift): This.
1376 Updated.
1377 (Interp): Renamed to...
1378 (_iup_worker_interpolate): This.
1379 Updated to handle `orus'.
1380 (Ins_IUP): Updated.
1381
1382 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1383 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001384
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013852006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1386
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001387 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001388 build ftvalid in ft2demos. This has been inadvertedly changed
1389 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001390
13912006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1392
Werner Lemberg12342992006-08-19 11:18:09 +00001393 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1394 Jens:
1395 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001396
Werner Lemberg12342992006-08-19 11:18:09 +00001397 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1398 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001399
1400 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1401
Jens Claudius9950adc2006-08-13 12:14:36 +000014022006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1403
Werner Lemberg12342992006-08-19 11:18:09 +00001404 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1405 T1_TOKEN_TYPE_KEY.
1406 (T1_FieldRec): Add `dict'.
1407 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1408 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1409 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001410
Werner Lemberg12342992006-08-19 11:18:09 +00001411 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1412 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001413
1414 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1415
1416 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001417 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1418 not T1_TOKEN_TYPE_ANY.
1419 (ps_parser_load_field): Make sure a token that should be a string or
1420 name is really a string or name.
1421 Avoid memory leak if a keyword has been already encountered and its
1422 value is overwritten.
1423 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1424 T1_FIELD_XXX.
1425 (parse_dict): Ignore keywords that occur in the wrong dictionary
1426 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001427
Werner Lemberg12342992006-08-19 11:18:09 +00001428 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1429 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001430
Werner Lemberg12342992006-08-19 11:18:09 +00001431 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1432 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001433
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014342006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1435
1436 Move creation of field `buildchar' of T1_DecoderRec out of
1437 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1438 of it.
1439
1440 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1441 and `T1_Compute_Max_Advance'.
1442
1443 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1444 Remove field `face', add `len_buildchar'.
1445
1446 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1447 field `buildchar'.
1448
1449 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1450 finisher for T1_Decoder.
1451 (cid_slot_load_glyph): Do not ignore failure when initializing the
1452 T1_Decoder.
1453
1454 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1455 Updated.
1456 (t1_decoder_init): Remove initialization of fields `buildchar' and
1457 `len_buildchar'.
1458 (t1_decoder_done): Remove deallocation of field `buildchar'.
1459
1460 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1461 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1462 T1_Decoder.
1463 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1464 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1465 case of error.
1466
1467 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1468 `buildchar' of T1_FaceRec.
1469
1470 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1471 `buildchar' of T1_FaceRec.
1472
Werner Lemberg1a380e02006-07-14 18:28:08 +000014732006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1474
1475 * freetype2/include/freetype/internal/psaux.h: New macros
1476 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1477 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1478 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1479 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1480 (T1_DecoderRec): New fields `buildchar' and `face'.
1481 (IS_PS_TOKEN): New macro.
1482
1483 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1484 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1485
1486 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1487 `default_design_vector' and `num_default_design_vector'.
1488
1489 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1490 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1491 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1492
1493 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1494 `token' argument to be NULL if we want only to count the number of
1495 tokens.
1496 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1497 want to skip the array.
1498 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1499 want to skip the array.
1500
1501 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1502 support for (partially commented out) othersubrs 19-25, 27, and 28.
1503 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1504 (t1_decoder_done): Release new field `buildchar'.
1505
1506 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1507 functions.
1508 (t1_keywords): Register them.
1509 (t1_allocate_blend): Updated.
1510 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1511 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1512 (parse_dict): Remove `keyword_flags' argument.
1513 Use new macro IS_PS_TOKEN.
1514 Changed function so that later PostScript definitions override
1515 earlier ones.
1516 (t1_init_loader): Initialize new field `keywords_encountered'.
1517 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1518 `len_buildchar'.
1519 Remove `keywords_flags'.
1520
1521 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1522 `keywords_encountered'.
1523 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1524
1525 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1526 New entries for parsing /NDV, /CDV, and /DesignVector.
1527
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015282006-07-07 Werner Lemberg <wl@gnu.org>
1529
1530 Add many checks to protect against malformed PCF files.
1531
1532 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1533 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1534
1535 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1536 data and check that tables don't overlap (using a simple
1537 bubblesort).
1538 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1539 New macros which give the size of data structures in the data
1540 stream.
1541 (pcf_get_properties): Use rough estimates to get array size limits.
1542 Assign `face->nprops' and `face->properties' earlier so that a call
1543 to PCF_Face_Done can do the clean-up in case of error.
1544 Protect against invalid string offsets.
1545 (pcf_get_metrics): Clean up code.
1546 Adjust tracing message levels.
1547 Use rough estimate to get array size limit.
1548 (pcf_get_bitmaps): Clean up code.
1549 Adjust tracing message levels.
1550 Use rough estimates to get offset limits.
1551 (pcf_get_encodings): Adjust tracing message level.
1552 (pcf_get_accel): Clean up code.
1553
Werner Lemberg8eb05252006-06-27 06:20:01 +000015542006-06-26 Werner Lemberg <wl@gnu.org>
1555
1556 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1557 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1558
Werner Lemberg24703f82006-06-26 19:12:51 +000015592006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1560
1561 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1562 (t1_decoder_parse_charstrings): Operator with
1563 opcode 15 pops its two arguments.
1564 Handle the case where the pops of an othersubr may be part of a
1565 subroutine.
1566 Handle unknown othersubrs gracefully: count their operands and let
1567 the following pop operators push the operands as the results onto
1568 the Type1 stack.
1569 Improve handling of setcurrentpoint opcode.
1570
Werner Lembergc011f4c2006-06-26 09:40:00 +000015712006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1572
1573 The Type 1 parser now skips over top-level procedures as required
1574 for a `Simplified Parser'. This makes the parser more robust as it
1575 doesn't poke around in PostScript code. Additionally, it makes the
1576 FontDirectory hackery in src/type1/t1load.c unnecessary.
1577
1578 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1579 (skip_literal_string): Add FT_Error as return value.
1580 Handle escapes better.
1581 (skip_string): Add FT_Error as return value.
1582 Don't set `parser->error' but return error code directly.
1583 (skip_procedure): New function.
1584 (ps_parser_skip_PS_token): Handle procedures.
1585 Update code.
1586 (ps_parser_to_token): Update code.
1587 (ps_parser_load_field_table): Handle bbox entries also.
1588
1589 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1590 Add commented-out code for synthetic fonts.
1591
Werner Lemberga2da05c2006-06-25 06:27:27 +000015922006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1593
1594 Fix two hinting bugs as reported in
1595 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1596
1597 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1598 `first_point' member.
1599
1600 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1601 `first_point'.
1602 (TT_Process_Composite_Glyph): Always untouch points.
1603
1604 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1605 `first_point' and `last_point' in case of composite glyphs.
1606 (Ins_IUP): Fix computation of `end_point'.
1607
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016082006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1609
Werner Lembergef3d2c22006-06-25 06:07:14 +00001610 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1611 Mac. The original patch was written by David Sachitano and Lawrence
1612 Coopet, and modified by Sean McBride for MPW compatibility. Only
1613 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001614
Werner Lembergef3d2c22006-06-25 06:07:14 +00001615 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1616 Mac OS X platforms.
1617 (OS_INLINE): Undefine before definition.
1618 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1619 FontAssociation table in FOND resource.
1620 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1621 and fontSize at each entry of FontAssociation table in FOND
1622 resource.
1623 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1624 ffStylOff of FamilyRecord header of FOND resource, the header,
1625 fontSize, fontID at each entry of FontAssociation table, and
1626 StyleMapping table.
1627 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001628
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016292006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1630
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001631 Public API of TrueTypeGX, OpenType, and classic kern table validator
1632 should return `FT_Err_Unimplemented_Feature' if validation service
1633 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001634 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001635 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1636
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001637 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1638 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1639 unavailable.
1640 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1641 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001642
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001643 * src/base/ftotval.c (FT_OpenType_Validate): Return
1644 FT_Err_Unimplemented_Feature if OpenType validation service is
1645 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001646
Werner Lembergb10e45a2006-06-08 07:32:56 +000016472006-06-08 Werner Lemberg <wl@gnu.org>
1648
1649 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1650 errors.
1651
David Turner5f1f7502006-06-07 05:11:50 +000016522006-06-07 David Turner <david@freetype.org>
1653
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001654 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1655 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1656 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001657
David Turner457b4a82006-06-06 08:14:14 +000016582006-06-06 David Turner <david@freetype.org>
1659
Werner Lemberg4836f952006-06-06 12:54:08 +00001660 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001661
Werner Lemberg4836f952006-06-06 12:54:08 +00001662 We change `ps_unicodes_init' so that it also takes a
1663 `free_glyph_name' callback to release the glyph names returned by
1664 `get_glyph_name'
1665
1666 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1667 Renamed to ...
1668 (PS_GetGlyphNameFunc): This.
1669 (PS_FreeGlyphNameFunc): New typedef.
1670 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1671
1672 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1673 argument.
1674 (cff_sid_free_glyph_name): New function.
1675 (cff_cmap_unicode_init): Updated.
1676
1677 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1678
1679 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1680 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001681
1682
David Turner09717352006-06-04 14:33:08 +000016832006-06-04 David Turner <david@freetype.org>
1684
Werner Lembergd724f202006-06-04 15:17:41 +00001685 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1686 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001687 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001688
Werner Lembergd724f202006-06-04 15:17:41 +00001689 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1690 of `face->num_glyphs' which missed the last glyph, due to
1691 the offset-by-1 computation, since the PFR format doesn't
1692 guarantee that glyph index 0 corresponds to the `missing
1693 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001694
Werner Lemberg33779662006-05-26 06:30:05 +000016952006-05-25 Werner Lemberg <wl@gnu.org>
1696
1697 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1698 `-no-undefined'. Reported by Christian Biesinger.
1699
Werner Lemberg24773d62006-05-20 08:53:13 +000017002006-05-19 Brian Weed <bw@imaginengine.com>
1701
1702 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1703 have debug information, and debug libraries use `C7 compatible'
1704 debug info.
1705
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1707
Werner Lemberga6523a62006-05-20 08:47:01 +00001708 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001709 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001710
Werner Lemberga6523a62006-05-20 08:47:01 +00001711 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1712 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001713
1714 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001715 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001716
17172006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1718
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001719 * build/unix/configure.raw: Add a fallback to disable Carbon
1720 dependency, if configured with no options on Mac OS X.
1721
17222006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1723
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001724 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001725 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001726 the second part of Savannah bug #16590.
1727
Werner Lemberg545c4e52006-05-17 22:55:04 +000017282006-05-18 Werner Lemberg <wl@gnu.org>
1729
1730 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1731 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1732
David Turnerdc3ff312006-05-17 12:59:35 +000017332006-05-17 David Turner <david@freetype.org>
1734
Werner Lemberg545c4e52006-05-17 22:55:04 +00001735 This is a major patch used to drastically improve the performance of
1736 loading glyphs. This both speeds up loading the glyph vectors
1737 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001738
Werner Lemberg545c4e52006-05-17 22:55:04 +00001739 We now use inline assembler code with GCC to implement `FT_MulFix',
1740 which is probably the most important function related to the
1741 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001742
Werner Lemberg545c4e52006-05-17 22:55:04 +00001743 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001744
1745
Werner Lemberg545c4e52006-05-17 22:55:04 +00001746 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1747 `cursor' and `limit'.
1748
1749 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1750 New functions.
1751 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1752 [TEST]: Remove.
1753
1754 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1755 code.
1756
1757 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1758 `FT_ZERO'
1759 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1760 (af_glyph_hints_reload: Rewrite recognition of weak points.
1761
1762 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1763 constant values out of the loops.
1764
1765 * src/autofit/aftypes.h: Updated.
1766
1767 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1768
1769 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1770 product to get orientation.
1771
1772 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1773 (FT_Stream_OpenGzip): Use it to handle small files directly in
1774 memory.
1775
1776 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1777 Improve performance.
1778
1779 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1780 `limit'.
1781
1782 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1783 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1784 exceedingly large values of number of contours. Speed up by
1785 reducing the number of loops.
1786
1787 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1788
1789
1790 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1791 used to detect rogue clients from 4 to 16. This is to prevent some
1792 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1793 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001794
Werner Lembergde2d90a2006-05-17 08:54:30 +000017952007-05-17 Werner Lemberg <wl@gnu.org>
1796
1797 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001798 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001799
18002006-05-16 Werner Lemberg <wl@gnu.org>
1801
1802 * docs/PROBLEMS: Updated icl issues.
1803
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001804----------------------------------------------------------------------------
1805
Werner Lemberg42b63b22007-01-21 21:01:33 +00001806Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001807David Turner, Robert Wilhelm, and Werner Lemberg.
1808
1809This file is part of the FreeType project, and may only be used, modified,
1810and distributed under the terms of the FreeType project license,
1811LICENSE.TXT. By continuing to use, modify, or distribute this file you
1812indicate that you have read the license and understand and accept it
1813fully.
1814
1815
1816Local Variables:
1817version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001818coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001819End: