blob: f356f81e3e979592b9422d5680b82245fc75bfbb [file] [log] [blame]
Werner Lemberg9f83e052007-04-05 02:28:23 +000012007-04-04 Werner Lemberg <wl@gnu.org>
2
3 * Version 2.3.3 released.
4 =========================
5
6
7 Tag sources with `VER-2-3-3'.
8
9 * docs/CHANGES: Mention CVE-2007-1351.
10
David Turner7338ec22007-04-03 14:30:34 +0000112007-04-03 David Turner <david@freetype.org>
12
13 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000014 if one of the resolution values is 0, treat it as if it were the
15 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000016
David Turnere6472c12007-04-02 13:13:54 +0000172007-04-02 David Turner <david@freetype.org>
18
Werner Lemberg94f12272007-04-03 07:19:53 +000019 Add special code to detect `extra-light' fonts and do not snap their
20 stem widths too much to avoid bizarre hinting effects.
21
22 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
23 `extra_light' members.
24
25 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
26 them.
27 (af_latin_metrics_scale_dim): Set `extra_light'.
28 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000029
David Turner3f539692007-03-28 14:53:40 +0000302007-03-28 David Turner <david@freetype.org>
31
Werner Lemberg644b1ad2007-03-28 21:17:11 +000032 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000033 padding.
34
Werner Lemberga08b2172007-03-28 07:17:17 +0000352007-03-28 Werner Lemberg <wl@gnu.org>
36
37 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
38 gracefully.
39 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000040 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000041 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
42 number of code points in Unicode.
43
Werner Lemberg644b1ad2007-03-28 21:17:11 +000044 * builds/win32/visualc/index.html,
45 builds/win32/visualc/freetype.dsp,
46 builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
47 s/232/233/.
48
49 * docs/CHANGES: Mention ftdiff.
50
David Turner3b242d32007-03-26 12:03:04 +0000512007-03-26 David Turner <david@freetype.org>
52
Werner Lemberg644b1ad2007-03-28 21:17:11 +000053 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
54 corresponding code.
55 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000056
Werner Lemberga08b2172007-03-28 07:17:17 +000057 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000058 computations in order to ignore single-point contours. These are
59 never rasterized and correspond in certain fonts to mark-attach
60 points that are very far from the glyph's real outline, ruining the
61 computation.
David Turnerf58caa02007-03-26 12:39:25 +000062
Werner Lemberga08b2172007-03-28 07:17:17 +000063 * src/autofit/afloader.c (af_loader_load_g): In the case of
64 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
65 Otherwise code that uses them will most certainly ruin the fixed
66 advance property.
David Turner23553d62007-03-26 13:37:17 +000067
Werner Lemberg644b1ad2007-03-28 21:17:11 +000068 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
69 documentation and bump version number to 2.3.3.
70
71 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
72
73 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +000074
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000752007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
76
Werner Lemberg644b1ad2007-03-28 21:17:11 +000077 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
78 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000079 * builds/vms/ftconfig.h: Ditto.
80 * include/freetype/config/ftconfig.h: Ditto.
81
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000822007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
83
Werner Lemberg14ffe092007-03-22 06:12:43 +000084 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
85 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000086 proposed by Sean McBride:
87 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
88
892007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
90
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000091 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
92 setjmp, proposed by Sean McBride:
93 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
94
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000952007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
96
Werner Lembergc9f6c662007-03-21 13:30:14 +000097 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
98 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
99 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000100
David Turner74c34eb2007-03-18 07:19:31 +00001012007-03-18 David Turner <david@freetype.org>
102
Werner Lembergc9f6c662007-03-21 13:30:14 +0000103 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
104 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000105
Werner Lembergc9f6c662007-03-21 13:30:14 +0000106 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000107
David Turner89020d92007-03-17 17:48:57 +00001082007-03-17 David Turner <david@freetype.org>
109
Werner Lembergc9f6c662007-03-21 13:30:14 +0000110 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
111 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000112
Werner Lemberg25d592a2007-03-09 07:59:35 +00001132007-03-09 Werner Lemberg <wl@gnu.org>
114
115 * Version 2.3.2 released.
116 =========================
117
118
119 Tag sources with `VER-2-3-2'.
120
121 * builds/win32/visualc/index.html,
122 builds/win32/visualc/freetype.dsp,
123 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
124 s/231/232/.
125
David Turner3a51afa2007-03-08 10:50:38 +00001262007-03-08 David Turner <david@freetype.org>
127
Werner Lemberg25d592a2007-03-09 07:59:35 +0000128 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000129
Werner Lemberg25d592a2007-03-09 07:59:35 +0000130 * builds/unix/configure.raw (version_info): Set to 9:13:3.
131
132 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
133
134 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000135
Werner Lemberg1e259de2007-03-08 15:39:21 +0000136 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
137 function to work properly, over-writing user-provided buffers in
138 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000139
David Turner121cad52007-03-08 16:43:50 +0000140
Werner Lemberg3d92f082007-03-06 11:59:24 +00001412007-03-05 Werner Lemberg <wl@gnu.org>
142
143 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
144 macro for `strstr'.
145
146 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
147 `trick_names', as suggested by Ivan Nincic.
148
David Turner085bc6e2007-03-05 17:40:03 +00001492007-03-05 David Turner <david@freetype.org>
150
Werner Lembergd112cf02007-03-06 12:06:56 +0000151 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
152 case FT_Init_FreeType fails for some reason. Problem reported by
153 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000154
Werner Lembergd112cf02007-03-06 12:06:56 +0000155 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
156 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
157 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
158 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000159
Werner Lembergd112cf02007-03-06 12:06:56 +0000160 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
161 signed values, not unsigned ones. Problem reported by Johannes
162 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000163
David Turner601aefe2007-02-21 16:47:49 +00001642007-02-21 David Turner <david@freetype.org>
165
Werner Lembergde5e6862007-02-25 21:06:43 +0000166 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
167 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000168
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001692007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
170
171 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
172 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
173 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
174
Werner Lemberga0915172007-02-16 08:12:50 +00001752007-02-16 Werner Lemberg <wl@gnu.org>
176
177 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
178 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
179
David Turner2c4500e2007-02-14 15:08:47 +00001802007-02-14 David Turner <david@freetype.org>
181
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000182 It seems that the following changes fix most of the known
183 interpreter problems with my fonts, but more testing is needed,
184 though.
185
186 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
187 (TT_MulFix14): Rewrite.
188 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
189 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000190
Werner Lembergc6a14082007-02-12 22:08:15 +00001912007-02-12 Werner Lemberg <wl@gnu.org>
192
193 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
194 warnings.
195
196 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
197 (bdf_interpret_style): Ditto.
198
David Turnerc0f9c4a2007-02-12 14:55:03 +00001992007-02-12 David Turner <david@freetype.org>
200
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000201 Simplify projection and dual-projection code interface.
202
Werner Lemberg406d25f2007-02-12 22:01:18 +0000203 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
204 FT_Vector' as argument type.
205 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
206 Updated.
207 (CUR_fast_project, CUR_fast_dualproj): New macros.
208 (Project, Dual_Project, Project_x, Project_y): Updated.
209 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
210 macros.
211
212
213 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
214 adjustments for the non-light auto-hinted modes. Gets rid of
215 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000216
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000217 * src/autofit/aflatin.c (af_latin_hints_link_segments,
218 af_latin_hints_compute_edges): Slight optimization of the segment
219 linker and better handling of serif segments to get rid of broken
220 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000221
David Turnerc0f9c4a2007-02-12 14:55:03 +0000222
Werner Lemberg442bfb82007-02-12 21:44:10 +0000223 Introduce new string functions and the corresponding macros to get
224 rid of various uses of strcpy and other `evil' functions, as well as
225 to simplify a few things.
226
227 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
228 ft_mem_strcpyn): New declarations.
229 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
230 macros.
231 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
232 functions.
233
234 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
235 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
236 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
237 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
238 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
239 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
240 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
241 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000242
Werner Lemberg406d25f2007-02-12 22:01:18 +0000243 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
244
Werner Lemberg582067d2007-02-11 15:03:05 +00002452007-02-11 Werner Lemberg <wl@gnu.org>
246
247 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
248 non-spacing glyphs.
249
Werner Lemberg8f474532007-02-07 08:31:01 +00002502007-02-07 Tom Parker <palfrey@tevp.net>
251
252 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
253 pointer.
254
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002552007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
256
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000257 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
258 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000259 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000260 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
261 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
262 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
263 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000264
265 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
266 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000267 * builds/mac/ftmac.c: Ditto.
268
2692007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
270
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000271 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000272 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000273 #include <ftmac.c>.
274
2752007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
276
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000277 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
278 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
279 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
280 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
281 FT_GetFilePath_From_Mac_ATS_Name.
282 * builds/mac/ftmac.c: Ditto.
283
2842007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
285
Werner Lembergdcbb7082007-02-08 08:54:09 +0000286 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000287 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
288 for passing to FT_New_Face_From_FSSpec.
289
2902007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
291
Werner Lembergdcbb7082007-02-08 08:54:09 +0000292 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000293 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000294
295 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
296 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000297 * builds/mac/ftmac.c (OS_INLINE): Ditto.
298
Werner Lemberg313d7772007-02-01 08:10:45 +00002992007-02-01 Werner Lemberg <wl@gnu.org>
300
301 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
302 Explain why applications shouldn't use it. Found by Alexei.
303
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003042007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000305
306 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
307 message.
308
309 * src/gxvalid/gxvmort1.c
310 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
311 message.
312
Werner Lemberg53935932007-01-31 08:53:02 +00003132007-01-31 Werner Lemberg <wl@gnu.org>
314
315
316 * Version 2.3.1 released.
317 =========================
318
319
320 Tag sources with `VER-2-3-1-FINAL'.
321
322 * builds/win32/visualc/freetype.dsp,
323 builds/win32/visualc/freetype.vcproj: s/230/231/.
324 * builds/win32/visualc/index.html: s/221/231/.
325
326 * vms_make.com: Add `ftgasp'.
327
David Turnera7ee6082007-01-30 10:33:53 +00003282007-01-30 David Turner <david@freetype.org>
329
Werner Lemberg53935932007-01-31 08:53:02 +0000330 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000331
Werner Lemberg53935932007-01-31 08:53:02 +0000332 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000333
Werner Lemberg25d592a2007-03-09 07:59:35 +0000334 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000335 s/2.3.0/2.3.1/.
336
337 * builds/unix/configure.raw (version_info): Set to 9:12:3.
338
339
340 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
341 (af_loader_load_g): Disable the warper (i.e., the light hinting
342 improvements) to make a 2.3.1 bugfix release before introducing a
343 new feature. This should give us more time to tune and improve the
344 warper for the next release.
345
346 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000347
David Turnerd91eebd2007-01-26 15:05:41 +00003482007-01-25 David Turner <david@freetype.org>
349
Werner Lembergbf241762007-01-26 16:08:49 +0000350 For light auto-hinting, improve glyph advance widths and resurrect
351 normal/full hinting to its normal quality.
352
353 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
354 and `xmax_delta'.
355 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
356 and `xmax_delta'.
357
358 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
359 preprocessor conditional with if-clause, handling both light and
360 normal mode.
361
362 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
363 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000364
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003652007-01-25 Werner Lemberg <wl@gnu.org>
366
367 * docs/release: Updated -- Savannah uses a new uploading scheme.
368
David Turnera42567b2007-01-25 12:23:37 +00003692007-01-25 David Turner <david@freetype.org>
370
Werner Lembergd7855662007-01-25 13:53:56 +0000371 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000372
Werner Lembergd7855662007-01-25 13:53:56 +0000373 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
374 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
375 functions.
David Turnera42567b2007-01-25 12:23:37 +0000376
Werner Lembergd7855662007-01-25 13:53:56 +0000377 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000378
Werner Lembergb1be9e82007-01-25 11:50:00 +00003792007-01-25 Werner Lemberg <wl@gnu.org>
380
381 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000382 correctly in a sanity check. Since this function is only used to
383 load local and global functions, any charstring that called the last
384 local/global function would fail otherwise. This fixes Savannah bug
385 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000386
387 * docs/CHANGES: Document it.
388
David Turnerb6de8d12007-01-23 15:51:50 +00003892007-01-23 David Turner <david@freetype.org>
390
Werner Lembergb1be9e82007-01-25 11:50:00 +0000391 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
392 prevented compilation when disabling both the unpatented and the
393 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000394
Werner Lembergb1be9e82007-01-25 11:50:00 +0000395
396 Fix and enable the warper to improve `light' hinting mode. This is
397 not necessarily a final version, but it seems to work well.
398
399 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
400 Disable code.
401 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
402 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
403
404 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
405 (af_warper_compute_line_best): Fix array size of `scores'.
406 (af_warper_compute): Better handling of border cases.
407 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
408 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000409
Werner Lemberg011d1112007-01-21 09:36:00 +00004102007-01-21 Werner Lemberg <wl@gnu.org>
411
Werner Lemberg42b63b22007-01-21 21:01:33 +0000412 * ChangeLog: Split off older entries into...
413 * ChangeLog.22: This new file.
414
4152007-01-21 Werner Lemberg <wl@gnu.org>
416
Werner Lemberg555258f2007-01-21 09:46:37 +0000417 * docs/CHANGES: Document SHZ fix.
418
4192007-01-21 George Williams <gww@silcom.com>
420
421 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
422 points.
423
4242007-01-21 Werner Lemberg <wl@gnu.org>
425
Werner Lemberg011d1112007-01-21 09:36:00 +0000426 * src/sfnt/ttmtx.c (tt_face_get_metrics)
427 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
428
Werner Lemberg87a5a432007-01-17 12:44:39 +00004292007-01-17 Werner Lemberg <wl@gnu.org>
430
Werner Lembergb8003292007-01-17 12:56:25 +0000431
432 * Version 2.3.0 released.
433 =========================
434
435
436 Tag sources with `VER-2-3-0-FINAL'.
437
4382007-01-17 Werner Lemberg <wl@gnu.org>
439
Werner Lemberg87a5a432007-01-17 12:44:39 +0000440 * docs/release: Updated.
441
David Turner22122722007-01-16 20:06:44 +00004422007-01-16 David Turner <david@freetype.org>
443
Werner Lemberg87a5a432007-01-17 12:44:39 +0000444 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
445 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
446 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
447 warnings.
David Turner22122722007-01-16 20:06:44 +0000448
Werner Lemberg267e1d72007-01-15 07:48:09 +00004492007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
450
451 * builds/amiga/makefile, builds/amiga/makefile.os4,
452 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
453
454 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
455
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004562007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
457
458 Fix various compiler warnings.
459
460 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
461 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
462 s/index/strike_index/.
463 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
464
465 * src/gxvalid/gxvmorx5.c
466 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
467
468 * src/truetype/ttinterp.c (Compute_Point_Displacement),
469 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
470 uninitialized variables.
471
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004722007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
473
474 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
475
Werner Lemberg281c1482007-01-13 22:50:51 +00004762007-01-13 Werner Lemberg <wl@gnu.org>
477
478 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
479 versions up to 0x3FF without complaining.
480
Werner Lembergac250b22007-01-13 14:01:36 +00004812007-01-13 Derek Clegg <dclegg@apple.com>
482
483 Add FT_Get_PS_Font_Info interface to CFF driver.
484
485 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
486 (CFF_FontRec): Add `font_info' field.
487
488 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
489 (cff_font_done): Free font->font_info if necessary.
490
491 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
492 (cff_service_ps_info): Register cff_ps_get_font_info.
493
Werner Lemberg23df31a2007-01-13 08:45:00 +00004942007-01-13 Werner Lemberg <wl@gnu.org>
495
496 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
497 with C++ compiler.
498
499 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
500 af_glyph_hints_dump_edges): Ditto.
501
502 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
503 `modules.cfg').
504
505 * src/sfnt/ttsbit0.h: Remove.
506
507 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
508
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005092007-01-12 David Turner <david@freetype.org>
510
511 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
512 bug in the bitmap emboldener if the pitch of the source bitmap is
513 much larger than its width.
514
515 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
516 compilation warning.
517
Werner Lemberg6d96d312007-01-12 10:30:19 +00005182007-01-12 Werner Lemberg <wl@gnu.org>
519
520 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
521 `automake' CVS module from sources.redhat.com.
522
Werner Lemberg17432b52007-01-12 09:28:44 +00005232007-01-11 Werner Lemberg <wl@gnu.org>
524
525 * src/type1/t1load.c (is_space): Removed.
526 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
527 (parse_charstrings): Use IS_PS_TOKEN.
528
529
530 * autogen.sh: Avoid bash specific syntax.
531
David Turner038ace22007-01-11 15:00:59 +00005322007-01-11 David Turner <david@freetype.org>
533
Werner Lemberg17432b52007-01-12 09:28:44 +0000534 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000535
Werner Lemberg17432b52007-01-12 09:28:44 +0000536 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000537
Werner Lemberg17432b52007-01-12 09:28:44 +0000538 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
539 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000540 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000541
Werner Lemberg17432b52007-01-12 09:28:44 +0000542 * autogen.sh: Small fix to get it working on Mac OS X properly:
543 The issue is that GNU libtool is called `glibtool' on this platform,
544 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000545
David Turner2628ea92007-01-10 13:15:56 +00005462007-01-10 David Turner <david@freetype.org>
547
Werner Lemberg17432b52007-01-12 09:28:44 +0000548 * all-sources: Tag all sources with VER-2-3-0-RC1 and
549 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000550
Werner Lemberg17432b52007-01-12 09:28:44 +0000551 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
552 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
553 version number to 2.3.0.
554
555 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
556 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000557
558 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000559 include/freetype/ftlcdfil.h: Update reference documentation with
560 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000561
Werner Lemberg17432b52007-01-12 09:28:44 +0000562 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
563 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000564
Werner Lembergbf02d392007-01-10 07:07:37 +00005652007-01-10 Derek Clegg <dclegg@apple.com>
566
567 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
568 values.
569
David Turnerf48b60e2007-01-08 15:15:32 +00005702007-01-08 David Turner <david@freetype.org>
571
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000572 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000573
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000574 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
575 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000576 corresponding to a given character pixel size.
577
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000578 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
579 `gasp' table, in order to avoid potential problems with later
580 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000581
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000582 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
583 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000584
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000585 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
586 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
587 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
588 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000589
Werner Lemberge6b6f372007-01-07 00:06:47 +00005902007-01-07 Werner Lemberg <wl@gnu.org>
591
Werner Lembergb8004d22007-01-07 09:13:38 +0000592 * src/cid/cidparse.c (cid_parser_new): Improve error message for
593 Type 11 fonts.
594 Scan for `/sfnts' token.
595
5962007-01-07 Werner Lemberg <wl@gnu.org>
597
598 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000599
Werner Lembergbe5f7972007-01-06 07:51:48 +00006002007-01-06 Werner Lemberg <wl@gnu.org>
601
602 * src/cff/cffload.c (cff_index_init): Remove unused variable.
603 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
604
David Turnera8cf42b2007-01-04 16:46:46 +00006052007-01-04 David Turner <david@freetype.org>
606
Werner Lembergf6294392007-01-06 07:47:45 +0000607 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
608 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000609
Werner Lembergf6294392007-01-06 07:47:45 +0000610
611 Do not allocate interpreter-specific tables in memory if we are not
612 going to load glyphs with the bytecode interpreter anyway.
613
614 * src/truetype/ttgload.c (tt_loader_init): Load execution context
615 only if glyph is hinted.
616 Updated.
617 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
618 and `cvs_ready'.
619 Add `tt_size_ready_bytecode' declaration.
620 * src/truetype/ttobjs.c (tt_size_done_bytecode,
621 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
622 (tt_size_init): Move most code into `tt_size_init_bytecode'.
623 (tt_size_done): Move most code into `tt_size_done_bytecode'.
624 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000625
David Turner91a34022007-01-05 14:47:08 +0000626
Werner Lembergf6294392007-01-06 07:47:45 +0000627 Don't extract the metrics table from the SFNT font file. Instead,
628 reparse it on each glyph load. The runtime difference is not
629 noticeable, and it can save a lot of heap memory when memory-mapped
630 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000631
Werner Lembergf6294392007-01-06 07:47:45 +0000632 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
633 `horz_metrics_offset' and `vert_metrics_ofset'.
634 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
635 Updated.
636
637
638 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
639
640
641 Do not load the CFF index offsets into memory, since this wastes a
642 *lot* of heap memory with large Asian CFF fonts. There is no
643 significant performance loss.
644
645 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
646 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
647 `data_size'.
648 (CFF_CharsetRec): Add field `num_glyphs'.
649
650 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
651 cff_charset_cid_to_gindex): New functions.
652 (cff_new_index): Renamed to...
653 (cff_index_init): This. Update all callers.
654 Updated -- some code has been moved to `cff_index_load_offsets'.
655 (cff_done_index): Renamed to...
656 (cff_index_done): This. Update all callers.
657 (cff_index_get_pointers, cff_index_access_element): Updated to use
658 stream offsets.
659 (cff_charset_compute_cids): Set `num_glyphs' field.
660 (cff_encoding_load): Updated.
661
662 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000663
6642007-01-04 David Turner <david@freetype.org>
665
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000666 * docs/INSTALL.UNIX: Simplify some parts, add reference to
667 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000668
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000669 * README.CVS: Add common problem description and solution
670 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000671
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000672 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000673
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000674 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000675
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000676 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000677
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000678 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
679 (TWorker): This.
680 Remove `count_table' and `memory'.
681 Make `grays' a pointer.
682 (TRaster): New structure.
683 (count_table): New static array.
684 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
685 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
686 ft_black_set_mode, ft_black_render): Updated.
687 (ft_black_init): Don't initialize `count_table'.
688 (ft_black_reset): Use the render pool. This saves about 6KB of
689 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000690
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000691 * src/smooth/ftgrays.c (TRaster): Replaced with...
692 (TWorker): This.
693 Remove `memory'.
694 (TRaster): New structure.
695
696 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
697 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
698 gray_render_span, gray_raster_render): Updated.
699 (gray_raster_reset): Use the render pool. This saves about 6KB of
700 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000701
David Turner8a6c44e2007-01-04 17:03:11 +0000702 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
703 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000704 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
705 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
706 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000707
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000708 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
709 Remove a typo that results in no hinting and a memory leak with some
710 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000711
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000712 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000713 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000714 CFF_Faces in it. We need to close all faces before destroying the
715 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000716
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007172007-01-02 Werner Lemberg <wl@gnu.org>
718
719 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
720 Remove compiler warning.
721
David Turner9207e002007-01-02 16:58:13 +00007222007-01-02 David Turner <david@freetype.org>
723
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000724 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000725
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007262006-12-31 Masatake YAMATO <jet@gyve.org>
727
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000728 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
729 function.
730 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000731 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000732 `gxv_kern_subtable_fmt0_pairs_validate'.
733
David Turner115b4422006-12-22 11:37:05 +00007342006-12-22 David Turner <david@freetype.org>
735
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000736 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
737 warnings.
David Turner115b4422006-12-22 11:37:05 +0000738
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000739 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
740 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000741
Werner Lemberg4755bf72006-12-16 08:58:44 +00007422006-12-16 Anders Kaseorg <anders@kaseorg.com>
743
744 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
745 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
746
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007472006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
748
Werner Lemberg9b774e22007-01-16 06:11:27 +0000749 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000750 sync with the modification by Jens Claudius on 2006-08-22; cf.
751 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 +0000752
7532006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
754
755 * src/base/ftmac.c: Specialized for Mac OS X only.
756 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
757 * builds/unix/configure.raw: Ditto. When explicit switches for
758 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
759 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
760
7612006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
762
763 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
764 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
765 instead of src/base/ftmac.c
766 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
767 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
768 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
769 that cannot be built at present.
770
7712006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
772
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000773 * src/base/ftobjs.c: Improvement of resource fork handler for
774 POSIX, cf.
775 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000776 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
777 format or .dfont, to simulate the face index number counted by ftmac.c.
778 (IsMacResource): Return the number of scalable faces correctly.
779
Werner Lembergec5b4502006-12-10 07:51:38 +00007802006-12-10 Werner Lemberg <wl@gnu.org>
781
782 * builds/toplevel.mk (version): Protect against `distclean' target.
783
Werner Lembergb26b3142006-12-09 20:01:43 +00007842006-12-09 Werner Lemberg <wl@gnu.org>
785
786 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
787 or `type'.
788
789 * builds/freetype.mk (version): Extracted from freetype.h, using
790 GNU make's built-in string functions.
791 (refdoc): Use $(version) instead of static version number.
792
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007932006-12-08 Werner Lemberg <wl@gnu.org>
794
795 * builds/toplevel.mk (dist): Extract version number from freetype.h.
796
Werner Lemberg15c29502006-12-09 07:29:54 +00007972006-12-08 Vladimir Volovich <vvv@vsu.ru>
798
799 * src/tools/apinames (State): Remove final comma in structure -- xlc
800 v5 under AIX 4.3 doesn't like this.
801
David Turnerdbf3b432006-12-07 21:18:09 +00008022006-12-07 David Turner <david@freetype.org>
803
Werner Lemberg256a3512006-12-08 06:49:33 +0000804 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
805 to the spacing of auto-fitted glyphs. This only impacts rare
806 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000807
Werner Lemberg11171312006-12-03 09:43:40 +00008082006-12-03 Werner Lemberg <wl@gnu.org>
809
810 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
811
Werner Lemberg960ba592006-12-01 08:20:47 +00008122006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000813
Werner Lemberg960ba592006-12-01 08:20:47 +0000814 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
815 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
816 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000817
David Turner80658e52006-11-28 08:09:20 +0000818
Werner Lemberg960ba592006-12-01 08:20:47 +0000819 * include/freetype/ftxf86.h: Fix and extend comment so that it
820 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000821
Werner Lemberg960ba592006-12-01 08:20:47 +0000822 * include/freetype/ftchapters.h: Add `font_format' section.
823
824
825 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
826 to TOC in index page.
827
8282006-11-28 David Turner <david@freetype.org>
829
830 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
831 trying to render into a zero-width/height bitmap, not an error code.
832
833 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
834
835 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
836 ones instead.
837
838 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
839 variable.
David Turner80658e52006-11-28 08:09:20 +0000840
Werner Lemberg8636c292006-11-26 22:28:13 +00008412006-11-26 Pierre Hanser <hanser@club-internet.fr>
842
843 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
844
Werner Lemberg960ba592006-12-01 08:20:47 +00008452006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000846
Werner Lemberg960ba592006-12-01 08:20:47 +0000847 * src/autofit/afhints.c (af_glyph_hints_dump_points,
848 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
849 Add stubs to link the `ftgrid' test program when debugging is
850 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000851
Werner Lemberg960ba592006-12-01 08:20:47 +00008522006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000853
854 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000855 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
856
857 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
858 Emit more sensible information.
859
860 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
861
862 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
863 rounding of blue values.
864 (af_latin_hints_compute_segments): Hint segment heights.
865 (af_latin_hints_link_segments): Reduce `len_score' value.
866 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
867 value and use `height' member for comparisons.
868 (af_latin_hint_edges): Extend logging message.
869 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000870
Werner Lemberg91959bf2006-11-22 10:36:55 +00008712006-11-22 Werner Lemberg <wl@gnu.org>
872
873 Fix Savannah bug #15553.
874
875 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
876 program after a change from mono to grayscaling (and vice versa).
877 Use correct constant for comparison to get `exec->grayscale'.
878
Werner Lemberg913a3652006-11-19 09:19:17 +00008792006-11-18 Werner Lemberg <wl@gnu.org>
880
881 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000882 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000883 This patch fixes Savannah bug #18301.
884
885 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
886 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
887 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
888 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
889 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
890 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
891 (FNT_Load_Glyph): Check validity of `glyph_index'.
892
David Turner7bab6ae2006-11-13 11:25:06 +00008932006-11-13 David Turner <david@freetype.org>
894
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000895 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
896 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000897
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000898 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
899 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
900 when building the library to change the default LCD filter to be
901 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000902
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000903 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000904
David Turner8765c712006-11-10 16:49:42 +00009052006-11-10 David Turner <david@freetype.org>
906
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000907 * src/smooth/ftsmooth.c: API change for the LCD
908 filter. The FT_LcdFilter value is an enumeration describing which
909 filter to apply, with new values FT_LCD_FILTER_LIGHT and
910 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
911 algorithm which produces strong color fringes for everything
912 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000913
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000914 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
915 second parameter to an enum type.
916
917 * src/base/ftlcdfil.c (USE_LEGACY): Define.
918 (_ft_lcd_filter): Rename to...
919 (_ft_lcd_filter_fir): This.
920 Update parameters.
921 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
922 (FT_Library_Set_LcdFilter): Update parameters.
923 Handle new filter modes.
924
925 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
926 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
927 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
928 callback and update other fields.
929
930 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
931 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
932 Other minor improvements.
933
934 * src/autofit/aflatin.c: Various tiny improvements that drastically
935 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
936 (af_latin_hints_compute_edges): Fix typo.
937 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000938
David Turner4e9cc3c2006-11-09 16:31:52 +00009392006-11-09 David Turner <david@freetype.org>
940
Werner Lemberg49c77a82006-11-09 21:51:57 +0000941 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
942 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000943
Werner Lemberg5e430892006-11-07 09:35:03 +00009442006-11-07 Zhe Su <james.su@gmail.com>
945
946 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
947 also.
948
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009492006-11-03 Werner Lemberg <wl@gnu.org>
950
951 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
952
David Turner40604742006-11-02 16:37:35 +00009532006-11-02 David Turner <david@freetype.org>
954
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000955 Add a few tweaks to better handle serif fonts.
956 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000957
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000958 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
959 segments that are less than 1.5 pixels high. This gets rid of
960 *many* corner cases with serifs.
961 (af_latin_align_linked_edge): Add logging message.
962 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
963 Add logging messages.
964 Handle AF_EDGE_FLAG flag specially.
965
966 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
967 _af_debug_disable_blue_hints, and _af_debug_hints variables.
968
969 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
970 Update external declarations.
971 (af_corner_orientation, af_corner_is_flat): Replaced by...
972
973 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
974 ft_corner_is_flat): These declarations.
975
976 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
977 Comment out. Replaced by...
978
979 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
980 These functions. Update all callers.
981 (FT_Add64) [!FT_LONG64]: Simplify.
982
983 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
984 (af_direction_compute): Add a missing FT_ABS call. This bug caused
985 production of garbage by missing lots of segments.
986
987 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
988
989 * src/autofit/afloader.c (af_loader_init, af_loader_done)
990 [AF_DEBUG]: Set _af_debug_hints.
991
992
993 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
994 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
995 and ft_corner_orientation.
996
997
998 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000999
Werner Lemberge88c5262006-10-24 05:46:26 +000010002006-10-24 Werner Lemberg <wl@gnu.org>
1001
1002 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1003
1004 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1005 as argument.
1006
David Turnera1861392006-10-23 16:00:59 +000010072006-10-23 Zhe Su <zsu@novell.com>
1008
Werner Lemberg715e96e2006-10-24 05:28:45 +00001009 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1010 better deal with broken Asian fonts with strange glyphs, having
1011 self-intersections and other peculiarities. The used algorithm is
1012 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001013
David Turnere140f142006-10-23 08:56:57 +000010142006-10-23 David Turner <david@freetype.org>
1015
Werner Lemberg715e96e2006-10-24 05:28:45 +00001016 Speed up the CFF font loader. With some large CFF fonts,
1017 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001018
Werner Lemberg715e96e2006-10-24 05:28:45 +00001019 * src/cff/cffload.c (cff_get_offset): Removed.
1020 (cff_new_index): Inline functionality of `cff_get_offset'.
1021 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1022 (cff_charset_done): Call `cff_charset_free_cids'.
1023 (cff_charset_load): Call `cff_charset_compute_cids'.
1024 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1025
1026 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1027 with FT_NEXT_XXX.
1028
1029
1030 Speed up the Postscript hinter, with more than 100% speed increase
1031 on my machine.
1032
1033 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1034 psh_corner_orientation): New functions.
1035 (psh_glyph_compute_inflections): Merge loops for efficiency.
1036 Use `psh_corner_orientation'.
1037 (psh_glyph_init): Use `psh_corner_is_flat'.
1038 (psh_hint_table_find_strong_point): Renamed to...
1039 (psh_hint_table_find_strong_points): This.
1040 Rewrite, adding argument to handle all points at once.
1041 Update all callers.
1042 (PSH_MAX_STRONG_INTERNAL): New macro.
1043 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001044
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010452006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1046
1047 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001048 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001049
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010502006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1051
1052 * docs/INSTALL.CROSS: New document file for cross-building.
1053
1054 * builds/unix/configure.raw: Preliminary cross-building support.
1055 Find native C compiler and pass it by CC_BUILD, and
1056 find suffix for native executable and pass it by EXEEXT_BUILD.
1057 Also suffix for target executable is passed by EXEEXT.
1058
Werner Lembergb9e6d692006-10-15 08:58:40 +00001059 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1060 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001061 CC_BUILD and EXEEXT_BUILD.
1062
Werner Lembergb9e6d692006-10-15 08:58:40 +00001063 * builds/exports.mk (APINAMES_EXE): Change the extension for
1064 apinames from the suffix for target (E) to that for building host
1065 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001066
Werner Lemberg82a07e92006-10-12 06:20:44 +000010672006-10-12 Werner Lemberg <wl@gnu.org>
1068
1069 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1070 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1071 which reference those files.
1072
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010732006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1074
Werner Lembergb9e6d692006-10-15 08:58:40 +00001075 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1076 embedded in freetype2.pc and freetype-config. Use it to record
1077 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001078
1079 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1080
1081 * builds/unix/freetype-config.in: Ditto.
1082
Werner Lemberg28e17d92006-10-11 17:27:47 +000010832006-10-11 Werner Lemberg <wl@gnu.org>
1084
1085 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1086 development.
1087
Jens Claudius336d2292006-10-03 08:53:37 +000010882006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1089
1090 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1091 argument to ft_setjmp.
1092
1093 * include/freetype/internal/ftvalid.h: Add comment that
1094 ft_validator_run must not be used.
1095
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010962006-10-01 Werner Lemberg <wl@gnu.org>
1097
1098 * src/base/ftbase.c: Undo change from 2006-09-30.
1099
1100 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1101
11022006-09-30 David Turner <david@freetype.org>
1103
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001104 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1105 s/unpatented_hinting/ignore_unpatented_hinter/.
1106 Update all callers.
1107
1108 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1109 auto-hinting shall be used or not.
1110
1111 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001112
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011132006-09-30 Werner Lemberg <wl@gnu.org>
1114
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001115 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1116 in use).
1117
1118 * src/base/ftbase.c: Include `ftlcdfil.c'.
1119
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011202006-09-29 Werner Lemberg <wl@gnu.org>
1121
1122 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1123 overlapping segments. Bug reported by Stefan Koch.
1124
David Turnerad830712006-09-27 16:20:59 +000011252006-09-28 David Turner <david@freetype.org>
1126
Werner Lemberg2c002e12006-09-29 21:31:53 +00001127 Fix a bug in the automatic unpatented hinting support which prevents
1128 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001129
Werner Lemberg2c002e12006-09-29 21:31:53 +00001130 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1131 s/force_autohint/unpatented_hinting/. Update all callers.
1132
1133 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1134
1135 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001136
David Turner8a317cf2006-09-27 07:52:48 +000011372006-09-27 David Turner <david@freetype.org>
1138
Werner Lemberg2c002e12006-09-29 21:31:53 +00001139 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001140
David Turner8a317cf2006-09-27 07:52:48 +00001141
David Turnere140f142006-10-23 08:56:57 +00001142 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001143 In a default build, the function `FT_Library_SetLcdFilter' returns
1144 `FT_Err_Unimplemented_Feature'; you need to #define
1145 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1146 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001147
Werner Lemberg2c002e12006-09-29 21:31:53 +00001148 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001149
Werner Lemberg2c002e12006-09-29 21:31:53 +00001150 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1151 typedef.
1152 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1153 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001154
Werner Lemberg2c002e12006-09-29 21:31:53 +00001155 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1156 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001157
Werner Lemberg2c002e12006-09-29 21:31:53 +00001158 Handle subpixel rendering.
1159 Simplify function.
1160 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1161 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1162
1163 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1164 pointing to <freetype/ftlcdfil.h>.
1165
1166 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1167 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1168
1169 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001170
Werner Lemberge20df4a2006-09-27 06:29:21 +000011712006-09-26 David Bustin
1172
1173 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1174 correctly. Reported as Savannah bug #17843.
1175
David Turner6f8c6222006-09-26 15:42:44 +000011762006-09-26 David Turner <david@freetype.org>
1177
Werner Lemberg110246c2006-09-26 21:55:44 +00001178 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1179 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1180 horizontal and vertical hinting for the purpose of debugging the
1181 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001182
Werner Lemberg110246c2006-09-26 21:55:44 +00001183 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1184 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001185
Werner Lemberg110246c2006-09-26 21:55:44 +00001186 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1187
1188 * include/freetype/config/ftoption.h, devel/ftoption.h
1189 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1190 we want to compile LCD-optimized rendering code la ClearType) or
1191 not. The macro *must* be disabled in default builds of the library
1192 for patent reasons.
1193
1194 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1195 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1196 isn't defined at compile time. This only changes the content of the
1197 rendered glyph to match the one of normal gray-level rendering,
1198 hence clients should not need to be modified.
1199
1200 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001201
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012022006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1203
1204 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1205 LWFN fails and both are available.
1206
David Turnerf3050052006-09-11 12:00:32 +000012072006-09-11 David Turner <david@freetype.org>
1208
Werner Lembergf9644552006-09-12 13:48:10 +00001209 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1210 report their English names through an Apple Roman
1211 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001212
Werner Lembergf9644552006-09-12 13:48:10 +00001213 If the font uses another name entry with language_id == English, it
1214 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001215
Werner Lembergf9644552006-09-12 13:48:10 +00001216 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1217 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001218
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012192006-09-05 Werner Lemberg <wl@gnu.org>
1220
1221 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001222 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001223 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1224 `HAN NOM B.ttf').
1225
1226 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1227
David Turner772e55d2006-09-05 09:45:15 +000012282006-09-05 David Turner <david@freetype.org>
1229
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001230 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001231
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001232 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1233 (TRaster): Remove `count_ex' and `count_ey'.
1234 (gray_find_cell): Remove 2nd and 3rd argument.
1235 (gray_alloc_cell): Merged with `gray_find_cell'.
1236 (gray_record_cell): Simplify.
1237 (gray_set_cell): Rewrite.
1238 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1239 (gray_render_span): Don't use FT_MEM_SET for small values.
1240 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1241 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1242 bitmap scanline.
1243 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001244
David Turneraa557a92006-09-04 16:42:44 +000012452006-09-04 David Turner <david@freetype.org>
1246
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001247 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1248 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001249
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012502006-09-03 Werner Lemberg <wl@gnu.org>
1251
1252 * devel/ftoption.h: Synchronize with
1253 include/freetype/config/ftoption.h.
1254
1255 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1256 variable declaration.
1257 (gray_convert_glyph): Fix compiler warnings.
1258
David Turner6d79f212006-09-01 14:09:35 +000012592006-09-01 David Turner <david@freetype.org>
1260
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001261 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1262 to recognize a few fonts that require the automatic unpatented
1263 loader.
David Turnerbd502952006-09-01 19:05:24 +00001264
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001265 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1266 rasterizer. The speed improvement is between 15% and 25%, depending
1267 on the font data.
1268
1269 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1270 (TCell): Redefine.
1271 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1272 (gray_init_cells): Updated.
1273 (gray_find_cell, gray_alloc_cell): New functions.
1274 (gray_record_cell): Rewritten to use `gray_find_cell' and
1275 `gray_alloc_cell'.
1276 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1277 QSORT_THRESHOLD):
1278 Removed.
1279 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1280 gray_dump_cells): Removed.
1281 (gray_sweep): Rewritten.
1282 (gray_convert_glyph): Rewrite code which used one of the sorting
1283 functions.
1284 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001285
Werner Lembergd898aed2006-08-29 09:50:34 +000012862006-08-29 Dr. Werner Fink <werner@suse.de>
1287
1288 * configure: Make it possible to handle configure options which
1289 have strings containing spaces.
1290
12912006-08-27 David Turner <david@freetype.org>
1292
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001293 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1294 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1295 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1296
1297 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1298 src/truetype/truetype.c, src/truetype/ttdriver.c,
1299 src/truetype/ttgload.c, src/truetype/ttgload.h,
1300 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1301 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1302 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1303
1304 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1305 member `force_autohint'.
1306
1307 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1308
1309 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1310 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001311
Jens Claudiusa787f452006-08-27 11:26:18 +000013122006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1313
1314 Fix miscellaneous compiler warnings.
1315
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001316 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1317 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001318
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001319 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1320 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1321 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001322
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001323 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1324 volatileness of argument to ft_longjmp. Spotted by Werner
1325 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001326
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001327 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1328 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001329
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001330 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1331 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001332
Werner Lembergc4c35b72006-08-27 08:03:46 +000013332006-08-27 Werner Lemberg <wl@gnu.org>
1334
1335 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1336 Reported by Jens.
1337
Jens Claudius088e44e2006-08-22 14:24:30 +000013382006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001339
Jens Claudius088e44e2006-08-22 14:24:30 +00001340 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001341 about addresses of volatile objects passed as function arguments as
1342 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001343
Werner Lembergc4c35b72006-08-27 08:03:46 +00001344 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1345 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001346
1347 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1348 argument `table' a pointer to a volatile object.
1349
1350 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1351 argument `table' a pointer to a volatile object.
1352
Jens Claudius2652bd52006-08-18 17:20:37 +000013532006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1354
1355 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1356 variable `_sfnt' as volatile since it must keep its value across
1357 a call to ft_setjmp.
1358 (gxv_validate): Same for local variables `memory' and `valid'.
1359 (classic_kern_validate): Same for local variables `memory',
1360 `ckern', and `valid'.
1361
1362 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1363 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1364 `jstf', and 'valid'.
1365
1366 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1367 local variable `cmap'.
1368
David Turner9fbfc6a2006-08-16 09:11:31 +000013692006-08-16 David Turner <david@freetype.org>
1370
Werner Lemberg12342992006-08-19 11:18:09 +00001371 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1372 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001373
Werner Lemberg12342992006-08-19 11:18:09 +00001374 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1375 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001376
David Turner33f5f242006-08-16 16:50:55 +00001377
Werner Lemberg12342992006-08-19 11:18:09 +00001378 Improvements to native TrueType hinting. This is a first try,
1379 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1380
1381 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1382 `extra_points2'.
1383
1384 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1385 `orus'.
1386
1387 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1388 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1389 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1390 handle `extra_points2'.
1391
1392 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1393 Remove compiler warning.
1394 (cur_to_arg): Remove macro.
1395 (TT_Hint_Glyph): Updated.
1396 (TT_Process_Simple_Glyph): Handle `orus'.
1397
1398 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1399 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1400 (LOC_Ins_IUP): Renamed to...
1401 (IUP_WorkerRec): This.
1402 Add `orus' member.
1403 (Shift): Renamed to...
1404 (_iup_worker_shift): This.
1405 Updated.
1406 (Interp): Renamed to...
1407 (_iup_worker_interpolate): This.
1408 Updated to handle `orus'.
1409 (Ins_IUP): Updated.
1410
1411 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1412 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001413
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014142006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1415
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001416 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001417 build ftvalid in ft2demos. This has been inadvertedly changed
1418 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001419
14202006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1421
Werner Lemberg12342992006-08-19 11:18:09 +00001422 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1423 Jens:
1424 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001425
Werner Lemberg12342992006-08-19 11:18:09 +00001426 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1427 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001428
1429 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1430
Jens Claudius9950adc2006-08-13 12:14:36 +000014312006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1432
Werner Lemberg12342992006-08-19 11:18:09 +00001433 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1434 T1_TOKEN_TYPE_KEY.
1435 (T1_FieldRec): Add `dict'.
1436 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1437 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1438 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001439
Werner Lemberg12342992006-08-19 11:18:09 +00001440 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1441 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001442
1443 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1444
1445 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001446 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1447 not T1_TOKEN_TYPE_ANY.
1448 (ps_parser_load_field): Make sure a token that should be a string or
1449 name is really a string or name.
1450 Avoid memory leak if a keyword has been already encountered and its
1451 value is overwritten.
1452 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1453 T1_FIELD_XXX.
1454 (parse_dict): Ignore keywords that occur in the wrong dictionary
1455 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001456
Werner Lemberg12342992006-08-19 11:18:09 +00001457 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1458 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001459
Werner Lemberg12342992006-08-19 11:18:09 +00001460 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1461 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001462
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014632006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1464
1465 Move creation of field `buildchar' of T1_DecoderRec out of
1466 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1467 of it.
1468
1469 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1470 and `T1_Compute_Max_Advance'.
1471
1472 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1473 Remove field `face', add `len_buildchar'.
1474
1475 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1476 field `buildchar'.
1477
1478 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1479 finisher for T1_Decoder.
1480 (cid_slot_load_glyph): Do not ignore failure when initializing the
1481 T1_Decoder.
1482
1483 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1484 Updated.
1485 (t1_decoder_init): Remove initialization of fields `buildchar' and
1486 `len_buildchar'.
1487 (t1_decoder_done): Remove deallocation of field `buildchar'.
1488
1489 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1490 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1491 T1_Decoder.
1492 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1493 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1494 case of error.
1495
1496 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1497 `buildchar' of T1_FaceRec.
1498
1499 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1500 `buildchar' of T1_FaceRec.
1501
Werner Lemberg1a380e02006-07-14 18:28:08 +000015022006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1503
1504 * freetype2/include/freetype/internal/psaux.h: New macros
1505 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1506 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1507 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1508 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1509 (T1_DecoderRec): New fields `buildchar' and `face'.
1510 (IS_PS_TOKEN): New macro.
1511
1512 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1513 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1514
1515 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1516 `default_design_vector' and `num_default_design_vector'.
1517
1518 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1519 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1520 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1521
1522 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1523 `token' argument to be NULL if we want only to count the number of
1524 tokens.
1525 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1526 want to skip the array.
1527 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1528 want to skip the array.
1529
1530 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1531 support for (partially commented out) othersubrs 19-25, 27, and 28.
1532 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1533 (t1_decoder_done): Release new field `buildchar'.
1534
1535 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1536 functions.
1537 (t1_keywords): Register them.
1538 (t1_allocate_blend): Updated.
1539 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1540 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1541 (parse_dict): Remove `keyword_flags' argument.
1542 Use new macro IS_PS_TOKEN.
1543 Changed function so that later PostScript definitions override
1544 earlier ones.
1545 (t1_init_loader): Initialize new field `keywords_encountered'.
1546 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1547 `len_buildchar'.
1548 Remove `keywords_flags'.
1549
1550 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1551 `keywords_encountered'.
1552 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1553
1554 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1555 New entries for parsing /NDV, /CDV, and /DesignVector.
1556
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015572006-07-07 Werner Lemberg <wl@gnu.org>
1558
1559 Add many checks to protect against malformed PCF files.
1560
1561 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1562 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1563
1564 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1565 data and check that tables don't overlap (using a simple
1566 bubblesort).
1567 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1568 New macros which give the size of data structures in the data
1569 stream.
1570 (pcf_get_properties): Use rough estimates to get array size limits.
1571 Assign `face->nprops' and `face->properties' earlier so that a call
1572 to PCF_Face_Done can do the clean-up in case of error.
1573 Protect against invalid string offsets.
1574 (pcf_get_metrics): Clean up code.
1575 Adjust tracing message levels.
1576 Use rough estimate to get array size limit.
1577 (pcf_get_bitmaps): Clean up code.
1578 Adjust tracing message levels.
1579 Use rough estimates to get offset limits.
1580 (pcf_get_encodings): Adjust tracing message level.
1581 (pcf_get_accel): Clean up code.
1582
Werner Lemberg8eb05252006-06-27 06:20:01 +000015832006-06-26 Werner Lemberg <wl@gnu.org>
1584
1585 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1586 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1587
Werner Lemberg24703f82006-06-26 19:12:51 +000015882006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1589
1590 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1591 (t1_decoder_parse_charstrings): Operator with
1592 opcode 15 pops its two arguments.
1593 Handle the case where the pops of an othersubr may be part of a
1594 subroutine.
1595 Handle unknown othersubrs gracefully: count their operands and let
1596 the following pop operators push the operands as the results onto
1597 the Type1 stack.
1598 Improve handling of setcurrentpoint opcode.
1599
Werner Lembergc011f4c2006-06-26 09:40:00 +000016002006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1601
1602 The Type 1 parser now skips over top-level procedures as required
1603 for a `Simplified Parser'. This makes the parser more robust as it
1604 doesn't poke around in PostScript code. Additionally, it makes the
1605 FontDirectory hackery in src/type1/t1load.c unnecessary.
1606
1607 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1608 (skip_literal_string): Add FT_Error as return value.
1609 Handle escapes better.
1610 (skip_string): Add FT_Error as return value.
1611 Don't set `parser->error' but return error code directly.
1612 (skip_procedure): New function.
1613 (ps_parser_skip_PS_token): Handle procedures.
1614 Update code.
1615 (ps_parser_to_token): Update code.
1616 (ps_parser_load_field_table): Handle bbox entries also.
1617
1618 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1619 Add commented-out code for synthetic fonts.
1620
Werner Lemberga2da05c2006-06-25 06:27:27 +000016212006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1622
1623 Fix two hinting bugs as reported in
1624 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1625
1626 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1627 `first_point' member.
1628
1629 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1630 `first_point'.
1631 (TT_Process_Composite_Glyph): Always untouch points.
1632
1633 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1634 `first_point' and `last_point' in case of composite glyphs.
1635 (Ins_IUP): Fix computation of `end_point'.
1636
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016372006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1638
Werner Lembergef3d2c22006-06-25 06:07:14 +00001639 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1640 Mac. The original patch was written by David Sachitano and Lawrence
1641 Coopet, and modified by Sean McBride for MPW compatibility. Only
1642 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001643
Werner Lembergef3d2c22006-06-25 06:07:14 +00001644 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1645 Mac OS X platforms.
1646 (OS_INLINE): Undefine before definition.
1647 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1648 FontAssociation table in FOND resource.
1649 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1650 and fontSize at each entry of FontAssociation table in FOND
1651 resource.
1652 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1653 ffStylOff of FamilyRecord header of FOND resource, the header,
1654 fontSize, fontID at each entry of FontAssociation table, and
1655 StyleMapping table.
1656 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001657
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016582006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1659
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001660 Public API of TrueTypeGX, OpenType, and classic kern table validator
1661 should return `FT_Err_Unimplemented_Feature' if validation service
1662 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001663 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001664 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1665
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001666 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1667 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1668 unavailable.
1669 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1670 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001671
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001672 * src/base/ftotval.c (FT_OpenType_Validate): Return
1673 FT_Err_Unimplemented_Feature if OpenType validation service is
1674 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001675
Werner Lembergb10e45a2006-06-08 07:32:56 +000016762006-06-08 Werner Lemberg <wl@gnu.org>
1677
1678 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1679 errors.
1680
David Turner5f1f7502006-06-07 05:11:50 +000016812006-06-07 David Turner <david@freetype.org>
1682
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001683 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1684 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1685 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001686
David Turner457b4a82006-06-06 08:14:14 +000016872006-06-06 David Turner <david@freetype.org>
1688
Werner Lemberg4836f952006-06-06 12:54:08 +00001689 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001690
Werner Lemberg4836f952006-06-06 12:54:08 +00001691 We change `ps_unicodes_init' so that it also takes a
1692 `free_glyph_name' callback to release the glyph names returned by
1693 `get_glyph_name'
1694
1695 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1696 Renamed to ...
1697 (PS_GetGlyphNameFunc): This.
1698 (PS_FreeGlyphNameFunc): New typedef.
1699 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1700
1701 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1702 argument.
1703 (cff_sid_free_glyph_name): New function.
1704 (cff_cmap_unicode_init): Updated.
1705
1706 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1707
1708 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1709 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001710
1711
David Turner09717352006-06-04 14:33:08 +000017122006-06-04 David Turner <david@freetype.org>
1713
Werner Lembergd724f202006-06-04 15:17:41 +00001714 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1715 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001716 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001717
Werner Lembergd724f202006-06-04 15:17:41 +00001718 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1719 of `face->num_glyphs' which missed the last glyph, due to
1720 the offset-by-1 computation, since the PFR format doesn't
1721 guarantee that glyph index 0 corresponds to the `missing
1722 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001723
Werner Lemberg33779662006-05-26 06:30:05 +000017242006-05-25 Werner Lemberg <wl@gnu.org>
1725
1726 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1727 `-no-undefined'. Reported by Christian Biesinger.
1728
Werner Lemberg24773d62006-05-20 08:53:13 +000017292006-05-19 Brian Weed <bw@imaginengine.com>
1730
1731 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1732 have debug information, and debug libraries use `C7 compatible'
1733 debug info.
1734
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017352006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1736
Werner Lemberga6523a62006-05-20 08:47:01 +00001737 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001738 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001739
Werner Lemberga6523a62006-05-20 08:47:01 +00001740 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1741 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001742
1743 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001744 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001745
17462006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1747
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001748 * build/unix/configure.raw: Add a fallback to disable Carbon
1749 dependency, if configured with no options on Mac OS X.
1750
17512006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1752
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001753 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001754 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001755 the second part of Savannah bug #16590.
1756
Werner Lemberg545c4e52006-05-17 22:55:04 +000017572006-05-18 Werner Lemberg <wl@gnu.org>
1758
1759 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1760 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1761
David Turnerdc3ff312006-05-17 12:59:35 +000017622006-05-17 David Turner <david@freetype.org>
1763
Werner Lemberg545c4e52006-05-17 22:55:04 +00001764 This is a major patch used to drastically improve the performance of
1765 loading glyphs. This both speeds up loading the glyph vectors
1766 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001767
Werner Lemberg545c4e52006-05-17 22:55:04 +00001768 We now use inline assembler code with GCC to implement `FT_MulFix',
1769 which is probably the most important function related to the
1770 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001771
Werner Lemberg545c4e52006-05-17 22:55:04 +00001772 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001773
1774
Werner Lemberg545c4e52006-05-17 22:55:04 +00001775 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1776 `cursor' and `limit'.
1777
1778 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1779 New functions.
1780 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1781 [TEST]: Remove.
1782
1783 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1784 code.
1785
1786 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1787 `FT_ZERO'
1788 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1789 (af_glyph_hints_reload: Rewrite recognition of weak points.
1790
1791 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1792 constant values out of the loops.
1793
1794 * src/autofit/aftypes.h: Updated.
1795
1796 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1797
1798 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1799 product to get orientation.
1800
1801 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1802 (FT_Stream_OpenGzip): Use it to handle small files directly in
1803 memory.
1804
1805 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1806 Improve performance.
1807
1808 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1809 `limit'.
1810
1811 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1812 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1813 exceedingly large values of number of contours. Speed up by
1814 reducing the number of loops.
1815
1816 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1817
1818
1819 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1820 used to detect rogue clients from 4 to 16. This is to prevent some
1821 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1822 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001823
Werner Lembergde2d90a2006-05-17 08:54:30 +000018242007-05-17 Werner Lemberg <wl@gnu.org>
1825
1826 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001827 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001828
18292006-05-16 Werner Lemberg <wl@gnu.org>
1830
1831 * docs/PROBLEMS: Updated icl issues.
1832
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001833----------------------------------------------------------------------------
1834
Werner Lemberg42b63b22007-01-21 21:01:33 +00001835Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001836David Turner, Robert Wilhelm, and Werner Lemberg.
1837
1838This file is part of the FreeType project, and may only be used, modified,
1839and distributed under the terms of the FreeType project license,
1840LICENSE.TXT. By continuing to use, modify, or distribute this file you
1841indicate that you have read the license and understand and accept it
1842fully.
1843
1844
1845Local Variables:
1846version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001847coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001848End: