blob: a6306e80f10a471c008ee6d393444bf3f147e1c5 [file] [log] [blame]
Werner Lembergf4a52a62007-04-09 08:40:11 +000012007-04-09 Martin Horak <horakm@centrum.cz>
2
3 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
4 memory stream to avoid a crash with the incremental memory
5 interface (Savannah bug #19260).
6
David Turner1dcb4442007-04-06 08:19:04 +000072007-04-06 David Turner <david@freetype.org>
8
Werner Lembergc81cf612007-04-06 09:28:23 +00009 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
10 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000011
Werner Lemberg9f83e052007-04-05 02:28:23 +0000122007-04-04 Werner Lemberg <wl@gnu.org>
13
14 * Version 2.3.3 released.
15 =========================
16
17
18 Tag sources with `VER-2-3-3'.
19
20 * docs/CHANGES: Mention CVE-2007-1351.
21
David Turner7338ec22007-04-03 14:30:34 +0000222007-04-03 David Turner <david@freetype.org>
23
24 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000025 if one of the resolution values is 0, treat it as if it were the
26 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000027
David Turnere6472c12007-04-02 13:13:54 +0000282007-04-02 David Turner <david@freetype.org>
29
Werner Lemberg94f12272007-04-03 07:19:53 +000030 Add special code to detect `extra-light' fonts and do not snap their
31 stem widths too much to avoid bizarre hinting effects.
32
33 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
34 `extra_light' members.
35
36 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
37 them.
38 (af_latin_metrics_scale_dim): Set `extra_light'.
39 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000040
David Turner3f539692007-03-28 14:53:40 +0000412007-03-28 David Turner <david@freetype.org>
42
Werner Lemberg644b1ad2007-03-28 21:17:11 +000043 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +000044 padding.
45
Werner Lemberga08b2172007-03-28 07:17:17 +0000462007-03-28 Werner Lemberg <wl@gnu.org>
47
48 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
49 gracefully.
50 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +000051 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +000052 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
53 number of code points in Unicode.
54
Werner Lemberg644b1ad2007-03-28 21:17:11 +000055 * builds/win32/visualc/index.html,
56 builds/win32/visualc/freetype.dsp,
57 builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
58 s/232/233/.
59
60 * docs/CHANGES: Mention ftdiff.
61
David Turner3b242d32007-03-26 12:03:04 +0000622007-03-26 David Turner <david@freetype.org>
63
Werner Lemberg644b1ad2007-03-28 21:17:11 +000064 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
65 corresponding code.
66 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +000067
Werner Lemberga08b2172007-03-28 07:17:17 +000068 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +000069 computations in order to ignore single-point contours. These are
70 never rasterized and correspond in certain fonts to mark-attach
71 points that are very far from the glyph's real outline, ruining the
72 computation.
David Turnerf58caa02007-03-26 12:39:25 +000073
Werner Lemberga08b2172007-03-28 07:17:17 +000074 * src/autofit/afloader.c (af_loader_load_g): In the case of
75 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
76 Otherwise code that uses them will most certainly ruin the fixed
77 advance property.
David Turner23553d62007-03-26 13:37:17 +000078
Werner Lemberg644b1ad2007-03-28 21:17:11 +000079 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
80 documentation and bump version number to 2.3.3.
81
82 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
83
84 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +000085
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000862007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
87
Werner Lemberg644b1ad2007-03-28 21:17:11 +000088 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
89 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000090 * builds/vms/ftconfig.h: Ditto.
91 * include/freetype/config/ftconfig.h: Ditto.
92
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000932007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
94
Werner Lemberg14ffe092007-03-22 06:12:43 +000095 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
96 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000097 proposed by Sean McBride:
98 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
99
1002007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
101
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000102 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
103 setjmp, proposed by Sean McBride:
104 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
105
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001062007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
107
Werner Lembergc9f6c662007-03-21 13:30:14 +0000108 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
109 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
110 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000111
David Turner74c34eb2007-03-18 07:19:31 +00001122007-03-18 David Turner <david@freetype.org>
113
Werner Lembergc9f6c662007-03-21 13:30:14 +0000114 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
115 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000116
Werner Lembergc9f6c662007-03-21 13:30:14 +0000117 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000118
David Turner89020d92007-03-17 17:48:57 +00001192007-03-17 David Turner <david@freetype.org>
120
Werner Lembergc9f6c662007-03-21 13:30:14 +0000121 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
122 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000123
Werner Lemberg25d592a2007-03-09 07:59:35 +00001242007-03-09 Werner Lemberg <wl@gnu.org>
125
126 * Version 2.3.2 released.
127 =========================
128
129
130 Tag sources with `VER-2-3-2'.
131
132 * builds/win32/visualc/index.html,
133 builds/win32/visualc/freetype.dsp,
134 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
135 s/231/232/.
136
David Turner3a51afa2007-03-08 10:50:38 +00001372007-03-08 David Turner <david@freetype.org>
138
Werner Lemberg25d592a2007-03-09 07:59:35 +0000139 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000140
Werner Lemberg25d592a2007-03-09 07:59:35 +0000141 * builds/unix/configure.raw (version_info): Set to 9:13:3.
142
143 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
144
145 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000146
Werner Lemberg1e259de2007-03-08 15:39:21 +0000147 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
148 function to work properly, over-writing user-provided buffers in
149 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000150
David Turner121cad52007-03-08 16:43:50 +0000151
Werner Lemberg3d92f082007-03-06 11:59:24 +00001522007-03-05 Werner Lemberg <wl@gnu.org>
153
154 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
155 macro for `strstr'.
156
157 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
158 `trick_names', as suggested by Ivan Nincic.
159
David Turner085bc6e2007-03-05 17:40:03 +00001602007-03-05 David Turner <david@freetype.org>
161
Werner Lembergd112cf02007-03-06 12:06:56 +0000162 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
163 case FT_Init_FreeType fails for some reason. Problem reported by
164 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000165
Werner Lembergd112cf02007-03-06 12:06:56 +0000166 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
167 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
168 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
169 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000170
Werner Lembergd112cf02007-03-06 12:06:56 +0000171 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
172 signed values, not unsigned ones. Problem reported by Johannes
173 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000174
David Turner601aefe2007-02-21 16:47:49 +00001752007-02-21 David Turner <david@freetype.org>
176
Werner Lembergde5e6862007-02-25 21:06:43 +0000177 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
178 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000179
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001802007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
181
182 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
183 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
184 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
185
Werner Lemberga0915172007-02-16 08:12:50 +00001862007-02-16 Werner Lemberg <wl@gnu.org>
187
188 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
189 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
190
David Turner2c4500e2007-02-14 15:08:47 +00001912007-02-14 David Turner <david@freetype.org>
192
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000193 It seems that the following changes fix most of the known
194 interpreter problems with my fonts, but more testing is needed,
195 though.
196
197 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
198 (TT_MulFix14): Rewrite.
199 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
200 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000201
Werner Lembergc6a14082007-02-12 22:08:15 +00002022007-02-12 Werner Lemberg <wl@gnu.org>
203
204 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
205 warnings.
206
207 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
208 (bdf_interpret_style): Ditto.
209
David Turnerc0f9c4a2007-02-12 14:55:03 +00002102007-02-12 David Turner <david@freetype.org>
211
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000212 Simplify projection and dual-projection code interface.
213
Werner Lemberg406d25f2007-02-12 22:01:18 +0000214 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
215 FT_Vector' as argument type.
216 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
217 Updated.
218 (CUR_fast_project, CUR_fast_dualproj): New macros.
219 (Project, Dual_Project, Project_x, Project_y): Updated.
220 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
221 macros.
222
223
224 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
225 adjustments for the non-light auto-hinted modes. Gets rid of
226 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000227
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000228 * src/autofit/aflatin.c (af_latin_hints_link_segments,
229 af_latin_hints_compute_edges): Slight optimization of the segment
230 linker and better handling of serif segments to get rid of broken
231 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000232
David Turnerc0f9c4a2007-02-12 14:55:03 +0000233
Werner Lemberg442bfb82007-02-12 21:44:10 +0000234 Introduce new string functions and the corresponding macros to get
235 rid of various uses of strcpy and other `evil' functions, as well as
236 to simplify a few things.
237
238 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
239 ft_mem_strcpyn): New declarations.
240 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
241 macros.
242 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
243 functions.
244
245 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
246 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
247 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
248 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
249 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
250 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
251 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
252 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000253
Werner Lemberg406d25f2007-02-12 22:01:18 +0000254 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
255
Werner Lemberg582067d2007-02-11 15:03:05 +00002562007-02-11 Werner Lemberg <wl@gnu.org>
257
258 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
259 non-spacing glyphs.
260
Werner Lemberg8f474532007-02-07 08:31:01 +00002612007-02-07 Tom Parker <palfrey@tevp.net>
262
263 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
264 pointer.
265
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002662007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
267
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000268 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
269 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000270 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000271 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
272 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
273 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
274 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000275
276 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
277 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000278 * builds/mac/ftmac.c: Ditto.
279
2802007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
281
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000282 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000283 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000284 #include <ftmac.c>.
285
2862007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
287
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000288 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
289 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
290 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
291 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
292 FT_GetFilePath_From_Mac_ATS_Name.
293 * builds/mac/ftmac.c: Ditto.
294
2952007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
296
Werner Lembergdcbb7082007-02-08 08:54:09 +0000297 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000298 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
299 for passing to FT_New_Face_From_FSSpec.
300
3012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
302
Werner Lembergdcbb7082007-02-08 08:54:09 +0000303 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000304 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000305
306 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
307 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000308 * builds/mac/ftmac.c (OS_INLINE): Ditto.
309
Werner Lemberg313d7772007-02-01 08:10:45 +00003102007-02-01 Werner Lemberg <wl@gnu.org>
311
312 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
313 Explain why applications shouldn't use it. Found by Alexei.
314
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003152007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000316
317 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
318 message.
319
320 * src/gxvalid/gxvmort1.c
321 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
322 message.
323
Werner Lemberg53935932007-01-31 08:53:02 +00003242007-01-31 Werner Lemberg <wl@gnu.org>
325
326
327 * Version 2.3.1 released.
328 =========================
329
330
331 Tag sources with `VER-2-3-1-FINAL'.
332
333 * builds/win32/visualc/freetype.dsp,
334 builds/win32/visualc/freetype.vcproj: s/230/231/.
335 * builds/win32/visualc/index.html: s/221/231/.
336
337 * vms_make.com: Add `ftgasp'.
338
David Turnera7ee6082007-01-30 10:33:53 +00003392007-01-30 David Turner <david@freetype.org>
340
Werner Lemberg53935932007-01-31 08:53:02 +0000341 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000342
Werner Lemberg53935932007-01-31 08:53:02 +0000343 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000344
Werner Lemberg25d592a2007-03-09 07:59:35 +0000345 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000346 s/2.3.0/2.3.1/.
347
348 * builds/unix/configure.raw (version_info): Set to 9:12:3.
349
350
351 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
352 (af_loader_load_g): Disable the warper (i.e., the light hinting
353 improvements) to make a 2.3.1 bugfix release before introducing a
354 new feature. This should give us more time to tune and improve the
355 warper for the next release.
356
357 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000358
David Turnerd91eebd2007-01-26 15:05:41 +00003592007-01-25 David Turner <david@freetype.org>
360
Werner Lembergbf241762007-01-26 16:08:49 +0000361 For light auto-hinting, improve glyph advance widths and resurrect
362 normal/full hinting to its normal quality.
363
364 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
365 and `xmax_delta'.
366 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
367 and `xmax_delta'.
368
369 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
370 preprocessor conditional with if-clause, handling both light and
371 normal mode.
372
373 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
374 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000375
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003762007-01-25 Werner Lemberg <wl@gnu.org>
377
378 * docs/release: Updated -- Savannah uses a new uploading scheme.
379
David Turnera42567b2007-01-25 12:23:37 +00003802007-01-25 David Turner <david@freetype.org>
381
Werner Lembergd7855662007-01-25 13:53:56 +0000382 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000383
Werner Lembergd7855662007-01-25 13:53:56 +0000384 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
385 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
386 functions.
David Turnera42567b2007-01-25 12:23:37 +0000387
Werner Lembergd7855662007-01-25 13:53:56 +0000388 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000389
Werner Lembergb1be9e82007-01-25 11:50:00 +00003902007-01-25 Werner Lemberg <wl@gnu.org>
391
392 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000393 correctly in a sanity check. Since this function is only used to
394 load local and global functions, any charstring that called the last
395 local/global function would fail otherwise. This fixes Savannah bug
396 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000397
398 * docs/CHANGES: Document it.
399
David Turnerb6de8d12007-01-23 15:51:50 +00004002007-01-23 David Turner <david@freetype.org>
401
Werner Lembergb1be9e82007-01-25 11:50:00 +0000402 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
403 prevented compilation when disabling both the unpatented and the
404 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000405
Werner Lembergb1be9e82007-01-25 11:50:00 +0000406
407 Fix and enable the warper to improve `light' hinting mode. This is
408 not necessarily a final version, but it seems to work well.
409
410 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
411 Disable code.
412 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
413 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
414
415 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
416 (af_warper_compute_line_best): Fix array size of `scores'.
417 (af_warper_compute): Better handling of border cases.
418 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
419 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000420
Werner Lemberg011d1112007-01-21 09:36:00 +00004212007-01-21 Werner Lemberg <wl@gnu.org>
422
Werner Lemberg42b63b22007-01-21 21:01:33 +0000423 * ChangeLog: Split off older entries into...
424 * ChangeLog.22: This new file.
425
4262007-01-21 Werner Lemberg <wl@gnu.org>
427
Werner Lemberg555258f2007-01-21 09:46:37 +0000428 * docs/CHANGES: Document SHZ fix.
429
4302007-01-21 George Williams <gww@silcom.com>
431
432 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
433 points.
434
4352007-01-21 Werner Lemberg <wl@gnu.org>
436
Werner Lemberg011d1112007-01-21 09:36:00 +0000437 * src/sfnt/ttmtx.c (tt_face_get_metrics)
438 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
439
Werner Lemberg87a5a432007-01-17 12:44:39 +00004402007-01-17 Werner Lemberg <wl@gnu.org>
441
Werner Lembergb8003292007-01-17 12:56:25 +0000442
443 * Version 2.3.0 released.
444 =========================
445
446
447 Tag sources with `VER-2-3-0-FINAL'.
448
4492007-01-17 Werner Lemberg <wl@gnu.org>
450
Werner Lemberg87a5a432007-01-17 12:44:39 +0000451 * docs/release: Updated.
452
David Turner22122722007-01-16 20:06:44 +00004532007-01-16 David Turner <david@freetype.org>
454
Werner Lemberg87a5a432007-01-17 12:44:39 +0000455 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
456 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
457 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
458 warnings.
David Turner22122722007-01-16 20:06:44 +0000459
Werner Lemberg267e1d72007-01-15 07:48:09 +00004602007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
461
462 * builds/amiga/makefile, builds/amiga/makefile.os4,
463 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
464
465 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
466
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004672007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
468
469 Fix various compiler warnings.
470
471 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
472 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
473 s/index/strike_index/.
474 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
475
476 * src/gxvalid/gxvmorx5.c
477 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
478
479 * src/truetype/ttinterp.c (Compute_Point_Displacement),
480 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
481 uninitialized variables.
482
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004832007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
484
485 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
486
Werner Lemberg281c1482007-01-13 22:50:51 +00004872007-01-13 Werner Lemberg <wl@gnu.org>
488
489 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
490 versions up to 0x3FF without complaining.
491
Werner Lembergac250b22007-01-13 14:01:36 +00004922007-01-13 Derek Clegg <dclegg@apple.com>
493
494 Add FT_Get_PS_Font_Info interface to CFF driver.
495
496 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
497 (CFF_FontRec): Add `font_info' field.
498
499 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
500 (cff_font_done): Free font->font_info if necessary.
501
502 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
503 (cff_service_ps_info): Register cff_ps_get_font_info.
504
Werner Lemberg23df31a2007-01-13 08:45:00 +00005052007-01-13 Werner Lemberg <wl@gnu.org>
506
507 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
508 with C++ compiler.
509
510 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
511 af_glyph_hints_dump_edges): Ditto.
512
513 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
514 `modules.cfg').
515
516 * src/sfnt/ttsbit0.h: Remove.
517
518 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
519
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005202007-01-12 David Turner <david@freetype.org>
521
522 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
523 bug in the bitmap emboldener if the pitch of the source bitmap is
524 much larger than its width.
525
526 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
527 compilation warning.
528
Werner Lemberg6d96d312007-01-12 10:30:19 +00005292007-01-12 Werner Lemberg <wl@gnu.org>
530
531 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
532 `automake' CVS module from sources.redhat.com.
533
Werner Lemberg17432b52007-01-12 09:28:44 +00005342007-01-11 Werner Lemberg <wl@gnu.org>
535
536 * src/type1/t1load.c (is_space): Removed.
537 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
538 (parse_charstrings): Use IS_PS_TOKEN.
539
540
541 * autogen.sh: Avoid bash specific syntax.
542
David Turner038ace22007-01-11 15:00:59 +00005432007-01-11 David Turner <david@freetype.org>
544
Werner Lemberg17432b52007-01-12 09:28:44 +0000545 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000546
Werner Lemberg17432b52007-01-12 09:28:44 +0000547 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000548
Werner Lemberg17432b52007-01-12 09:28:44 +0000549 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
550 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000551 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000552
Werner Lemberg17432b52007-01-12 09:28:44 +0000553 * autogen.sh: Small fix to get it working on Mac OS X properly:
554 The issue is that GNU libtool is called `glibtool' on this platform,
555 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000556
David Turner2628ea92007-01-10 13:15:56 +00005572007-01-10 David Turner <david@freetype.org>
558
Werner Lemberg17432b52007-01-12 09:28:44 +0000559 * all-sources: Tag all sources with VER-2-3-0-RC1 and
560 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000561
Werner Lemberg17432b52007-01-12 09:28:44 +0000562 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
563 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
564 version number to 2.3.0.
565
566 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
567 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000568
569 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000570 include/freetype/ftlcdfil.h: Update reference documentation with
571 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000572
Werner Lemberg17432b52007-01-12 09:28:44 +0000573 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
574 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000575
Werner Lembergbf02d392007-01-10 07:07:37 +00005762007-01-10 Derek Clegg <dclegg@apple.com>
577
578 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
579 values.
580
David Turnerf48b60e2007-01-08 15:15:32 +00005812007-01-08 David Turner <david@freetype.org>
582
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000583 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000584
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000585 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
586 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000587 corresponding to a given character pixel size.
588
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000589 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
590 `gasp' table, in order to avoid potential problems with later
591 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000592
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000593 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
594 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000595
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000596 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
597 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
598 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
599 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000600
Werner Lemberge6b6f372007-01-07 00:06:47 +00006012007-01-07 Werner Lemberg <wl@gnu.org>
602
Werner Lembergb8004d22007-01-07 09:13:38 +0000603 * src/cid/cidparse.c (cid_parser_new): Improve error message for
604 Type 11 fonts.
605 Scan for `/sfnts' token.
606
6072007-01-07 Werner Lemberg <wl@gnu.org>
608
609 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000610
Werner Lembergbe5f7972007-01-06 07:51:48 +00006112007-01-06 Werner Lemberg <wl@gnu.org>
612
613 * src/cff/cffload.c (cff_index_init): Remove unused variable.
614 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
615
David Turnera8cf42b2007-01-04 16:46:46 +00006162007-01-04 David Turner <david@freetype.org>
617
Werner Lembergf6294392007-01-06 07:47:45 +0000618 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
619 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000620
Werner Lembergf6294392007-01-06 07:47:45 +0000621
622 Do not allocate interpreter-specific tables in memory if we are not
623 going to load glyphs with the bytecode interpreter anyway.
624
625 * src/truetype/ttgload.c (tt_loader_init): Load execution context
626 only if glyph is hinted.
627 Updated.
628 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
629 and `cvs_ready'.
630 Add `tt_size_ready_bytecode' declaration.
631 * src/truetype/ttobjs.c (tt_size_done_bytecode,
632 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
633 (tt_size_init): Move most code into `tt_size_init_bytecode'.
634 (tt_size_done): Move most code into `tt_size_done_bytecode'.
635 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000636
David Turner91a34022007-01-05 14:47:08 +0000637
Werner Lembergf6294392007-01-06 07:47:45 +0000638 Don't extract the metrics table from the SFNT font file. Instead,
639 reparse it on each glyph load. The runtime difference is not
640 noticeable, and it can save a lot of heap memory when memory-mapped
641 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000642
Werner Lembergf6294392007-01-06 07:47:45 +0000643 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
644 `horz_metrics_offset' and `vert_metrics_ofset'.
645 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
646 Updated.
647
648
649 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
650
651
652 Do not load the CFF index offsets into memory, since this wastes a
653 *lot* of heap memory with large Asian CFF fonts. There is no
654 significant performance loss.
655
656 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
657 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
658 `data_size'.
659 (CFF_CharsetRec): Add field `num_glyphs'.
660
661 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
662 cff_charset_cid_to_gindex): New functions.
663 (cff_new_index): Renamed to...
664 (cff_index_init): This. Update all callers.
665 Updated -- some code has been moved to `cff_index_load_offsets'.
666 (cff_done_index): Renamed to...
667 (cff_index_done): This. Update all callers.
668 (cff_index_get_pointers, cff_index_access_element): Updated to use
669 stream offsets.
670 (cff_charset_compute_cids): Set `num_glyphs' field.
671 (cff_encoding_load): Updated.
672
673 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000674
6752007-01-04 David Turner <david@freetype.org>
676
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000677 * docs/INSTALL.UNIX: Simplify some parts, add reference to
678 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000679
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000680 * README.CVS: Add common problem description and solution
681 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000682
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000683 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000684
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000685 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000686
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000687 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000688
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000689 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
690 (TWorker): This.
691 Remove `count_table' and `memory'.
692 Make `grays' a pointer.
693 (TRaster): New structure.
694 (count_table): New static array.
695 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
696 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
697 ft_black_set_mode, ft_black_render): Updated.
698 (ft_black_init): Don't initialize `count_table'.
699 (ft_black_reset): Use the render pool. This saves about 6KB of
700 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000701
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000702 * src/smooth/ftgrays.c (TRaster): Replaced with...
703 (TWorker): This.
704 Remove `memory'.
705 (TRaster): New structure.
706
707 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
708 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
709 gray_render_span, gray_raster_render): Updated.
710 (gray_raster_reset): Use the render pool. This saves about 6KB of
711 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000712
David Turner8a6c44e2007-01-04 17:03:11 +0000713 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
714 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000715 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
716 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
717 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000718
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000719 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
720 Remove a typo that results in no hinting and a memory leak with some
721 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000722
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000723 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000724 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000725 CFF_Faces in it. We need to close all faces before destroying the
726 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000727
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007282007-01-02 Werner Lemberg <wl@gnu.org>
729
730 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
731 Remove compiler warning.
732
David Turner9207e002007-01-02 16:58:13 +00007332007-01-02 David Turner <david@freetype.org>
734
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000735 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000736
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007372006-12-31 Masatake YAMATO <jet@gyve.org>
738
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000739 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
740 function.
741 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000742 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000743 `gxv_kern_subtable_fmt0_pairs_validate'.
744
David Turner115b4422006-12-22 11:37:05 +00007452006-12-22 David Turner <david@freetype.org>
746
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000747 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
748 warnings.
David Turner115b4422006-12-22 11:37:05 +0000749
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000750 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
751 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000752
Werner Lemberg4755bf72006-12-16 08:58:44 +00007532006-12-16 Anders Kaseorg <anders@kaseorg.com>
754
755 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
756 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
757
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007582006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
759
Werner Lemberg9b774e22007-01-16 06:11:27 +0000760 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000761 sync with the modification by Jens Claudius on 2006-08-22; cf.
762 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 +0000763
7642006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
765
766 * src/base/ftmac.c: Specialized for Mac OS X only.
767 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
768 * builds/unix/configure.raw: Ditto. When explicit switches for
769 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
770 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
771
7722006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
773
774 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
775 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
776 instead of src/base/ftmac.c
777 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
778 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
779 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
780 that cannot be built at present.
781
7822006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
783
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000784 * src/base/ftobjs.c: Improvement of resource fork handler for
785 POSIX, cf.
786 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000787 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
788 format or .dfont, to simulate the face index number counted by ftmac.c.
789 (IsMacResource): Return the number of scalable faces correctly.
790
Werner Lembergec5b4502006-12-10 07:51:38 +00007912006-12-10 Werner Lemberg <wl@gnu.org>
792
793 * builds/toplevel.mk (version): Protect against `distclean' target.
794
Werner Lembergb26b3142006-12-09 20:01:43 +00007952006-12-09 Werner Lemberg <wl@gnu.org>
796
797 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
798 or `type'.
799
800 * builds/freetype.mk (version): Extracted from freetype.h, using
801 GNU make's built-in string functions.
802 (refdoc): Use $(version) instead of static version number.
803
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008042006-12-08 Werner Lemberg <wl@gnu.org>
805
806 * builds/toplevel.mk (dist): Extract version number from freetype.h.
807
Werner Lemberg15c29502006-12-09 07:29:54 +00008082006-12-08 Vladimir Volovich <vvv@vsu.ru>
809
810 * src/tools/apinames (State): Remove final comma in structure -- xlc
811 v5 under AIX 4.3 doesn't like this.
812
David Turnerdbf3b432006-12-07 21:18:09 +00008132006-12-07 David Turner <david@freetype.org>
814
Werner Lemberg256a3512006-12-08 06:49:33 +0000815 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
816 to the spacing of auto-fitted glyphs. This only impacts rare
817 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000818
Werner Lemberg11171312006-12-03 09:43:40 +00008192006-12-03 Werner Lemberg <wl@gnu.org>
820
821 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
822
Werner Lemberg960ba592006-12-01 08:20:47 +00008232006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000824
Werner Lemberg960ba592006-12-01 08:20:47 +0000825 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
826 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
827 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000828
David Turner80658e52006-11-28 08:09:20 +0000829
Werner Lemberg960ba592006-12-01 08:20:47 +0000830 * include/freetype/ftxf86.h: Fix and extend comment so that it
831 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000832
Werner Lemberg960ba592006-12-01 08:20:47 +0000833 * include/freetype/ftchapters.h: Add `font_format' section.
834
835
836 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
837 to TOC in index page.
838
8392006-11-28 David Turner <david@freetype.org>
840
841 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
842 trying to render into a zero-width/height bitmap, not an error code.
843
844 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
845
846 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
847 ones instead.
848
849 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
850 variable.
David Turner80658e52006-11-28 08:09:20 +0000851
Werner Lemberg8636c292006-11-26 22:28:13 +00008522006-11-26 Pierre Hanser <hanser@club-internet.fr>
853
854 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
855
Werner Lemberg960ba592006-12-01 08:20:47 +00008562006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000857
Werner Lemberg960ba592006-12-01 08:20:47 +0000858 * src/autofit/afhints.c (af_glyph_hints_dump_points,
859 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
860 Add stubs to link the `ftgrid' test program when debugging is
861 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000862
Werner Lemberg960ba592006-12-01 08:20:47 +00008632006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000864
865 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000866 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
867
868 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
869 Emit more sensible information.
870
871 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
872
873 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
874 rounding of blue values.
875 (af_latin_hints_compute_segments): Hint segment heights.
876 (af_latin_hints_link_segments): Reduce `len_score' value.
877 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
878 value and use `height' member for comparisons.
879 (af_latin_hint_edges): Extend logging message.
880 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000881
Werner Lemberg91959bf2006-11-22 10:36:55 +00008822006-11-22 Werner Lemberg <wl@gnu.org>
883
884 Fix Savannah bug #15553.
885
886 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
887 program after a change from mono to grayscaling (and vice versa).
888 Use correct constant for comparison to get `exec->grayscale'.
889
Werner Lemberg913a3652006-11-19 09:19:17 +00008902006-11-18 Werner Lemberg <wl@gnu.org>
891
892 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000893 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000894 This patch fixes Savannah bug #18301.
895
896 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
897 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
898 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
899 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
900 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
901 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
902 (FNT_Load_Glyph): Check validity of `glyph_index'.
903
David Turner7bab6ae2006-11-13 11:25:06 +00009042006-11-13 David Turner <david@freetype.org>
905
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000906 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
907 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000908
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000909 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
910 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
911 when building the library to change the default LCD filter to be
912 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000913
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000914 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000915
David Turner8765c712006-11-10 16:49:42 +00009162006-11-10 David Turner <david@freetype.org>
917
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000918 * src/smooth/ftsmooth.c: API change for the LCD
919 filter. The FT_LcdFilter value is an enumeration describing which
920 filter to apply, with new values FT_LCD_FILTER_LIGHT and
921 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
922 algorithm which produces strong color fringes for everything
923 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000924
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000925 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
926 second parameter to an enum type.
927
928 * src/base/ftlcdfil.c (USE_LEGACY): Define.
929 (_ft_lcd_filter): Rename to...
930 (_ft_lcd_filter_fir): This.
931 Update parameters.
932 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
933 (FT_Library_Set_LcdFilter): Update parameters.
934 Handle new filter modes.
935
936 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
937 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
938 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
939 callback and update other fields.
940
941 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
942 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
943 Other minor improvements.
944
945 * src/autofit/aflatin.c: Various tiny improvements that drastically
946 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
947 (af_latin_hints_compute_edges): Fix typo.
948 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000949
David Turner4e9cc3c2006-11-09 16:31:52 +00009502006-11-09 David Turner <david@freetype.org>
951
Werner Lemberg49c77a82006-11-09 21:51:57 +0000952 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
953 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000954
Werner Lemberg5e430892006-11-07 09:35:03 +00009552006-11-07 Zhe Su <james.su@gmail.com>
956
957 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
958 also.
959
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009602006-11-03 Werner Lemberg <wl@gnu.org>
961
962 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
963
David Turner40604742006-11-02 16:37:35 +00009642006-11-02 David Turner <david@freetype.org>
965
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000966 Add a few tweaks to better handle serif fonts.
967 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000968
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000969 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
970 segments that are less than 1.5 pixels high. This gets rid of
971 *many* corner cases with serifs.
972 (af_latin_align_linked_edge): Add logging message.
973 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
974 Add logging messages.
975 Handle AF_EDGE_FLAG flag specially.
976
977 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
978 _af_debug_disable_blue_hints, and _af_debug_hints variables.
979
980 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
981 Update external declarations.
982 (af_corner_orientation, af_corner_is_flat): Replaced by...
983
984 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
985 ft_corner_is_flat): These declarations.
986
987 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
988 Comment out. Replaced by...
989
990 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
991 These functions. Update all callers.
992 (FT_Add64) [!FT_LONG64]: Simplify.
993
994 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
995 (af_direction_compute): Add a missing FT_ABS call. This bug caused
996 production of garbage by missing lots of segments.
997
998 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
999
1000 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1001 [AF_DEBUG]: Set _af_debug_hints.
1002
1003
1004 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1005 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1006 and ft_corner_orientation.
1007
1008
1009 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001010
Werner Lemberge88c5262006-10-24 05:46:26 +000010112006-10-24 Werner Lemberg <wl@gnu.org>
1012
1013 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1014
1015 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1016 as argument.
1017
David Turnera1861392006-10-23 16:00:59 +000010182006-10-23 Zhe Su <zsu@novell.com>
1019
Werner Lemberg715e96e2006-10-24 05:28:45 +00001020 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1021 better deal with broken Asian fonts with strange glyphs, having
1022 self-intersections and other peculiarities. The used algorithm is
1023 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001024
David Turnere140f142006-10-23 08:56:57 +000010252006-10-23 David Turner <david@freetype.org>
1026
Werner Lemberg715e96e2006-10-24 05:28:45 +00001027 Speed up the CFF font loader. With some large CFF fonts,
1028 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001029
Werner Lemberg715e96e2006-10-24 05:28:45 +00001030 * src/cff/cffload.c (cff_get_offset): Removed.
1031 (cff_new_index): Inline functionality of `cff_get_offset'.
1032 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1033 (cff_charset_done): Call `cff_charset_free_cids'.
1034 (cff_charset_load): Call `cff_charset_compute_cids'.
1035 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1036
1037 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1038 with FT_NEXT_XXX.
1039
1040
1041 Speed up the Postscript hinter, with more than 100% speed increase
1042 on my machine.
1043
1044 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1045 psh_corner_orientation): New functions.
1046 (psh_glyph_compute_inflections): Merge loops for efficiency.
1047 Use `psh_corner_orientation'.
1048 (psh_glyph_init): Use `psh_corner_is_flat'.
1049 (psh_hint_table_find_strong_point): Renamed to...
1050 (psh_hint_table_find_strong_points): This.
1051 Rewrite, adding argument to handle all points at once.
1052 Update all callers.
1053 (PSH_MAX_STRONG_INTERNAL): New macro.
1054 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001055
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000010562006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1057
1058 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001059 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001060
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010612006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1062
1063 * docs/INSTALL.CROSS: New document file for cross-building.
1064
1065 * builds/unix/configure.raw: Preliminary cross-building support.
1066 Find native C compiler and pass it by CC_BUILD, and
1067 find suffix for native executable and pass it by EXEEXT_BUILD.
1068 Also suffix for target executable is passed by EXEEXT.
1069
Werner Lembergb9e6d692006-10-15 08:58:40 +00001070 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1071 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001072 CC_BUILD and EXEEXT_BUILD.
1073
Werner Lembergb9e6d692006-10-15 08:58:40 +00001074 * builds/exports.mk (APINAMES_EXE): Change the extension for
1075 apinames from the suffix for target (E) to that for building host
1076 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001077
Werner Lemberg82a07e92006-10-12 06:20:44 +000010782006-10-12 Werner Lemberg <wl@gnu.org>
1079
1080 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1081 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1082 which reference those files.
1083
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010842006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1085
Werner Lembergb9e6d692006-10-15 08:58:40 +00001086 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1087 embedded in freetype2.pc and freetype-config. Use it to record
1088 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001089
1090 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1091
1092 * builds/unix/freetype-config.in: Ditto.
1093
Werner Lemberg28e17d92006-10-11 17:27:47 +000010942006-10-11 Werner Lemberg <wl@gnu.org>
1095
1096 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1097 development.
1098
Jens Claudius336d2292006-10-03 08:53:37 +000010992006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1100
1101 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1102 argument to ft_setjmp.
1103
1104 * include/freetype/internal/ftvalid.h: Add comment that
1105 ft_validator_run must not be used.
1106
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011072006-10-01 Werner Lemberg <wl@gnu.org>
1108
1109 * src/base/ftbase.c: Undo change from 2006-09-30.
1110
1111 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1112
11132006-09-30 David Turner <david@freetype.org>
1114
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001115 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1116 s/unpatented_hinting/ignore_unpatented_hinter/.
1117 Update all callers.
1118
1119 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1120 auto-hinting shall be used or not.
1121
1122 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001123
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011242006-09-30 Werner Lemberg <wl@gnu.org>
1125
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001126 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1127 in use).
1128
1129 * src/base/ftbase.c: Include `ftlcdfil.c'.
1130
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011312006-09-29 Werner Lemberg <wl@gnu.org>
1132
1133 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1134 overlapping segments. Bug reported by Stefan Koch.
1135
David Turnerad830712006-09-27 16:20:59 +000011362006-09-28 David Turner <david@freetype.org>
1137
Werner Lemberg2c002e12006-09-29 21:31:53 +00001138 Fix a bug in the automatic unpatented hinting support which prevents
1139 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001140
Werner Lemberg2c002e12006-09-29 21:31:53 +00001141 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1142 s/force_autohint/unpatented_hinting/. Update all callers.
1143
1144 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1145
1146 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001147
David Turner8a317cf2006-09-27 07:52:48 +000011482006-09-27 David Turner <david@freetype.org>
1149
Werner Lemberg2c002e12006-09-29 21:31:53 +00001150 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001151
David Turner8a317cf2006-09-27 07:52:48 +00001152
David Turnere140f142006-10-23 08:56:57 +00001153 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001154 In a default build, the function `FT_Library_SetLcdFilter' returns
1155 `FT_Err_Unimplemented_Feature'; you need to #define
1156 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1157 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001158
Werner Lemberg2c002e12006-09-29 21:31:53 +00001159 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001160
Werner Lemberg2c002e12006-09-29 21:31:53 +00001161 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1162 typedef.
1163 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1164 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001165
Werner Lemberg2c002e12006-09-29 21:31:53 +00001166 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1167 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001168
Werner Lemberg2c002e12006-09-29 21:31:53 +00001169 Handle subpixel rendering.
1170 Simplify function.
1171 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1172 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1173
1174 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1175 pointing to <freetype/ftlcdfil.h>.
1176
1177 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1178 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1179
1180 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001181
Werner Lemberge20df4a2006-09-27 06:29:21 +000011822006-09-26 David Bustin
1183
1184 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1185 correctly. Reported as Savannah bug #17843.
1186
David Turner6f8c6222006-09-26 15:42:44 +000011872006-09-26 David Turner <david@freetype.org>
1188
Werner Lemberg110246c2006-09-26 21:55:44 +00001189 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1190 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1191 horizontal and vertical hinting for the purpose of debugging the
1192 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001193
Werner Lemberg110246c2006-09-26 21:55:44 +00001194 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1195 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001196
Werner Lemberg110246c2006-09-26 21:55:44 +00001197 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1198
1199 * include/freetype/config/ftoption.h, devel/ftoption.h
1200 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1201 we want to compile LCD-optimized rendering code la ClearType) or
1202 not. The macro *must* be disabled in default builds of the library
1203 for patent reasons.
1204
1205 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1206 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1207 isn't defined at compile time. This only changes the content of the
1208 rendered glyph to match the one of normal gray-level rendering,
1209 hence clients should not need to be modified.
1210
1211 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001212
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012132006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1214
1215 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1216 LWFN fails and both are available.
1217
David Turnerf3050052006-09-11 12:00:32 +000012182006-09-11 David Turner <david@freetype.org>
1219
Werner Lembergf9644552006-09-12 13:48:10 +00001220 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1221 report their English names through an Apple Roman
1222 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001223
Werner Lembergf9644552006-09-12 13:48:10 +00001224 If the font uses another name entry with language_id == English, it
1225 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001226
Werner Lembergf9644552006-09-12 13:48:10 +00001227 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1228 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001229
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012302006-09-05 Werner Lemberg <wl@gnu.org>
1231
1232 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001233 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001234 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1235 `HAN NOM B.ttf').
1236
1237 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1238
David Turner772e55d2006-09-05 09:45:15 +000012392006-09-05 David Turner <david@freetype.org>
1240
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001241 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001242
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001243 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1244 (TRaster): Remove `count_ex' and `count_ey'.
1245 (gray_find_cell): Remove 2nd and 3rd argument.
1246 (gray_alloc_cell): Merged with `gray_find_cell'.
1247 (gray_record_cell): Simplify.
1248 (gray_set_cell): Rewrite.
1249 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1250 (gray_render_span): Don't use FT_MEM_SET for small values.
1251 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1252 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1253 bitmap scanline.
1254 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001255
David Turneraa557a92006-09-04 16:42:44 +000012562006-09-04 David Turner <david@freetype.org>
1257
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001258 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1259 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001260
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012612006-09-03 Werner Lemberg <wl@gnu.org>
1262
1263 * devel/ftoption.h: Synchronize with
1264 include/freetype/config/ftoption.h.
1265
1266 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1267 variable declaration.
1268 (gray_convert_glyph): Fix compiler warnings.
1269
David Turner6d79f212006-09-01 14:09:35 +000012702006-09-01 David Turner <david@freetype.org>
1271
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001272 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1273 to recognize a few fonts that require the automatic unpatented
1274 loader.
David Turnerbd502952006-09-01 19:05:24 +00001275
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001276 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1277 rasterizer. The speed improvement is between 15% and 25%, depending
1278 on the font data.
1279
1280 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1281 (TCell): Redefine.
1282 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1283 (gray_init_cells): Updated.
1284 (gray_find_cell, gray_alloc_cell): New functions.
1285 (gray_record_cell): Rewritten to use `gray_find_cell' and
1286 `gray_alloc_cell'.
1287 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1288 QSORT_THRESHOLD):
1289 Removed.
1290 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1291 gray_dump_cells): Removed.
1292 (gray_sweep): Rewritten.
1293 (gray_convert_glyph): Rewrite code which used one of the sorting
1294 functions.
1295 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001296
Werner Lembergd898aed2006-08-29 09:50:34 +000012972006-08-29 Dr. Werner Fink <werner@suse.de>
1298
1299 * configure: Make it possible to handle configure options which
1300 have strings containing spaces.
1301
13022006-08-27 David Turner <david@freetype.org>
1303
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001304 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1305 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1306 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1307
1308 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1309 src/truetype/truetype.c, src/truetype/ttdriver.c,
1310 src/truetype/ttgload.c, src/truetype/ttgload.h,
1311 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1312 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1313 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1314
1315 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1316 member `force_autohint'.
1317
1318 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1319
1320 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1321 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001322
Jens Claudiusa787f452006-08-27 11:26:18 +000013232006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1324
1325 Fix miscellaneous compiler warnings.
1326
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001327 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1328 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001329
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001330 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1331 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1332 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001333
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001334 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1335 volatileness of argument to ft_longjmp. Spotted by Werner
1336 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001337
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001338 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1339 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001340
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001341 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1342 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001343
Werner Lembergc4c35b72006-08-27 08:03:46 +000013442006-08-27 Werner Lemberg <wl@gnu.org>
1345
1346 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1347 Reported by Jens.
1348
Jens Claudius088e44e2006-08-22 14:24:30 +000013492006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001350
Jens Claudius088e44e2006-08-22 14:24:30 +00001351 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001352 about addresses of volatile objects passed as function arguments as
1353 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001354
Werner Lembergc4c35b72006-08-27 08:03:46 +00001355 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1356 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001357
1358 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1359 argument `table' a pointer to a volatile object.
1360
1361 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1362 argument `table' a pointer to a volatile object.
1363
Jens Claudius2652bd52006-08-18 17:20:37 +000013642006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1365
1366 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1367 variable `_sfnt' as volatile since it must keep its value across
1368 a call to ft_setjmp.
1369 (gxv_validate): Same for local variables `memory' and `valid'.
1370 (classic_kern_validate): Same for local variables `memory',
1371 `ckern', and `valid'.
1372
1373 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1374 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1375 `jstf', and 'valid'.
1376
1377 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1378 local variable `cmap'.
1379
David Turner9fbfc6a2006-08-16 09:11:31 +000013802006-08-16 David Turner <david@freetype.org>
1381
Werner Lemberg12342992006-08-19 11:18:09 +00001382 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1383 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001384
Werner Lemberg12342992006-08-19 11:18:09 +00001385 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1386 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001387
David Turner33f5f242006-08-16 16:50:55 +00001388
Werner Lemberg12342992006-08-19 11:18:09 +00001389 Improvements to native TrueType hinting. This is a first try,
1390 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1391
1392 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1393 `extra_points2'.
1394
1395 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1396 `orus'.
1397
1398 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1399 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1400 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1401 handle `extra_points2'.
1402
1403 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1404 Remove compiler warning.
1405 (cur_to_arg): Remove macro.
1406 (TT_Hint_Glyph): Updated.
1407 (TT_Process_Simple_Glyph): Handle `orus'.
1408
1409 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1410 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1411 (LOC_Ins_IUP): Renamed to...
1412 (IUP_WorkerRec): This.
1413 Add `orus' member.
1414 (Shift): Renamed to...
1415 (_iup_worker_shift): This.
1416 Updated.
1417 (Interp): Renamed to...
1418 (_iup_worker_interpolate): This.
1419 Updated to handle `orus'.
1420 (Ins_IUP): Updated.
1421
1422 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1423 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001424
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014252006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1426
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001427 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001428 build ftvalid in ft2demos. This has been inadvertedly changed
1429 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001430
14312006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1432
Werner Lemberg12342992006-08-19 11:18:09 +00001433 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1434 Jens:
1435 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001436
Werner Lemberg12342992006-08-19 11:18:09 +00001437 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1438 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001439
1440 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1441
Jens Claudius9950adc2006-08-13 12:14:36 +000014422006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1443
Werner Lemberg12342992006-08-19 11:18:09 +00001444 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1445 T1_TOKEN_TYPE_KEY.
1446 (T1_FieldRec): Add `dict'.
1447 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1448 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1449 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001450
Werner Lemberg12342992006-08-19 11:18:09 +00001451 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1452 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001453
1454 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1455
1456 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001457 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1458 not T1_TOKEN_TYPE_ANY.
1459 (ps_parser_load_field): Make sure a token that should be a string or
1460 name is really a string or name.
1461 Avoid memory leak if a keyword has been already encountered and its
1462 value is overwritten.
1463 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1464 T1_FIELD_XXX.
1465 (parse_dict): Ignore keywords that occur in the wrong dictionary
1466 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001467
Werner Lemberg12342992006-08-19 11:18:09 +00001468 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1469 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001470
Werner Lemberg12342992006-08-19 11:18:09 +00001471 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1472 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001473
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014742006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1475
1476 Move creation of field `buildchar' of T1_DecoderRec out of
1477 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1478 of it.
1479
1480 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1481 and `T1_Compute_Max_Advance'.
1482
1483 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1484 Remove field `face', add `len_buildchar'.
1485
1486 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1487 field `buildchar'.
1488
1489 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1490 finisher for T1_Decoder.
1491 (cid_slot_load_glyph): Do not ignore failure when initializing the
1492 T1_Decoder.
1493
1494 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1495 Updated.
1496 (t1_decoder_init): Remove initialization of fields `buildchar' and
1497 `len_buildchar'.
1498 (t1_decoder_done): Remove deallocation of field `buildchar'.
1499
1500 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1501 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1502 T1_Decoder.
1503 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1504 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1505 case of error.
1506
1507 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1508 `buildchar' of T1_FaceRec.
1509
1510 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1511 `buildchar' of T1_FaceRec.
1512
Werner Lemberg1a380e02006-07-14 18:28:08 +000015132006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1514
1515 * freetype2/include/freetype/internal/psaux.h: New macros
1516 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1517 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1518 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1519 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1520 (T1_DecoderRec): New fields `buildchar' and `face'.
1521 (IS_PS_TOKEN): New macro.
1522
1523 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1524 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1525
1526 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1527 `default_design_vector' and `num_default_design_vector'.
1528
1529 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1530 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1531 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1532
1533 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1534 `token' argument to be NULL if we want only to count the number of
1535 tokens.
1536 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1537 want to skip the array.
1538 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1539 want to skip the array.
1540
1541 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1542 support for (partially commented out) othersubrs 19-25, 27, and 28.
1543 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1544 (t1_decoder_done): Release new field `buildchar'.
1545
1546 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1547 functions.
1548 (t1_keywords): Register them.
1549 (t1_allocate_blend): Updated.
1550 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1551 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1552 (parse_dict): Remove `keyword_flags' argument.
1553 Use new macro IS_PS_TOKEN.
1554 Changed function so that later PostScript definitions override
1555 earlier ones.
1556 (t1_init_loader): Initialize new field `keywords_encountered'.
1557 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1558 `len_buildchar'.
1559 Remove `keywords_flags'.
1560
1561 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1562 `keywords_encountered'.
1563 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1564
1565 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1566 New entries for parsing /NDV, /CDV, and /DesignVector.
1567
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015682006-07-07 Werner Lemberg <wl@gnu.org>
1569
1570 Add many checks to protect against malformed PCF files.
1571
1572 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1573 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1574
1575 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1576 data and check that tables don't overlap (using a simple
1577 bubblesort).
1578 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1579 New macros which give the size of data structures in the data
1580 stream.
1581 (pcf_get_properties): Use rough estimates to get array size limits.
1582 Assign `face->nprops' and `face->properties' earlier so that a call
1583 to PCF_Face_Done can do the clean-up in case of error.
1584 Protect against invalid string offsets.
1585 (pcf_get_metrics): Clean up code.
1586 Adjust tracing message levels.
1587 Use rough estimate to get array size limit.
1588 (pcf_get_bitmaps): Clean up code.
1589 Adjust tracing message levels.
1590 Use rough estimates to get offset limits.
1591 (pcf_get_encodings): Adjust tracing message level.
1592 (pcf_get_accel): Clean up code.
1593
Werner Lemberg8eb05252006-06-27 06:20:01 +000015942006-06-26 Werner Lemberg <wl@gnu.org>
1595
1596 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1597 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1598
Werner Lemberg24703f82006-06-26 19:12:51 +000015992006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1600
1601 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1602 (t1_decoder_parse_charstrings): Operator with
1603 opcode 15 pops its two arguments.
1604 Handle the case where the pops of an othersubr may be part of a
1605 subroutine.
1606 Handle unknown othersubrs gracefully: count their operands and let
1607 the following pop operators push the operands as the results onto
1608 the Type1 stack.
1609 Improve handling of setcurrentpoint opcode.
1610
Werner Lembergc011f4c2006-06-26 09:40:00 +000016112006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1612
1613 The Type 1 parser now skips over top-level procedures as required
1614 for a `Simplified Parser'. This makes the parser more robust as it
1615 doesn't poke around in PostScript code. Additionally, it makes the
1616 FontDirectory hackery in src/type1/t1load.c unnecessary.
1617
1618 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1619 (skip_literal_string): Add FT_Error as return value.
1620 Handle escapes better.
1621 (skip_string): Add FT_Error as return value.
1622 Don't set `parser->error' but return error code directly.
1623 (skip_procedure): New function.
1624 (ps_parser_skip_PS_token): Handle procedures.
1625 Update code.
1626 (ps_parser_to_token): Update code.
1627 (ps_parser_load_field_table): Handle bbox entries also.
1628
1629 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1630 Add commented-out code for synthetic fonts.
1631
Werner Lemberga2da05c2006-06-25 06:27:27 +000016322006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1633
1634 Fix two hinting bugs as reported in
1635 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1636
1637 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1638 `first_point' member.
1639
1640 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1641 `first_point'.
1642 (TT_Process_Composite_Glyph): Always untouch points.
1643
1644 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1645 `first_point' and `last_point' in case of composite glyphs.
1646 (Ins_IUP): Fix computation of `end_point'.
1647
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000016482006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1649
Werner Lembergef3d2c22006-06-25 06:07:14 +00001650 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1651 Mac. The original patch was written by David Sachitano and Lawrence
1652 Coopet, and modified by Sean McBride for MPW compatibility. Only
1653 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001654
Werner Lembergef3d2c22006-06-25 06:07:14 +00001655 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1656 Mac OS X platforms.
1657 (OS_INLINE): Undefine before definition.
1658 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1659 FontAssociation table in FOND resource.
1660 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1661 and fontSize at each entry of FontAssociation table in FOND
1662 resource.
1663 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1664 ffStylOff of FamilyRecord header of FOND resource, the header,
1665 fontSize, fontID at each entry of FontAssociation table, and
1666 StyleMapping table.
1667 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001668
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016692006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1670
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001671 Public API of TrueTypeGX, OpenType, and classic kern table validator
1672 should return `FT_Err_Unimplemented_Feature' if validation service
1673 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001674 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001675 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1676
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001677 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1678 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1679 unavailable.
1680 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1681 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001682
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001683 * src/base/ftotval.c (FT_OpenType_Validate): Return
1684 FT_Err_Unimplemented_Feature if OpenType validation service is
1685 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001686
Werner Lembergb10e45a2006-06-08 07:32:56 +000016872006-06-08 Werner Lemberg <wl@gnu.org>
1688
1689 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1690 errors.
1691
David Turner5f1f7502006-06-07 05:11:50 +000016922006-06-07 David Turner <david@freetype.org>
1693
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001694 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1695 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1696 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001697
David Turner457b4a82006-06-06 08:14:14 +000016982006-06-06 David Turner <david@freetype.org>
1699
Werner Lemberg4836f952006-06-06 12:54:08 +00001700 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001701
Werner Lemberg4836f952006-06-06 12:54:08 +00001702 We change `ps_unicodes_init' so that it also takes a
1703 `free_glyph_name' callback to release the glyph names returned by
1704 `get_glyph_name'
1705
1706 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1707 Renamed to ...
1708 (PS_GetGlyphNameFunc): This.
1709 (PS_FreeGlyphNameFunc): New typedef.
1710 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1711
1712 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1713 argument.
1714 (cff_sid_free_glyph_name): New function.
1715 (cff_cmap_unicode_init): Updated.
1716
1717 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1718
1719 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1720 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001721
1722
David Turner09717352006-06-04 14:33:08 +000017232006-06-04 David Turner <david@freetype.org>
1724
Werner Lembergd724f202006-06-04 15:17:41 +00001725 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1726 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001727 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001728
Werner Lembergd724f202006-06-04 15:17:41 +00001729 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1730 of `face->num_glyphs' which missed the last glyph, due to
1731 the offset-by-1 computation, since the PFR format doesn't
1732 guarantee that glyph index 0 corresponds to the `missing
1733 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001734
Werner Lemberg33779662006-05-26 06:30:05 +000017352006-05-25 Werner Lemberg <wl@gnu.org>
1736
1737 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1738 `-no-undefined'. Reported by Christian Biesinger.
1739
Werner Lemberg24773d62006-05-20 08:53:13 +000017402006-05-19 Brian Weed <bw@imaginengine.com>
1741
1742 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1743 have debug information, and debug libraries use `C7 compatible'
1744 debug info.
1745
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000017462006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1747
Werner Lemberga6523a62006-05-20 08:47:01 +00001748 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001749 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001750
Werner Lemberga6523a62006-05-20 08:47:01 +00001751 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1752 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001753
1754 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001755 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001756
17572006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1758
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001759 * build/unix/configure.raw: Add a fallback to disable Carbon
1760 dependency, if configured with no options on Mac OS X.
1761
17622006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1763
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001764 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001765 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001766 the second part of Savannah bug #16590.
1767
Werner Lemberg545c4e52006-05-17 22:55:04 +000017682006-05-18 Werner Lemberg <wl@gnu.org>
1769
1770 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1771 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1772
David Turnerdc3ff312006-05-17 12:59:35 +000017732006-05-17 David Turner <david@freetype.org>
1774
Werner Lemberg545c4e52006-05-17 22:55:04 +00001775 This is a major patch used to drastically improve the performance of
1776 loading glyphs. This both speeds up loading the glyph vectors
1777 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001778
Werner Lemberg545c4e52006-05-17 22:55:04 +00001779 We now use inline assembler code with GCC to implement `FT_MulFix',
1780 which is probably the most important function related to the
1781 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001782
Werner Lemberg545c4e52006-05-17 22:55:04 +00001783 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001784
1785
Werner Lemberg545c4e52006-05-17 22:55:04 +00001786 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1787 `cursor' and `limit'.
1788
1789 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1790 New functions.
1791 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1792 [TEST]: Remove.
1793
1794 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1795 code.
1796
1797 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1798 `FT_ZERO'
1799 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1800 (af_glyph_hints_reload: Rewrite recognition of weak points.
1801
1802 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1803 constant values out of the loops.
1804
1805 * src/autofit/aftypes.h: Updated.
1806
1807 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1808
1809 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1810 product to get orientation.
1811
1812 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1813 (FT_Stream_OpenGzip): Use it to handle small files directly in
1814 memory.
1815
1816 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1817 Improve performance.
1818
1819 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1820 `limit'.
1821
1822 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1823 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1824 exceedingly large values of number of contours. Speed up by
1825 reducing the number of loops.
1826
1827 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1828
1829
1830 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1831 used to detect rogue clients from 4 to 16. This is to prevent some
1832 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1833 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001834
Werner Lembergde2d90a2006-05-17 08:54:30 +000018352007-05-17 Werner Lemberg <wl@gnu.org>
1836
1837 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001838 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001839
18402006-05-16 Werner Lemberg <wl@gnu.org>
1841
1842 * docs/PROBLEMS: Updated icl issues.
1843
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001844----------------------------------------------------------------------------
1845
Werner Lemberg42b63b22007-01-21 21:01:33 +00001846Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001847David Turner, Robert Wilhelm, and Werner Lemberg.
1848
1849This file is part of the FreeType project, and may only be used, modified,
1850and distributed under the terms of the FreeType project license,
1851LICENSE.TXT. By continuing to use, modify, or distribute this file you
1852indicate that you have read the license and understand and accept it
1853fully.
1854
1855
1856Local Variables:
1857version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001858coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001859End: