blob: 56ea48518cee00fcd16bff86c8ceb004ddf081f5 [file] [log] [blame]
David Turnere6472c12007-04-02 13:13:54 +000012007-04-02 David Turner <david@freetype.org>
2
3 * src/autofit/aflatin.h, src/autofit/aflatin.c: add special code to
4 detect "extra-light" fonts and do not snap their stem widths too much
5 to avoid bizarre hinting effects.
6
David Turner3f539692007-03-28 14:53:40 +000072007-03-28 David Turner <david@freetype.org>
8
Werner Lemberg644b1ad2007-03-28 21:17:11 +00009 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000010 padding.
11
Werner Lemberga08b2172007-03-28 07:17:17 +0000122007-03-28 Werner Lemberg <wl@gnu.org>
13
14 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
15 gracefully.
16 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
17 issue an error for longer names.
18 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
19 number of code points in Unicode.
20
Werner Lemberg644b1ad2007-03-28 21:17:11 +000021 * builds/win32/visualc/index.html,
22 builds/win32/visualc/freetype.dsp,
23 builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
24 s/232/233/.
25
26 * docs/CHANGES: Mention ftdiff.
27
David Turner3b242d32007-03-26 12:03:04 +0000282007-03-26 David Turner <david@freetype.org>
29
Werner Lemberg644b1ad2007-03-28 21:17:11 +000030 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
31 corresponding code.
32 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000033
Werner Lemberga08b2172007-03-28 07:17:17 +000034 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000035 computations in order to ignore single-point contours. These are
36 never rasterized and correspond in certain fonts to mark-attach
37 points that are very far from the glyph's real outline, ruining the
38 computation.
David Turnerf58caa02007-03-26 12:39:25 +000039
Werner Lemberga08b2172007-03-28 07:17:17 +000040 * src/autofit/afloader.c (af_loader_load_g): In the case of
41 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
42 Otherwise code that uses them will most certainly ruin the fixed
43 advance property.
David Turner23553d62007-03-26 13:37:17 +000044
Werner Lemberg644b1ad2007-03-28 21:17:11 +000045 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
46 documentation and bump version number to 2.3.3.
47
48 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
49
50 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +000051
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000522007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
53
Werner Lemberg644b1ad2007-03-28 21:17:11 +000054 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
55 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000056 * builds/vms/ftconfig.h: Ditto.
57 * include/freetype/config/ftconfig.h: Ditto.
58
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000592007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
60
Werner Lemberg14ffe092007-03-22 06:12:43 +000061 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
62 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000063 proposed by Sean McBride:
64 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
65
662007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
67
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000068 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
69 setjmp, proposed by Sean McBride:
70 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
71
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000722007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
73
Werner Lembergc9f6c662007-03-21 13:30:14 +000074 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
75 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
76 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000077
David Turner74c34eb2007-03-18 07:19:31 +0000782007-03-18 David Turner <david@freetype.org>
79
Werner Lembergc9f6c662007-03-21 13:30:14 +000080 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
81 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000082
Werner Lembergc9f6c662007-03-21 13:30:14 +000083 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000084
David Turner89020d92007-03-17 17:48:57 +0000852007-03-17 David Turner <david@freetype.org>
86
Werner Lembergc9f6c662007-03-21 13:30:14 +000087 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
88 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000089
Werner Lemberg25d592a2007-03-09 07:59:35 +0000902007-03-09 Werner Lemberg <wl@gnu.org>
91
92 * Version 2.3.2 released.
93 =========================
94
95
96 Tag sources with `VER-2-3-2'.
97
98 * builds/win32/visualc/index.html,
99 builds/win32/visualc/freetype.dsp,
100 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
101 s/231/232/.
102
David Turner3a51afa2007-03-08 10:50:38 +00001032007-03-08 David Turner <david@freetype.org>
104
Werner Lemberg25d592a2007-03-09 07:59:35 +0000105 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000106
Werner Lemberg25d592a2007-03-09 07:59:35 +0000107 * builds/unix/configure.raw (version_info): Set to 9:13:3.
108
109 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
110
111 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000112
Werner Lemberg1e259de2007-03-08 15:39:21 +0000113 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
114 function to work properly, over-writing user-provided buffers in
115 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000116
David Turner121cad52007-03-08 16:43:50 +0000117
Werner Lemberg3d92f082007-03-06 11:59:24 +00001182007-03-05 Werner Lemberg <wl@gnu.org>
119
120 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
121 macro for `strstr'.
122
123 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
124 `trick_names', as suggested by Ivan Nincic.
125
David Turner085bc6e2007-03-05 17:40:03 +00001262007-03-05 David Turner <david@freetype.org>
127
Werner Lembergd112cf02007-03-06 12:06:56 +0000128 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
129 case FT_Init_FreeType fails for some reason. Problem reported by
130 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000131
Werner Lembergd112cf02007-03-06 12:06:56 +0000132 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
133 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
134 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
135 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000136
Werner Lembergd112cf02007-03-06 12:06:56 +0000137 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
138 signed values, not unsigned ones. Problem reported by Johannes
139 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000140
David Turner601aefe2007-02-21 16:47:49 +00001412007-02-21 David Turner <david@freetype.org>
142
Werner Lembergde5e6862007-02-25 21:06:43 +0000143 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
144 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000145
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001462007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
147
148 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
149 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
150 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
151
Werner Lemberga0915172007-02-16 08:12:50 +00001522007-02-16 Werner Lemberg <wl@gnu.org>
153
154 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
155 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
156
David Turner2c4500e2007-02-14 15:08:47 +00001572007-02-14 David Turner <david@freetype.org>
158
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000159 It seems that the following changes fix most of the known
160 interpreter problems with my fonts, but more testing is needed,
161 though.
162
163 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
164 (TT_MulFix14): Rewrite.
165 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
166 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000167
Werner Lembergc6a14082007-02-12 22:08:15 +00001682007-02-12 Werner Lemberg <wl@gnu.org>
169
170 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
171 warnings.
172
173 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
174 (bdf_interpret_style): Ditto.
175
David Turnerc0f9c4a2007-02-12 14:55:03 +00001762007-02-12 David Turner <david@freetype.org>
177
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000178 Simplify projection and dual-projection code interface.
179
Werner Lemberg406d25f2007-02-12 22:01:18 +0000180 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
181 FT_Vector' as argument type.
182 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
183 Updated.
184 (CUR_fast_project, CUR_fast_dualproj): New macros.
185 (Project, Dual_Project, Project_x, Project_y): Updated.
186 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
187 macros.
188
189
190 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
191 adjustments for the non-light auto-hinted modes. Gets rid of
192 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000193
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000194 * src/autofit/aflatin.c (af_latin_hints_link_segments,
195 af_latin_hints_compute_edges): Slight optimization of the segment
196 linker and better handling of serif segments to get rid of broken
197 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000198
David Turnerc0f9c4a2007-02-12 14:55:03 +0000199
Werner Lemberg442bfb82007-02-12 21:44:10 +0000200 Introduce new string functions and the corresponding macros to get
201 rid of various uses of strcpy and other `evil' functions, as well as
202 to simplify a few things.
203
204 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
205 ft_mem_strcpyn): New declarations.
206 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
207 macros.
208 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
209 functions.
210
211 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
212 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
213 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
214 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
215 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
216 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
217 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
218 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000219
Werner Lemberg406d25f2007-02-12 22:01:18 +0000220 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
221
Werner Lemberg582067d2007-02-11 15:03:05 +00002222007-02-11 Werner Lemberg <wl@gnu.org>
223
224 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
225 non-spacing glyphs.
226
Werner Lemberg8f474532007-02-07 08:31:01 +00002272007-02-07 Tom Parker <palfrey@tevp.net>
228
229 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
230 pointer.
231
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002322007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
233
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000234 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
235 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000236 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000237 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
238 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
239 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
240 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000241
242 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
243 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000244 * builds/mac/ftmac.c: Ditto.
245
2462007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
247
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000248 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000249 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000250 #include <ftmac.c>.
251
2522007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
253
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000254 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
255 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
256 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
257 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
258 FT_GetFilePath_From_Mac_ATS_Name.
259 * builds/mac/ftmac.c: Ditto.
260
2612007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
262
Werner Lembergdcbb7082007-02-08 08:54:09 +0000263 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000264 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
265 for passing to FT_New_Face_From_FSSpec.
266
2672007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
268
Werner Lembergdcbb7082007-02-08 08:54:09 +0000269 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000270 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000271
272 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
273 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000274 * builds/mac/ftmac.c (OS_INLINE): Ditto.
275
Werner Lemberg313d7772007-02-01 08:10:45 +00002762007-02-01 Werner Lemberg <wl@gnu.org>
277
278 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
279 Explain why applications shouldn't use it. Found by Alexei.
280
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002812007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000282
283 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
284 message.
285
286 * src/gxvalid/gxvmort1.c
287 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
288 message.
289
Werner Lemberg53935932007-01-31 08:53:02 +00002902007-01-31 Werner Lemberg <wl@gnu.org>
291
292
293 * Version 2.3.1 released.
294 =========================
295
296
297 Tag sources with `VER-2-3-1-FINAL'.
298
299 * builds/win32/visualc/freetype.dsp,
300 builds/win32/visualc/freetype.vcproj: s/230/231/.
301 * builds/win32/visualc/index.html: s/221/231/.
302
303 * vms_make.com: Add `ftgasp'.
304
David Turnera7ee6082007-01-30 10:33:53 +00003052007-01-30 David Turner <david@freetype.org>
306
Werner Lemberg53935932007-01-31 08:53:02 +0000307 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000308
Werner Lemberg53935932007-01-31 08:53:02 +0000309 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000310
Werner Lemberg25d592a2007-03-09 07:59:35 +0000311 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000312 s/2.3.0/2.3.1/.
313
314 * builds/unix/configure.raw (version_info): Set to 9:12:3.
315
316
317 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
318 (af_loader_load_g): Disable the warper (i.e., the light hinting
319 improvements) to make a 2.3.1 bugfix release before introducing a
320 new feature. This should give us more time to tune and improve the
321 warper for the next release.
322
323 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000324
David Turnerd91eebd2007-01-26 15:05:41 +00003252007-01-25 David Turner <david@freetype.org>
326
Werner Lembergbf241762007-01-26 16:08:49 +0000327 For light auto-hinting, improve glyph advance widths and resurrect
328 normal/full hinting to its normal quality.
329
330 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
331 and `xmax_delta'.
332 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
333 and `xmax_delta'.
334
335 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
336 preprocessor conditional with if-clause, handling both light and
337 normal mode.
338
339 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
340 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000341
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003422007-01-25 Werner Lemberg <wl@gnu.org>
343
344 * docs/release: Updated -- Savannah uses a new uploading scheme.
345
David Turnera42567b2007-01-25 12:23:37 +00003462007-01-25 David Turner <david@freetype.org>
347
Werner Lembergd7855662007-01-25 13:53:56 +0000348 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000349
Werner Lembergd7855662007-01-25 13:53:56 +0000350 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
351 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
352 functions.
David Turnera42567b2007-01-25 12:23:37 +0000353
Werner Lembergd7855662007-01-25 13:53:56 +0000354 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000355
Werner Lembergb1be9e82007-01-25 11:50:00 +00003562007-01-25 Werner Lemberg <wl@gnu.org>
357
358 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000359 correctly in a sanity check. Since this function is only used to
360 load local and global functions, any charstring that called the last
361 local/global function would fail otherwise. This fixes Savannah bug
362 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000363
364 * docs/CHANGES: Document it.
365
David Turnerb6de8d12007-01-23 15:51:50 +00003662007-01-23 David Turner <david@freetype.org>
367
Werner Lembergb1be9e82007-01-25 11:50:00 +0000368 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
369 prevented compilation when disabling both the unpatented and the
370 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000371
Werner Lembergb1be9e82007-01-25 11:50:00 +0000372
373 Fix and enable the warper to improve `light' hinting mode. This is
374 not necessarily a final version, but it seems to work well.
375
376 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
377 Disable code.
378 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
379 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
380
381 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
382 (af_warper_compute_line_best): Fix array size of `scores'.
383 (af_warper_compute): Better handling of border cases.
384 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
385 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000386
Werner Lemberg011d1112007-01-21 09:36:00 +00003872007-01-21 Werner Lemberg <wl@gnu.org>
388
Werner Lemberg42b63b22007-01-21 21:01:33 +0000389 * ChangeLog: Split off older entries into...
390 * ChangeLog.22: This new file.
391
3922007-01-21 Werner Lemberg <wl@gnu.org>
393
Werner Lemberg555258f2007-01-21 09:46:37 +0000394 * docs/CHANGES: Document SHZ fix.
395
3962007-01-21 George Williams <gww@silcom.com>
397
398 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
399 points.
400
4012007-01-21 Werner Lemberg <wl@gnu.org>
402
Werner Lemberg011d1112007-01-21 09:36:00 +0000403 * src/sfnt/ttmtx.c (tt_face_get_metrics)
404 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
405
Werner Lemberg87a5a432007-01-17 12:44:39 +00004062007-01-17 Werner Lemberg <wl@gnu.org>
407
Werner Lembergb8003292007-01-17 12:56:25 +0000408
409 * Version 2.3.0 released.
410 =========================
411
412
413 Tag sources with `VER-2-3-0-FINAL'.
414
4152007-01-17 Werner Lemberg <wl@gnu.org>
416
Werner Lemberg87a5a432007-01-17 12:44:39 +0000417 * docs/release: Updated.
418
David Turner22122722007-01-16 20:06:44 +00004192007-01-16 David Turner <david@freetype.org>
420
Werner Lemberg87a5a432007-01-17 12:44:39 +0000421 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
422 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
423 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
424 warnings.
David Turner22122722007-01-16 20:06:44 +0000425
Werner Lemberg267e1d72007-01-15 07:48:09 +00004262007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
427
428 * builds/amiga/makefile, builds/amiga/makefile.os4,
429 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
430
431 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
432
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004332007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
434
435 Fix various compiler warnings.
436
437 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
438 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
439 s/index/strike_index/.
440 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
441
442 * src/gxvalid/gxvmorx5.c
443 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
444
445 * src/truetype/ttinterp.c (Compute_Point_Displacement),
446 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
447 uninitialized variables.
448
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004492007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
450
451 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
452
Werner Lemberg281c1482007-01-13 22:50:51 +00004532007-01-13 Werner Lemberg <wl@gnu.org>
454
455 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
456 versions up to 0x3FF without complaining.
457
Werner Lembergac250b22007-01-13 14:01:36 +00004582007-01-13 Derek Clegg <dclegg@apple.com>
459
460 Add FT_Get_PS_Font_Info interface to CFF driver.
461
462 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
463 (CFF_FontRec): Add `font_info' field.
464
465 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
466 (cff_font_done): Free font->font_info if necessary.
467
468 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
469 (cff_service_ps_info): Register cff_ps_get_font_info.
470
Werner Lemberg23df31a2007-01-13 08:45:00 +00004712007-01-13 Werner Lemberg <wl@gnu.org>
472
473 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
474 with C++ compiler.
475
476 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
477 af_glyph_hints_dump_edges): Ditto.
478
479 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
480 `modules.cfg').
481
482 * src/sfnt/ttsbit0.h: Remove.
483
484 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
485
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004862007-01-12 David Turner <david@freetype.org>
487
488 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
489 bug in the bitmap emboldener if the pitch of the source bitmap is
490 much larger than its width.
491
492 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
493 compilation warning.
494
Werner Lemberg6d96d312007-01-12 10:30:19 +00004952007-01-12 Werner Lemberg <wl@gnu.org>
496
497 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
498 `automake' CVS module from sources.redhat.com.
499
Werner Lemberg17432b52007-01-12 09:28:44 +00005002007-01-11 Werner Lemberg <wl@gnu.org>
501
502 * src/type1/t1load.c (is_space): Removed.
503 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
504 (parse_charstrings): Use IS_PS_TOKEN.
505
506
507 * autogen.sh: Avoid bash specific syntax.
508
David Turner038ace22007-01-11 15:00:59 +00005092007-01-11 David Turner <david@freetype.org>
510
Werner Lemberg17432b52007-01-12 09:28:44 +0000511 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000512
Werner Lemberg17432b52007-01-12 09:28:44 +0000513 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000514
Werner Lemberg17432b52007-01-12 09:28:44 +0000515 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
516 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000517 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000518
Werner Lemberg17432b52007-01-12 09:28:44 +0000519 * autogen.sh: Small fix to get it working on Mac OS X properly:
520 The issue is that GNU libtool is called `glibtool' on this platform,
521 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000522
David Turner2628ea92007-01-10 13:15:56 +00005232007-01-10 David Turner <david@freetype.org>
524
Werner Lemberg17432b52007-01-12 09:28:44 +0000525 * all-sources: Tag all sources with VER-2-3-0-RC1 and
526 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000527
Werner Lemberg17432b52007-01-12 09:28:44 +0000528 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
529 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
530 version number to 2.3.0.
531
532 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
533 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000534
535 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000536 include/freetype/ftlcdfil.h: Update reference documentation with
537 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000538
Werner Lemberg17432b52007-01-12 09:28:44 +0000539 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
540 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000541
Werner Lembergbf02d392007-01-10 07:07:37 +00005422007-01-10 Derek Clegg <dclegg@apple.com>
543
544 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
545 values.
546
David Turnerf48b60e2007-01-08 15:15:32 +00005472007-01-08 David Turner <david@freetype.org>
548
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000549 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000550
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000551 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
552 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000553 corresponding to a given character pixel size.
554
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000555 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
556 `gasp' table, in order to avoid potential problems with later
557 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000558
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000559 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
560 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000561
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000562 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
563 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
564 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
565 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000566
Werner Lemberge6b6f372007-01-07 00:06:47 +00005672007-01-07 Werner Lemberg <wl@gnu.org>
568
Werner Lembergb8004d22007-01-07 09:13:38 +0000569 * src/cid/cidparse.c (cid_parser_new): Improve error message for
570 Type 11 fonts.
571 Scan for `/sfnts' token.
572
5732007-01-07 Werner Lemberg <wl@gnu.org>
574
575 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000576
Werner Lembergbe5f7972007-01-06 07:51:48 +00005772007-01-06 Werner Lemberg <wl@gnu.org>
578
579 * src/cff/cffload.c (cff_index_init): Remove unused variable.
580 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
581
David Turnera8cf42b2007-01-04 16:46:46 +00005822007-01-04 David Turner <david@freetype.org>
583
Werner Lembergf6294392007-01-06 07:47:45 +0000584 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
585 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000586
Werner Lembergf6294392007-01-06 07:47:45 +0000587
588 Do not allocate interpreter-specific tables in memory if we are not
589 going to load glyphs with the bytecode interpreter anyway.
590
591 * src/truetype/ttgload.c (tt_loader_init): Load execution context
592 only if glyph is hinted.
593 Updated.
594 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
595 and `cvs_ready'.
596 Add `tt_size_ready_bytecode' declaration.
597 * src/truetype/ttobjs.c (tt_size_done_bytecode,
598 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
599 (tt_size_init): Move most code into `tt_size_init_bytecode'.
600 (tt_size_done): Move most code into `tt_size_done_bytecode'.
601 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000602
David Turner91a34022007-01-05 14:47:08 +0000603
Werner Lembergf6294392007-01-06 07:47:45 +0000604 Don't extract the metrics table from the SFNT font file. Instead,
605 reparse it on each glyph load. The runtime difference is not
606 noticeable, and it can save a lot of heap memory when memory-mapped
607 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000608
Werner Lembergf6294392007-01-06 07:47:45 +0000609 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
610 `horz_metrics_offset' and `vert_metrics_ofset'.
611 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
612 Updated.
613
614
615 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
616
617
618 Do not load the CFF index offsets into memory, since this wastes a
619 *lot* of heap memory with large Asian CFF fonts. There is no
620 significant performance loss.
621
622 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
623 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
624 `data_size'.
625 (CFF_CharsetRec): Add field `num_glyphs'.
626
627 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
628 cff_charset_cid_to_gindex): New functions.
629 (cff_new_index): Renamed to...
630 (cff_index_init): This. Update all callers.
631 Updated -- some code has been moved to `cff_index_load_offsets'.
632 (cff_done_index): Renamed to...
633 (cff_index_done): This. Update all callers.
634 (cff_index_get_pointers, cff_index_access_element): Updated to use
635 stream offsets.
636 (cff_charset_compute_cids): Set `num_glyphs' field.
637 (cff_encoding_load): Updated.
638
639 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000640
6412007-01-04 David Turner <david@freetype.org>
642
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000643 * docs/INSTALL.UNIX: Simplify some parts, add reference to
644 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000645
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000646 * README.CVS: Add common problem description and solution
647 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000648
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000649 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000650
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000651 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000652
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000653 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000654
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000655 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
656 (TWorker): This.
657 Remove `count_table' and `memory'.
658 Make `grays' a pointer.
659 (TRaster): New structure.
660 (count_table): New static array.
661 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
662 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
663 ft_black_set_mode, ft_black_render): Updated.
664 (ft_black_init): Don't initialize `count_table'.
665 (ft_black_reset): Use the render pool. This saves about 6KB of
666 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000667
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000668 * src/smooth/ftgrays.c (TRaster): Replaced with...
669 (TWorker): This.
670 Remove `memory'.
671 (TRaster): New structure.
672
673 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
674 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
675 gray_render_span, gray_raster_render): Updated.
676 (gray_raster_reset): Use the render pool. This saves about 6KB of
677 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000678
David Turner8a6c44e2007-01-04 17:03:11 +0000679 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
680 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000681 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
682 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
683 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000684
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000685 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
686 Remove a typo that results in no hinting and a memory leak with some
687 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000688
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000689 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000690 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000691 CFF_Faces in it. We need to close all faces before destroying the
692 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000693
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006942007-01-02 Werner Lemberg <wl@gnu.org>
695
696 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
697 Remove compiler warning.
698
David Turner9207e002007-01-02 16:58:13 +00006992007-01-02 David Turner <david@freetype.org>
700
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000701 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000702
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007032006-12-31 Masatake YAMATO <jet@gyve.org>
704
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000705 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
706 function.
707 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000708 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000709 `gxv_kern_subtable_fmt0_pairs_validate'.
710
David Turner115b4422006-12-22 11:37:05 +00007112006-12-22 David Turner <david@freetype.org>
712
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000713 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
714 warnings.
David Turner115b4422006-12-22 11:37:05 +0000715
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000716 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
717 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000718
Werner Lemberg4755bf72006-12-16 08:58:44 +00007192006-12-16 Anders Kaseorg <anders@kaseorg.com>
720
721 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
722 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
723
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007242006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
725
Werner Lemberg9b774e22007-01-16 06:11:27 +0000726 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000727 sync with the modification by Jens Claudius on 2006-08-22; cf.
728 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 +0000729
7302006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
731
732 * src/base/ftmac.c: Specialized for Mac OS X only.
733 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
734 * builds/unix/configure.raw: Ditto. When explicit switches for
735 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
736 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
737
7382006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
739
740 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
741 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
742 instead of src/base/ftmac.c
743 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
744 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
745 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
746 that cannot be built at present.
747
7482006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
749
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000750 * src/base/ftobjs.c: Improvement of resource fork handler for
751 POSIX, cf.
752 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000753 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
754 format or .dfont, to simulate the face index number counted by ftmac.c.
755 (IsMacResource): Return the number of scalable faces correctly.
756
Werner Lembergec5b4502006-12-10 07:51:38 +00007572006-12-10 Werner Lemberg <wl@gnu.org>
758
759 * builds/toplevel.mk (version): Protect against `distclean' target.
760
Werner Lembergb26b3142006-12-09 20:01:43 +00007612006-12-09 Werner Lemberg <wl@gnu.org>
762
763 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
764 or `type'.
765
766 * builds/freetype.mk (version): Extracted from freetype.h, using
767 GNU make's built-in string functions.
768 (refdoc): Use $(version) instead of static version number.
769
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007702006-12-08 Werner Lemberg <wl@gnu.org>
771
772 * builds/toplevel.mk (dist): Extract version number from freetype.h.
773
Werner Lemberg15c29502006-12-09 07:29:54 +00007742006-12-08 Vladimir Volovich <vvv@vsu.ru>
775
776 * src/tools/apinames (State): Remove final comma in structure -- xlc
777 v5 under AIX 4.3 doesn't like this.
778
David Turnerdbf3b432006-12-07 21:18:09 +00007792006-12-07 David Turner <david@freetype.org>
780
Werner Lemberg256a3512006-12-08 06:49:33 +0000781 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
782 to the spacing of auto-fitted glyphs. This only impacts rare
783 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000784
Werner Lemberg11171312006-12-03 09:43:40 +00007852006-12-03 Werner Lemberg <wl@gnu.org>
786
787 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
788
Werner Lemberg960ba592006-12-01 08:20:47 +00007892006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000790
Werner Lemberg960ba592006-12-01 08:20:47 +0000791 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
792 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
793 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000794
David Turner80658e52006-11-28 08:09:20 +0000795
Werner Lemberg960ba592006-12-01 08:20:47 +0000796 * include/freetype/ftxf86.h: Fix and extend comment so that it
797 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000798
Werner Lemberg960ba592006-12-01 08:20:47 +0000799 * include/freetype/ftchapters.h: Add `font_format' section.
800
801
802 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
803 to TOC in index page.
804
8052006-11-28 David Turner <david@freetype.org>
806
807 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
808 trying to render into a zero-width/height bitmap, not an error code.
809
810 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
811
812 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
813 ones instead.
814
815 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
816 variable.
David Turner80658e52006-11-28 08:09:20 +0000817
Werner Lemberg8636c292006-11-26 22:28:13 +00008182006-11-26 Pierre Hanser <hanser@club-internet.fr>
819
820 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
821
Werner Lemberg960ba592006-12-01 08:20:47 +00008222006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000823
Werner Lemberg960ba592006-12-01 08:20:47 +0000824 * src/autofit/afhints.c (af_glyph_hints_dump_points,
825 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
826 Add stubs to link the `ftgrid' test program when debugging is
827 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000828
Werner Lemberg960ba592006-12-01 08:20:47 +00008292006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000830
831 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000832 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
833
834 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
835 Emit more sensible information.
836
837 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
838
839 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
840 rounding of blue values.
841 (af_latin_hints_compute_segments): Hint segment heights.
842 (af_latin_hints_link_segments): Reduce `len_score' value.
843 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
844 value and use `height' member for comparisons.
845 (af_latin_hint_edges): Extend logging message.
846 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000847
Werner Lemberg91959bf2006-11-22 10:36:55 +00008482006-11-22 Werner Lemberg <wl@gnu.org>
849
850 Fix Savannah bug #15553.
851
852 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
853 program after a change from mono to grayscaling (and vice versa).
854 Use correct constant for comparison to get `exec->grayscale'.
855
Werner Lemberg913a3652006-11-19 09:19:17 +00008562006-11-18 Werner Lemberg <wl@gnu.org>
857
858 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000859 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000860 This patch fixes Savannah bug #18301.
861
862 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
863 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
864 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
865 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
866 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
867 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
868 (FNT_Load_Glyph): Check validity of `glyph_index'.
869
David Turner7bab6ae2006-11-13 11:25:06 +00008702006-11-13 David Turner <david@freetype.org>
871
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000872 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
873 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000874
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000875 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
876 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
877 when building the library to change the default LCD filter to be
878 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000879
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000880 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000881
David Turner8765c712006-11-10 16:49:42 +00008822006-11-10 David Turner <david@freetype.org>
883
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000884 * src/smooth/ftsmooth.c: API change for the LCD
885 filter. The FT_LcdFilter value is an enumeration describing which
886 filter to apply, with new values FT_LCD_FILTER_LIGHT and
887 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
888 algorithm which produces strong color fringes for everything
889 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000890
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000891 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
892 second parameter to an enum type.
893
894 * src/base/ftlcdfil.c (USE_LEGACY): Define.
895 (_ft_lcd_filter): Rename to...
896 (_ft_lcd_filter_fir): This.
897 Update parameters.
898 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
899 (FT_Library_Set_LcdFilter): Update parameters.
900 Handle new filter modes.
901
902 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
903 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
904 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
905 callback and update other fields.
906
907 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
908 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
909 Other minor improvements.
910
911 * src/autofit/aflatin.c: Various tiny improvements that drastically
912 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
913 (af_latin_hints_compute_edges): Fix typo.
914 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000915
David Turner4e9cc3c2006-11-09 16:31:52 +00009162006-11-09 David Turner <david@freetype.org>
917
Werner Lemberg49c77a82006-11-09 21:51:57 +0000918 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
919 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000920
Werner Lemberg5e430892006-11-07 09:35:03 +00009212006-11-07 Zhe Su <james.su@gmail.com>
922
923 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
924 also.
925
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009262006-11-03 Werner Lemberg <wl@gnu.org>
927
928 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
929
David Turner40604742006-11-02 16:37:35 +00009302006-11-02 David Turner <david@freetype.org>
931
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000932 Add a few tweaks to better handle serif fonts.
933 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000934
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000935 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
936 segments that are less than 1.5 pixels high. This gets rid of
937 *many* corner cases with serifs.
938 (af_latin_align_linked_edge): Add logging message.
939 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
940 Add logging messages.
941 Handle AF_EDGE_FLAG flag specially.
942
943 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
944 _af_debug_disable_blue_hints, and _af_debug_hints variables.
945
946 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
947 Update external declarations.
948 (af_corner_orientation, af_corner_is_flat): Replaced by...
949
950 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
951 ft_corner_is_flat): These declarations.
952
953 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
954 Comment out. Replaced by...
955
956 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
957 These functions. Update all callers.
958 (FT_Add64) [!FT_LONG64]: Simplify.
959
960 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
961 (af_direction_compute): Add a missing FT_ABS call. This bug caused
962 production of garbage by missing lots of segments.
963
964 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
965
966 * src/autofit/afloader.c (af_loader_init, af_loader_done)
967 [AF_DEBUG]: Set _af_debug_hints.
968
969
970 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
971 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
972 and ft_corner_orientation.
973
974
975 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000976
Werner Lemberge88c5262006-10-24 05:46:26 +00009772006-10-24 Werner Lemberg <wl@gnu.org>
978
979 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
980
981 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
982 as argument.
983
David Turnera1861392006-10-23 16:00:59 +00009842006-10-23 Zhe Su <zsu@novell.com>
985
Werner Lemberg715e96e2006-10-24 05:28:45 +0000986 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
987 better deal with broken Asian fonts with strange glyphs, having
988 self-intersections and other peculiarities. The used algorithm is
989 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000990
David Turnere140f142006-10-23 08:56:57 +00009912006-10-23 David Turner <david@freetype.org>
992
Werner Lemberg715e96e2006-10-24 05:28:45 +0000993 Speed up the CFF font loader. With some large CFF fonts,
994 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000995
Werner Lemberg715e96e2006-10-24 05:28:45 +0000996 * src/cff/cffload.c (cff_get_offset): Removed.
997 (cff_new_index): Inline functionality of `cff_get_offset'.
998 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
999 (cff_charset_done): Call `cff_charset_free_cids'.
1000 (cff_charset_load): Call `cff_charset_compute_cids'.
1001 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1002
1003 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1004 with FT_NEXT_XXX.
1005
1006
1007 Speed up the Postscript hinter, with more than 100% speed increase
1008 on my machine.
1009
1010 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1011 psh_corner_orientation): New functions.
1012 (psh_glyph_compute_inflections): Merge loops for efficiency.
1013 Use `psh_corner_orientation'.
1014 (psh_glyph_init): Use `psh_corner_is_flat'.
1015 (psh_hint_table_find_strong_point): Renamed to...
1016 (psh_hint_table_find_strong_points): This.
1017 Rewrite, adding argument to handle all points at once.
1018 Update all callers.
1019 (PSH_MAX_STRONG_INTERNAL): New macro.
1020 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001021
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010222006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1023
1024 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001025 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001026
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010272006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1028
1029 * docs/INSTALL.CROSS: New document file for cross-building.
1030
1031 * builds/unix/configure.raw: Preliminary cross-building support.
1032 Find native C compiler and pass it by CC_BUILD, and
1033 find suffix for native executable and pass it by EXEEXT_BUILD.
1034 Also suffix for target executable is passed by EXEEXT.
1035
Werner Lembergb9e6d692006-10-15 08:58:40 +00001036 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1037 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001038 CC_BUILD and EXEEXT_BUILD.
1039
Werner Lembergb9e6d692006-10-15 08:58:40 +00001040 * builds/exports.mk (APINAMES_EXE): Change the extension for
1041 apinames from the suffix for target (E) to that for building host
1042 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001043
Werner Lemberg82a07e92006-10-12 06:20:44 +000010442006-10-12 Werner Lemberg <wl@gnu.org>
1045
1046 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1047 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1048 which reference those files.
1049
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010502006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1051
Werner Lembergb9e6d692006-10-15 08:58:40 +00001052 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1053 embedded in freetype2.pc and freetype-config. Use it to record
1054 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001055
1056 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1057
1058 * builds/unix/freetype-config.in: Ditto.
1059
Werner Lemberg28e17d92006-10-11 17:27:47 +000010602006-10-11 Werner Lemberg <wl@gnu.org>
1061
1062 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1063 development.
1064
Jens Claudius336d2292006-10-03 08:53:37 +000010652006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1066
1067 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1068 argument to ft_setjmp.
1069
1070 * include/freetype/internal/ftvalid.h: Add comment that
1071 ft_validator_run must not be used.
1072
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010732006-10-01 Werner Lemberg <wl@gnu.org>
1074
1075 * src/base/ftbase.c: Undo change from 2006-09-30.
1076
1077 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1078
10792006-09-30 David Turner <david@freetype.org>
1080
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001081 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1082 s/unpatented_hinting/ignore_unpatented_hinter/.
1083 Update all callers.
1084
1085 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1086 auto-hinting shall be used or not.
1087
1088 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001089
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010902006-09-30 Werner Lemberg <wl@gnu.org>
1091
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001092 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1093 in use).
1094
1095 * src/base/ftbase.c: Include `ftlcdfil.c'.
1096
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010972006-09-29 Werner Lemberg <wl@gnu.org>
1098
1099 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1100 overlapping segments. Bug reported by Stefan Koch.
1101
David Turnerad830712006-09-27 16:20:59 +000011022006-09-28 David Turner <david@freetype.org>
1103
Werner Lemberg2c002e12006-09-29 21:31:53 +00001104 Fix a bug in the automatic unpatented hinting support which prevents
1105 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001106
Werner Lemberg2c002e12006-09-29 21:31:53 +00001107 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1108 s/force_autohint/unpatented_hinting/. Update all callers.
1109
1110 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1111
1112 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001113
David Turner8a317cf2006-09-27 07:52:48 +000011142006-09-27 David Turner <david@freetype.org>
1115
Werner Lemberg2c002e12006-09-29 21:31:53 +00001116 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001117
David Turner8a317cf2006-09-27 07:52:48 +00001118
David Turnere140f142006-10-23 08:56:57 +00001119 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001120 In a default build, the function `FT_Library_SetLcdFilter' returns
1121 `FT_Err_Unimplemented_Feature'; you need to #define
1122 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1123 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001124
Werner Lemberg2c002e12006-09-29 21:31:53 +00001125 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001126
Werner Lemberg2c002e12006-09-29 21:31:53 +00001127 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1128 typedef.
1129 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1130 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001131
Werner Lemberg2c002e12006-09-29 21:31:53 +00001132 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1133 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001134
Werner Lemberg2c002e12006-09-29 21:31:53 +00001135 Handle subpixel rendering.
1136 Simplify function.
1137 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1138 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1139
1140 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1141 pointing to <freetype/ftlcdfil.h>.
1142
1143 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1144 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1145
1146 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001147
Werner Lemberge20df4a2006-09-27 06:29:21 +000011482006-09-26 David Bustin
1149
1150 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1151 correctly. Reported as Savannah bug #17843.
1152
David Turner6f8c6222006-09-26 15:42:44 +000011532006-09-26 David Turner <david@freetype.org>
1154
Werner Lemberg110246c2006-09-26 21:55:44 +00001155 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1156 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1157 horizontal and vertical hinting for the purpose of debugging the
1158 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001159
Werner Lemberg110246c2006-09-26 21:55:44 +00001160 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1161 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001162
Werner Lemberg110246c2006-09-26 21:55:44 +00001163 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1164
1165 * include/freetype/config/ftoption.h, devel/ftoption.h
1166 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1167 we want to compile LCD-optimized rendering code la ClearType) or
1168 not. The macro *must* be disabled in default builds of the library
1169 for patent reasons.
1170
1171 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1172 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1173 isn't defined at compile time. This only changes the content of the
1174 rendered glyph to match the one of normal gray-level rendering,
1175 hence clients should not need to be modified.
1176
1177 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001178
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011792006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1180
1181 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1182 LWFN fails and both are available.
1183
David Turnerf3050052006-09-11 12:00:32 +000011842006-09-11 David Turner <david@freetype.org>
1185
Werner Lembergf9644552006-09-12 13:48:10 +00001186 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1187 report their English names through an Apple Roman
1188 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001189
Werner Lembergf9644552006-09-12 13:48:10 +00001190 If the font uses another name entry with language_id == English, it
1191 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001192
Werner Lembergf9644552006-09-12 13:48:10 +00001193 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1194 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001195
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011962006-09-05 Werner Lemberg <wl@gnu.org>
1197
1198 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001199 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001200 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1201 `HAN NOM B.ttf').
1202
1203 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1204
David Turner772e55d2006-09-05 09:45:15 +000012052006-09-05 David Turner <david@freetype.org>
1206
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001207 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001208
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001209 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1210 (TRaster): Remove `count_ex' and `count_ey'.
1211 (gray_find_cell): Remove 2nd and 3rd argument.
1212 (gray_alloc_cell): Merged with `gray_find_cell'.
1213 (gray_record_cell): Simplify.
1214 (gray_set_cell): Rewrite.
1215 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1216 (gray_render_span): Don't use FT_MEM_SET for small values.
1217 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1218 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1219 bitmap scanline.
1220 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001221
David Turneraa557a92006-09-04 16:42:44 +000012222006-09-04 David Turner <david@freetype.org>
1223
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001224 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1225 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001226
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012272006-09-03 Werner Lemberg <wl@gnu.org>
1228
1229 * devel/ftoption.h: Synchronize with
1230 include/freetype/config/ftoption.h.
1231
1232 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1233 variable declaration.
1234 (gray_convert_glyph): Fix compiler warnings.
1235
David Turner6d79f212006-09-01 14:09:35 +000012362006-09-01 David Turner <david@freetype.org>
1237
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001238 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1239 to recognize a few fonts that require the automatic unpatented
1240 loader.
David Turnerbd502952006-09-01 19:05:24 +00001241
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001242 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1243 rasterizer. The speed improvement is between 15% and 25%, depending
1244 on the font data.
1245
1246 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1247 (TCell): Redefine.
1248 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1249 (gray_init_cells): Updated.
1250 (gray_find_cell, gray_alloc_cell): New functions.
1251 (gray_record_cell): Rewritten to use `gray_find_cell' and
1252 `gray_alloc_cell'.
1253 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1254 QSORT_THRESHOLD):
1255 Removed.
1256 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1257 gray_dump_cells): Removed.
1258 (gray_sweep): Rewritten.
1259 (gray_convert_glyph): Rewrite code which used one of the sorting
1260 functions.
1261 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001262
Werner Lembergd898aed2006-08-29 09:50:34 +000012632006-08-29 Dr. Werner Fink <werner@suse.de>
1264
1265 * configure: Make it possible to handle configure options which
1266 have strings containing spaces.
1267
12682006-08-27 David Turner <david@freetype.org>
1269
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001270 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1271 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1272 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1273
1274 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1275 src/truetype/truetype.c, src/truetype/ttdriver.c,
1276 src/truetype/ttgload.c, src/truetype/ttgload.h,
1277 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1278 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1279 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1280
1281 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1282 member `force_autohint'.
1283
1284 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1285
1286 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1287 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001288
Jens Claudiusa787f452006-08-27 11:26:18 +000012892006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1290
1291 Fix miscellaneous compiler warnings.
1292
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001293 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1294 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001295
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001296 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1297 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1298 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001299
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001300 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1301 volatileness of argument to ft_longjmp. Spotted by Werner
1302 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001303
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001304 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1305 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001306
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001307 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1308 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001309
Werner Lembergc4c35b72006-08-27 08:03:46 +000013102006-08-27 Werner Lemberg <wl@gnu.org>
1311
1312 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1313 Reported by Jens.
1314
Jens Claudius088e44e2006-08-22 14:24:30 +000013152006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001316
Jens Claudius088e44e2006-08-22 14:24:30 +00001317 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001318 about addresses of volatile objects passed as function arguments as
1319 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001320
Werner Lembergc4c35b72006-08-27 08:03:46 +00001321 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1322 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001323
1324 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1325 argument `table' a pointer to a volatile object.
1326
1327 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1328 argument `table' a pointer to a volatile object.
1329
Jens Claudius2652bd52006-08-18 17:20:37 +000013302006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1331
1332 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1333 variable `_sfnt' as volatile since it must keep its value across
1334 a call to ft_setjmp.
1335 (gxv_validate): Same for local variables `memory' and `valid'.
1336 (classic_kern_validate): Same for local variables `memory',
1337 `ckern', and `valid'.
1338
1339 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1340 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1341 `jstf', and 'valid'.
1342
1343 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1344 local variable `cmap'.
1345
David Turner9fbfc6a2006-08-16 09:11:31 +000013462006-08-16 David Turner <david@freetype.org>
1347
Werner Lemberg12342992006-08-19 11:18:09 +00001348 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1349 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001350
Werner Lemberg12342992006-08-19 11:18:09 +00001351 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1352 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001353
David Turner33f5f242006-08-16 16:50:55 +00001354
Werner Lemberg12342992006-08-19 11:18:09 +00001355 Improvements to native TrueType hinting. This is a first try,
1356 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1357
1358 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1359 `extra_points2'.
1360
1361 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1362 `orus'.
1363
1364 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1365 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1366 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1367 handle `extra_points2'.
1368
1369 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1370 Remove compiler warning.
1371 (cur_to_arg): Remove macro.
1372 (TT_Hint_Glyph): Updated.
1373 (TT_Process_Simple_Glyph): Handle `orus'.
1374
1375 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1376 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1377 (LOC_Ins_IUP): Renamed to...
1378 (IUP_WorkerRec): This.
1379 Add `orus' member.
1380 (Shift): Renamed to...
1381 (_iup_worker_shift): This.
1382 Updated.
1383 (Interp): Renamed to...
1384 (_iup_worker_interpolate): This.
1385 Updated to handle `orus'.
1386 (Ins_IUP): Updated.
1387
1388 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1389 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001390
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013912006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1392
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001393 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001394 build ftvalid in ft2demos. This has been inadvertedly changed
1395 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001396
13972006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1398
Werner Lemberg12342992006-08-19 11:18:09 +00001399 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1400 Jens:
1401 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001402
Werner Lemberg12342992006-08-19 11:18:09 +00001403 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1404 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001405
1406 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1407
Jens Claudius9950adc2006-08-13 12:14:36 +000014082006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1409
Werner Lemberg12342992006-08-19 11:18:09 +00001410 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1411 T1_TOKEN_TYPE_KEY.
1412 (T1_FieldRec): Add `dict'.
1413 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1414 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1415 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001416
Werner Lemberg12342992006-08-19 11:18:09 +00001417 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1418 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001419
1420 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1421
1422 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001423 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1424 not T1_TOKEN_TYPE_ANY.
1425 (ps_parser_load_field): Make sure a token that should be a string or
1426 name is really a string or name.
1427 Avoid memory leak if a keyword has been already encountered and its
1428 value is overwritten.
1429 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1430 T1_FIELD_XXX.
1431 (parse_dict): Ignore keywords that occur in the wrong dictionary
1432 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001433
Werner Lemberg12342992006-08-19 11:18:09 +00001434 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1435 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001436
Werner Lemberg12342992006-08-19 11:18:09 +00001437 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1438 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001439
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014402006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1441
1442 Move creation of field `buildchar' of T1_DecoderRec out of
1443 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1444 of it.
1445
1446 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1447 and `T1_Compute_Max_Advance'.
1448
1449 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1450 Remove field `face', add `len_buildchar'.
1451
1452 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1453 field `buildchar'.
1454
1455 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1456 finisher for T1_Decoder.
1457 (cid_slot_load_glyph): Do not ignore failure when initializing the
1458 T1_Decoder.
1459
1460 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1461 Updated.
1462 (t1_decoder_init): Remove initialization of fields `buildchar' and
1463 `len_buildchar'.
1464 (t1_decoder_done): Remove deallocation of field `buildchar'.
1465
1466 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1467 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1468 T1_Decoder.
1469 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1470 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1471 case of error.
1472
1473 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1474 `buildchar' of T1_FaceRec.
1475
1476 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1477 `buildchar' of T1_FaceRec.
1478
Werner Lemberg1a380e02006-07-14 18:28:08 +000014792006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1480
1481 * freetype2/include/freetype/internal/psaux.h: New macros
1482 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1483 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1484 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1485 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1486 (T1_DecoderRec): New fields `buildchar' and `face'.
1487 (IS_PS_TOKEN): New macro.
1488
1489 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1490 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1491
1492 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1493 `default_design_vector' and `num_default_design_vector'.
1494
1495 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1496 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1497 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1498
1499 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1500 `token' argument to be NULL if we want only to count the number of
1501 tokens.
1502 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1503 want to skip the array.
1504 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1505 want to skip the array.
1506
1507 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1508 support for (partially commented out) othersubrs 19-25, 27, and 28.
1509 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1510 (t1_decoder_done): Release new field `buildchar'.
1511
1512 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1513 functions.
1514 (t1_keywords): Register them.
1515 (t1_allocate_blend): Updated.
1516 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1517 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1518 (parse_dict): Remove `keyword_flags' argument.
1519 Use new macro IS_PS_TOKEN.
1520 Changed function so that later PostScript definitions override
1521 earlier ones.
1522 (t1_init_loader): Initialize new field `keywords_encountered'.
1523 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1524 `len_buildchar'.
1525 Remove `keywords_flags'.
1526
1527 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1528 `keywords_encountered'.
1529 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1530
1531 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1532 New entries for parsing /NDV, /CDV, and /DesignVector.
1533
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015342006-07-07 Werner Lemberg <wl@gnu.org>
1535
1536 Add many checks to protect against malformed PCF files.
1537
1538 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1539 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1540
1541 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1542 data and check that tables don't overlap (using a simple
1543 bubblesort).
1544 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1545 New macros which give the size of data structures in the data
1546 stream.
1547 (pcf_get_properties): Use rough estimates to get array size limits.
1548 Assign `face->nprops' and `face->properties' earlier so that a call
1549 to PCF_Face_Done can do the clean-up in case of error.
1550 Protect against invalid string offsets.
1551 (pcf_get_metrics): Clean up code.
1552 Adjust tracing message levels.
1553 Use rough estimate to get array size limit.
1554 (pcf_get_bitmaps): Clean up code.
1555 Adjust tracing message levels.
1556 Use rough estimates to get offset limits.
1557 (pcf_get_encodings): Adjust tracing message level.
1558 (pcf_get_accel): Clean up code.
1559
Werner Lemberg8eb05252006-06-27 06:20:01 +000015602006-06-26 Werner Lemberg <wl@gnu.org>
1561
1562 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1563 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1564
Werner Lemberg24703f82006-06-26 19:12:51 +000015652006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1566
1567 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1568 (t1_decoder_parse_charstrings): Operator with
1569 opcode 15 pops its two arguments.
1570 Handle the case where the pops of an othersubr may be part of a
1571 subroutine.
1572 Handle unknown othersubrs gracefully: count their operands and let
1573 the following pop operators push the operands as the results onto
1574 the Type1 stack.
1575 Improve handling of setcurrentpoint opcode.
1576
Werner Lembergc011f4c2006-06-26 09:40:00 +000015772006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1578
1579 The Type 1 parser now skips over top-level procedures as required
1580 for a `Simplified Parser'. This makes the parser more robust as it
1581 doesn't poke around in PostScript code. Additionally, it makes the
1582 FontDirectory hackery in src/type1/t1load.c unnecessary.
1583
1584 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1585 (skip_literal_string): Add FT_Error as return value.
1586 Handle escapes better.
1587 (skip_string): Add FT_Error as return value.
1588 Don't set `parser->error' but return error code directly.
1589 (skip_procedure): New function.
1590 (ps_parser_skip_PS_token): Handle procedures.
1591 Update code.
1592 (ps_parser_to_token): Update code.
1593 (ps_parser_load_field_table): Handle bbox entries also.
1594
1595 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1596 Add commented-out code for synthetic fonts.
1597
Werner Lemberga2da05c2006-06-25 06:27:27 +000015982006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1599
1600 Fix two hinting bugs as reported in
1601 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1602
1603 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1604 `first_point' member.
1605
1606 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1607 `first_point'.
1608 (TT_Process_Composite_Glyph): Always untouch points.
1609
1610 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1611 `first_point' and `last_point' in case of composite glyphs.
1612 (Ins_IUP): Fix computation of `end_point'.
1613
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016142006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1615
Werner Lembergef3d2c22006-06-25 06:07:14 +00001616 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1617 Mac. The original patch was written by David Sachitano and Lawrence
1618 Coopet, and modified by Sean McBride for MPW compatibility. Only
1619 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001620
Werner Lembergef3d2c22006-06-25 06:07:14 +00001621 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1622 Mac OS X platforms.
1623 (OS_INLINE): Undefine before definition.
1624 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1625 FontAssociation table in FOND resource.
1626 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1627 and fontSize at each entry of FontAssociation table in FOND
1628 resource.
1629 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1630 ffStylOff of FamilyRecord header of FOND resource, the header,
1631 fontSize, fontID at each entry of FontAssociation table, and
1632 StyleMapping table.
1633 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001634
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016352006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1636
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001637 Public API of TrueTypeGX, OpenType, and classic kern table validator
1638 should return `FT_Err_Unimplemented_Feature' if validation service
1639 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001640 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001641 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1642
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001643 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1644 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1645 unavailable.
1646 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1647 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001648
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001649 * src/base/ftotval.c (FT_OpenType_Validate): Return
1650 FT_Err_Unimplemented_Feature if OpenType validation service is
1651 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001652
Werner Lembergb10e45a2006-06-08 07:32:56 +000016532006-06-08 Werner Lemberg <wl@gnu.org>
1654
1655 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1656 errors.
1657
David Turner5f1f7502006-06-07 05:11:50 +000016582006-06-07 David Turner <david@freetype.org>
1659
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001660 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1661 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1662 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001663
David Turner457b4a82006-06-06 08:14:14 +000016642006-06-06 David Turner <david@freetype.org>
1665
Werner Lemberg4836f952006-06-06 12:54:08 +00001666 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001667
Werner Lemberg4836f952006-06-06 12:54:08 +00001668 We change `ps_unicodes_init' so that it also takes a
1669 `free_glyph_name' callback to release the glyph names returned by
1670 `get_glyph_name'
1671
1672 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1673 Renamed to ...
1674 (PS_GetGlyphNameFunc): This.
1675 (PS_FreeGlyphNameFunc): New typedef.
1676 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1677
1678 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1679 argument.
1680 (cff_sid_free_glyph_name): New function.
1681 (cff_cmap_unicode_init): Updated.
1682
1683 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1684
1685 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1686 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001687
1688
David Turner09717352006-06-04 14:33:08 +000016892006-06-04 David Turner <david@freetype.org>
1690
Werner Lembergd724f202006-06-04 15:17:41 +00001691 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1692 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001693 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001694
Werner Lembergd724f202006-06-04 15:17:41 +00001695 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1696 of `face->num_glyphs' which missed the last glyph, due to
1697 the offset-by-1 computation, since the PFR format doesn't
1698 guarantee that glyph index 0 corresponds to the `missing
1699 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001700
Werner Lemberg33779662006-05-26 06:30:05 +000017012006-05-25 Werner Lemberg <wl@gnu.org>
1702
1703 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1704 `-no-undefined'. Reported by Christian Biesinger.
1705
Werner Lemberg24773d62006-05-20 08:53:13 +000017062006-05-19 Brian Weed <bw@imaginengine.com>
1707
1708 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1709 have debug information, and debug libraries use `C7 compatible'
1710 debug info.
1711
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017122006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1713
Werner Lemberga6523a62006-05-20 08:47:01 +00001714 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001715 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001716
Werner Lemberga6523a62006-05-20 08:47:01 +00001717 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1718 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001719
1720 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001721 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001722
17232006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1724
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001725 * build/unix/configure.raw: Add a fallback to disable Carbon
1726 dependency, if configured with no options on Mac OS X.
1727
17282006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1729
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001730 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001731 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001732 the second part of Savannah bug #16590.
1733
Werner Lemberg545c4e52006-05-17 22:55:04 +000017342006-05-18 Werner Lemberg <wl@gnu.org>
1735
1736 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1737 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1738
David Turnerdc3ff312006-05-17 12:59:35 +000017392006-05-17 David Turner <david@freetype.org>
1740
Werner Lemberg545c4e52006-05-17 22:55:04 +00001741 This is a major patch used to drastically improve the performance of
1742 loading glyphs. This both speeds up loading the glyph vectors
1743 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001744
Werner Lemberg545c4e52006-05-17 22:55:04 +00001745 We now use inline assembler code with GCC to implement `FT_MulFix',
1746 which is probably the most important function related to the
1747 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001748
Werner Lemberg545c4e52006-05-17 22:55:04 +00001749 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001750
1751
Werner Lemberg545c4e52006-05-17 22:55:04 +00001752 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1753 `cursor' and `limit'.
1754
1755 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1756 New functions.
1757 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1758 [TEST]: Remove.
1759
1760 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1761 code.
1762
1763 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1764 `FT_ZERO'
1765 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1766 (af_glyph_hints_reload: Rewrite recognition of weak points.
1767
1768 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1769 constant values out of the loops.
1770
1771 * src/autofit/aftypes.h: Updated.
1772
1773 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1774
1775 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1776 product to get orientation.
1777
1778 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1779 (FT_Stream_OpenGzip): Use it to handle small files directly in
1780 memory.
1781
1782 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1783 Improve performance.
1784
1785 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1786 `limit'.
1787
1788 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1789 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1790 exceedingly large values of number of contours. Speed up by
1791 reducing the number of loops.
1792
1793 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1794
1795
1796 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1797 used to detect rogue clients from 4 to 16. This is to prevent some
1798 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1799 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001800
Werner Lembergde2d90a2006-05-17 08:54:30 +000018012007-05-17 Werner Lemberg <wl@gnu.org>
1802
1803 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001804 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001805
18062006-05-16 Werner Lemberg <wl@gnu.org>
1807
1808 * docs/PROBLEMS: Updated icl issues.
1809
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001810----------------------------------------------------------------------------
1811
Werner Lemberg42b63b22007-01-21 21:01:33 +00001812Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001813David Turner, Robert Wilhelm, and Werner Lemberg.
1814
1815This file is part of the FreeType project, and may only be used, modified,
1816and distributed under the terms of the FreeType project license,
1817LICENSE.TXT. By continuing to use, modify, or distribute this file you
1818indicate that you have read the license and understand and accept it
1819fully.
1820
1821
1822Local Variables:
1823version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001824coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001825End: