blob: 2c7e0eb6a6a4dec3c2721b6c6523a7412bafa126 [file] [log] [blame]
Werner Lemberg2a2dca62007-06-06 04:39:37 +000012007-06-06 Werner Lemberg <wl@gnu.org>
2
3 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
4
Werner Lemberga8d65492007-06-06 04:47:49 +00005
6 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
7 FreeType error.
8
Werner Lemberg6c054752007-06-05 05:27:54 +000092007-06-05 Werner Lemberg <wl@gnu.org>
10
11 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
12 (pfr_glyph_load_simple): Convert assertion into normal FreeType
13 error.
14 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000015 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
16 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000017
18 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
19
Werner Lembergf4bc3f42007-06-05 07:32:15 +000020
21 * src/winfnt/winfnt.c (FNT_Face_Init): Check `family_size'.
22
Werner Lemberge5c14d92007-06-05 20:50:37 +000023
24 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
25 in case of parsing error.
26 (ps_parser_load_field): Updated.
27
28 * src/type1/t1load.c (parse_font_matrix): Updated.
29
Werner Lembergad18b362007-06-04 07:04:05 +0000302007-06-04 Werner Lemberg <wl@gnu.org>
31
32 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
33
34 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
35
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000362007-06-03 Werner Lemberg <wl@gnu.org>
37
Werner Lemberg99a320b2007-06-03 19:21:26 +000038 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
39 George Williams (with some modifications).
40
412007-06-03 Werner Lemberg <wl@gnu.org>
42
Werner Lemberg3d507fe2007-06-03 16:54:55 +000043 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
44 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
45 face == NULL. Suggested by Graham Asher.
46
Werner Lembergce280a22007-06-03 05:58:30 +0000472007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
48
49 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
50
Werner Lemberg5b591e42007-06-01 22:16:43 +0000512007-06-02 Werner Lemberg <wl@gnu.org>
52
53 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
54 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
55
56 * src/bdf/bdflib.c (bdf_load_font): Use them.
57
58 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
59
Werner Lembergb9933f42007-06-01 21:27:12 +0000602007-06-01 Werner Lemberg <wl@gnu.org>
61
62 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
63 (FTC_CMapCache_Lookup): Remove unused code.
64
Werner Lembergc793d902007-06-01 20:51:11 +0000652007-06-01 Sean McBride <sean@rogue-research.com>
66
67 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
68 unused.
69
Werner Lembergbebc7b12007-06-01 06:32:30 +0000702007-06-01 Werner Lemberg <wl@gnu.org>
71
72 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
73 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +000074 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +000075
Werner Lembergcb37b3b2007-06-01 06:49:03 +000076 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
77 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
78
Werner Lembergba03af62007-05-30 13:57:02 +0000792007-05-30 Werner Lemberg <wl@gnu.org>
80
81 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
82 against too small binary data strings.
83
84 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
85
David Turnerf0cd69c2007-05-28 15:42:09 +0000862007-05-28 David Turner <david@freetype.org>
87
Werner Lemberg99e0c182007-05-29 07:00:23 +000088 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
89 transformation. This significantly reduces the loading time of CFF
90 glyphs.
David Turner552a9562007-05-28 15:45:35 +000091
Werner Lemberg99e0c182007-05-29 07:00:23 +000092 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +000093
Werner Lemberg99e0c182007-05-29 07:00:23 +000094 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
95 hinting script to CJK, since it works well with more scripts than
96 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
97 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +000098
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000992007-05-25 Werner Lemberg <wl@gnu.org>
100
101 * docs/CHANGES: Updated.
102
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001032007-05-24 Werner Lemberg <wl@gnu.org>
104
105 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
106 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
107
1082007-05-24 Graham Asher <graham.asher@btinternet.com>
109
110 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
111 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
112
David Turner0d0365e2007-05-22 09:53:44 +00001132007-05-22 David Turner <david@freetype.org>
114
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000115 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
116 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000117
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000118
119 Avoid heap blowup with very large .Z font files. This fixes
120 Savannah bug #19910.
121
122 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
123 `in_limit', `pad', `pad_bits', and `in_buff' members.
124 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
125 `buf_total' members.
126
127 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
128 only one argument.
129 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000130
1312007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000132
133 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
134 (ps_dimension_set_mask_bits): Remove `const'.
135
David Turner0d0365e2007-05-22 09:53:44 +00001362007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000137
138 * src/sfnt/ttmtx.c (tt_face_get_metrics)
139 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
140
Werner Lembergb826fa72007-05-19 07:18:48 +00001412007-05-19 Derek Clegg <dclegg@apple.com>
142
143 Savannah patch #5929.
144
145 * include/freetype/tttables.h, src/base/ftobjcs.c
146 (FT_Get_CMap_Format): New function.
147
148 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
149 `format' member.
150 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
151 cmap_info->format.
152
Werner Lemberg6f99c882007-05-19 07:01:49 +00001532007-05-19 Werner Lemberg <wl@gnu.org>
154
155 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
156 before handling subglyphs so that it can be reinitialized each time.
157 This fixes Savannah bug #19859.
158
Werner Lemberg95bc9d32007-05-16 15:19:42 +00001592007-05-16 Werner Lemberg <wl@gnu.org>
160
161 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
162 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
163 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
164 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
165 tt_face_get_metrics): Fix type-punning issues.
166
David Turner0a24bd22007-05-15 10:54:10 +00001672007-05-15 David Turner <david@freetype.org>
168
169 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000170 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
171 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000172 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000173 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000174
Werner Lemberg607dec72007-05-15 06:49:37 +00001752007-05-15 Graham Asher <graham.asher@btinternet.com>
176
177 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
178 variable.
179 * src/autofit/afloader.c (af_loader_load_g): Ditto.
180
181 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
182 (open_face_from_buffer): Initialize `stream'.
183 (FT_Request_Metrics): Remove unused variable.
184 Remove redundant `break' statements.
185 (FT_Get_Track_Kerning): Remove unused variable.
186
187 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
188 afm_parse_kern_data): Remove redundant
189 `break' statements.
190 (afm_parser_parse): Ditto.
191 Don't use uninitialized variables.
192
193 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
194 Use `|' operator instead of `^' to set it.
195 Update all users.
196
197 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
198 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
199
200 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
201 comparison.
202 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
203 (TT_Load_Glyph): Remove unused variable.
204
Werner Lemberg8d463a52007-05-13 16:01:55 +00002052007-05-13 Derek Clegg <dclegg@apple.com>
206
207 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
208 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
209
David Turner711cf842007-05-11 14:36:24 +00002102007-05-11 David Turner <david@freetype.org>
211
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000212 * src/cache/ftbasic.c, include/freetype/ftcache.h
213 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
214 functions that allow us to look up glyphs using an FTC_Scaler object
215 to specify the size, making it possible to use fractional pixel
216 sizes.
217
218 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
219 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000220
Werner Lemberg94be20e2007-05-09 20:02:55 +00002212007-05-09 Graham Asher <graham.asher@btinternet.com>
222
223 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
224 (af_latin_metrics_scale_dim): Fix compiler warnings.
225
Werner Lemberg41271032007-05-06 04:51:48 +00002262007-05-06 Werner Lemberg <wl@gnu.org>
227
228 * builds/win32/visualce/freetype.sln: Removed, as requested by
229 Vincent.
230
Werner Lembergdf49e692007-05-04 06:30:05 +00002312007-05-04 Vincent RICHOMME <richom.v@free.fr>
232
233 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
234 PC targets.
235
236 * docs/CHANGES: Document them.
237
2382007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000239
240 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
241 mmap (which might happen on some RTOS). From Savannah patch #5909.
242
Werner Lemberg106eaf12007-05-03 07:07:47 +00002432007-05-03 Werner Lemberg <wl@gnu.org>
244
245 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
246 * include/freetype/freetype.h (FT_Set_Char_Size): Update
247 documentation.
248
Werner Lemberg1b5267d2007-04-28 21:06:15 +00002492007-04-28 Victor Stinner <victor.stinner@inl.fr>
250
251 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
252 `cmap'.
253
Werner Lembergcc712a22007-04-27 17:16:50 +00002542007-04-27 Werner Lemberg <wl@gnu.org>
255
256 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
257 number of points in contours. Problem reported by Victor Stinner
258 <victor.stinner@haypocalc.com>.
259 (TT_Process_Simple_Glyph): Synchronize variable types.
260
Werner Lemberg45bb18f2007-04-26 06:26:35 +00002612007-04-26 Werner Lemberg <wl@gnu.org>
262
263 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
264 zero in case of error. This fixes Savannah bug #19689.
265
David Turnera8b45e62007-05-11 14:10:30 +00002662007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
267
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000268 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
269 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000270
Werner Lembergfcc1f472007-04-10 11:51:50 +00002712007-04-10 Martin Horak <horakm@centrum.cz>
272
273 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
274 Ignore `hhea' table. This fixes Savannah bug #19261.
275
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002762007-04-09 Werner Lemberg <wl@gnu.org>
277
278 * Version 2.3.4 released.
279 =========================
280
281
282 Tag sources with `VER-2-3-4'.
283
284 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
285 version number to 2.3.4.
286
287 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
288 builds/win32/visualc/freetype.dsp,
289 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
290
291 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
292
293 * builds/unix/configure.raw (version_info): Set to 9:15:3.
294
Werner Lembergf4a52a62007-04-09 08:40:11 +00002952007-04-09 Martin Horak <horakm@centrum.cz>
296
297 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
298 memory stream to avoid a crash with the incremental memory
299 interface (Savannah bug #19260).
300
David Turner1dcb4442007-04-06 08:19:04 +00003012007-04-06 David Turner <david@freetype.org>
302
Werner Lembergc81cf612007-04-06 09:28:23 +0000303 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
304 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000305
Werner Lemberg9f83e052007-04-05 02:28:23 +00003062007-04-04 Werner Lemberg <wl@gnu.org>
307
308 * Version 2.3.3 released.
309 =========================
310
311
312 Tag sources with `VER-2-3-3'.
313
314 * docs/CHANGES: Mention CVE-2007-1351.
315
David Turner7338ec22007-04-03 14:30:34 +00003162007-04-03 David Turner <david@freetype.org>
317
318 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000319 if one of the resolution values is 0, treat it as if it were the
320 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000321
David Turnere6472c12007-04-02 13:13:54 +00003222007-04-02 David Turner <david@freetype.org>
323
Werner Lemberg94f12272007-04-03 07:19:53 +0000324 Add special code to detect `extra-light' fonts and do not snap their
325 stem widths too much to avoid bizarre hinting effects.
326
327 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
328 `extra_light' members.
329
330 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
331 them.
332 (af_latin_metrics_scale_dim): Set `extra_light'.
333 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000334
David Turner3f539692007-03-28 14:53:40 +00003352007-03-28 David Turner <david@freetype.org>
336
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000337 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000338 padding.
339
Werner Lemberga08b2172007-03-28 07:17:17 +00003402007-03-28 Werner Lemberg <wl@gnu.org>
341
342 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
343 gracefully.
344 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000345 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000346 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
347 number of code points in Unicode.
348
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000349 * builds/win32/visualc/index.html,
350 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000351 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000352 s/232/233/.
353
354 * docs/CHANGES: Mention ftdiff.
355
David Turner3b242d32007-03-26 12:03:04 +00003562007-03-26 David Turner <david@freetype.org>
357
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000358 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
359 corresponding code.
360 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000361
Werner Lemberga08b2172007-03-28 07:17:17 +0000362 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000363 computations in order to ignore single-point contours. These are
364 never rasterized and correspond in certain fonts to mark-attach
365 points that are very far from the glyph's real outline, ruining the
366 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000367
Werner Lemberga08b2172007-03-28 07:17:17 +0000368 * src/autofit/afloader.c (af_loader_load_g): In the case of
369 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
370 Otherwise code that uses them will most certainly ruin the fixed
371 advance property.
David Turner23553d62007-03-26 13:37:17 +0000372
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000373 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
374 documentation and bump version number to 2.3.3.
375
376 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
377
378 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000379
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003802007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
381
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000382 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
383 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000384 * builds/vms/ftconfig.h: Ditto.
385 * include/freetype/config/ftconfig.h: Ditto.
386
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00003872007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
388
Werner Lemberg14ffe092007-03-22 06:12:43 +0000389 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
390 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000391 proposed by Sean McBride:
392 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
393
3942007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
395
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000396 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
397 setjmp, proposed by Sean McBride:
398 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
399
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004002007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
401
Werner Lembergc9f6c662007-03-21 13:30:14 +0000402 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
403 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
404 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000405
David Turner74c34eb2007-03-18 07:19:31 +00004062007-03-18 David Turner <david@freetype.org>
407
Werner Lembergc9f6c662007-03-21 13:30:14 +0000408 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
409 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000410
Werner Lembergc9f6c662007-03-21 13:30:14 +0000411 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000412
David Turner89020d92007-03-17 17:48:57 +00004132007-03-17 David Turner <david@freetype.org>
414
Werner Lembergc9f6c662007-03-21 13:30:14 +0000415 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
416 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000417
Werner Lemberg25d592a2007-03-09 07:59:35 +00004182007-03-09 Werner Lemberg <wl@gnu.org>
419
420 * Version 2.3.2 released.
421 =========================
422
423
424 Tag sources with `VER-2-3-2'.
425
426 * builds/win32/visualc/index.html,
427 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000428 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000429 s/231/232/.
430
David Turner3a51afa2007-03-08 10:50:38 +00004312007-03-08 David Turner <david@freetype.org>
432
Werner Lemberg25d592a2007-03-09 07:59:35 +0000433 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000434
Werner Lemberg25d592a2007-03-09 07:59:35 +0000435 * builds/unix/configure.raw (version_info): Set to 9:13:3.
436
437 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
438
439 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000440
Werner Lemberg1e259de2007-03-08 15:39:21 +0000441 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
442 function to work properly, over-writing user-provided buffers in
443 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000444
David Turner121cad52007-03-08 16:43:50 +0000445
Werner Lemberg3d92f082007-03-06 11:59:24 +00004462007-03-05 Werner Lemberg <wl@gnu.org>
447
448 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
449 macro for `strstr'.
450
451 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
452 `trick_names', as suggested by Ivan Nincic.
453
David Turner085bc6e2007-03-05 17:40:03 +00004542007-03-05 David Turner <david@freetype.org>
455
Werner Lembergd112cf02007-03-06 12:06:56 +0000456 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
457 case FT_Init_FreeType fails for some reason. Problem reported by
458 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000459
Werner Lembergd112cf02007-03-06 12:06:56 +0000460 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
461 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
462 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
463 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000464
Werner Lembergd112cf02007-03-06 12:06:56 +0000465 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
466 signed values, not unsigned ones. Problem reported by Johannes
467 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000468
David Turner601aefe2007-02-21 16:47:49 +00004692007-02-21 David Turner <david@freetype.org>
470
Werner Lembergde5e6862007-02-25 21:06:43 +0000471 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
472 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000473
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004742007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
475
476 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
477 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
478 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
479
Werner Lemberga0915172007-02-16 08:12:50 +00004802007-02-16 Werner Lemberg <wl@gnu.org>
481
482 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
483 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
484
David Turner2c4500e2007-02-14 15:08:47 +00004852007-02-14 David Turner <david@freetype.org>
486
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000487 It seems that the following changes fix most of the known
488 interpreter problems with my fonts, but more testing is needed,
489 though.
490
491 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
492 (TT_MulFix14): Rewrite.
493 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
494 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000495
Werner Lembergc6a14082007-02-12 22:08:15 +00004962007-02-12 Werner Lemberg <wl@gnu.org>
497
498 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
499 warnings.
500
501 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
502 (bdf_interpret_style): Ditto.
503
David Turnerc0f9c4a2007-02-12 14:55:03 +00005042007-02-12 David Turner <david@freetype.org>
505
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000506 Simplify projection and dual-projection code interface.
507
Werner Lemberg406d25f2007-02-12 22:01:18 +0000508 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
509 FT_Vector' as argument type.
510 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
511 Updated.
512 (CUR_fast_project, CUR_fast_dualproj): New macros.
513 (Project, Dual_Project, Project_x, Project_y): Updated.
514 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
515 macros.
516
517
518 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
519 adjustments for the non-light auto-hinted modes. Gets rid of
520 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000521
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000522 * src/autofit/aflatin.c (af_latin_hints_link_segments,
523 af_latin_hints_compute_edges): Slight optimization of the segment
524 linker and better handling of serif segments to get rid of broken
525 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000526
David Turnerc0f9c4a2007-02-12 14:55:03 +0000527
Werner Lemberg442bfb82007-02-12 21:44:10 +0000528 Introduce new string functions and the corresponding macros to get
529 rid of various uses of strcpy and other `evil' functions, as well as
530 to simplify a few things.
531
532 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
533 ft_mem_strcpyn): New declarations.
534 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
535 macros.
536 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
537 functions.
538
539 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
540 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
541 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
542 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
543 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
544 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
545 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
546 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000547
Werner Lemberg406d25f2007-02-12 22:01:18 +0000548 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
549
Werner Lemberg582067d2007-02-11 15:03:05 +00005502007-02-11 Werner Lemberg <wl@gnu.org>
551
552 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
553 non-spacing glyphs.
554
Werner Lemberg8f474532007-02-07 08:31:01 +00005552007-02-07 Tom Parker <palfrey@tevp.net>
556
557 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
558 pointer.
559
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005602007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
561
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000562 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
563 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000564 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000565 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
566 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
567 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
568 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000569
570 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
571 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000572 * builds/mac/ftmac.c: Ditto.
573
5742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
575
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000576 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000577 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000578 #include <ftmac.c>.
579
5802007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
581
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000582 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
583 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
584 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
585 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
586 FT_GetFilePath_From_Mac_ATS_Name.
587 * builds/mac/ftmac.c: Ditto.
588
5892007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
590
Werner Lembergdcbb7082007-02-08 08:54:09 +0000591 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000592 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
593 for passing to FT_New_Face_From_FSSpec.
594
5952007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
596
Werner Lembergdcbb7082007-02-08 08:54:09 +0000597 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000598 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000599
600 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
601 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000602 * builds/mac/ftmac.c (OS_INLINE): Ditto.
603
Werner Lemberg313d7772007-02-01 08:10:45 +00006042007-02-01 Werner Lemberg <wl@gnu.org>
605
606 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
607 Explain why applications shouldn't use it. Found by Alexei.
608
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006092007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000610
611 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
612 message.
613
614 * src/gxvalid/gxvmort1.c
615 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
616 message.
617
Werner Lemberg53935932007-01-31 08:53:02 +00006182007-01-31 Werner Lemberg <wl@gnu.org>
619
620
621 * Version 2.3.1 released.
622 =========================
623
624
625 Tag sources with `VER-2-3-1-FINAL'.
626
627 * builds/win32/visualc/freetype.dsp,
628 builds/win32/visualc/freetype.vcproj: s/230/231/.
629 * builds/win32/visualc/index.html: s/221/231/.
630
631 * vms_make.com: Add `ftgasp'.
632
David Turnera7ee6082007-01-30 10:33:53 +00006332007-01-30 David Turner <david@freetype.org>
634
Werner Lemberg53935932007-01-31 08:53:02 +0000635 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000636
Werner Lemberg53935932007-01-31 08:53:02 +0000637 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000638
Werner Lemberg25d592a2007-03-09 07:59:35 +0000639 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000640 s/2.3.0/2.3.1/.
641
642 * builds/unix/configure.raw (version_info): Set to 9:12:3.
643
644
645 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
646 (af_loader_load_g): Disable the warper (i.e., the light hinting
647 improvements) to make a 2.3.1 bugfix release before introducing a
648 new feature. This should give us more time to tune and improve the
649 warper for the next release.
650
651 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000652
David Turnerd91eebd2007-01-26 15:05:41 +00006532007-01-25 David Turner <david@freetype.org>
654
Werner Lembergbf241762007-01-26 16:08:49 +0000655 For light auto-hinting, improve glyph advance widths and resurrect
656 normal/full hinting to its normal quality.
657
658 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
659 and `xmax_delta'.
660 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
661 and `xmax_delta'.
662
663 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
664 preprocessor conditional with if-clause, handling both light and
665 normal mode.
666
667 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
668 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000669
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00006702007-01-25 Werner Lemberg <wl@gnu.org>
671
672 * docs/release: Updated -- Savannah uses a new uploading scheme.
673
David Turnera42567b2007-01-25 12:23:37 +00006742007-01-25 David Turner <david@freetype.org>
675
Werner Lembergd7855662007-01-25 13:53:56 +0000676 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000677
Werner Lembergd7855662007-01-25 13:53:56 +0000678 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
679 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
680 functions.
David Turnera42567b2007-01-25 12:23:37 +0000681
Werner Lembergd7855662007-01-25 13:53:56 +0000682 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000683
Werner Lembergb1be9e82007-01-25 11:50:00 +00006842007-01-25 Werner Lemberg <wl@gnu.org>
685
686 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000687 correctly in a sanity check. Since this function is only used to
688 load local and global functions, any charstring that called the last
689 local/global function would fail otherwise. This fixes Savannah bug
690 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000691
692 * docs/CHANGES: Document it.
693
David Turnerb6de8d12007-01-23 15:51:50 +00006942007-01-23 David Turner <david@freetype.org>
695
Werner Lembergb1be9e82007-01-25 11:50:00 +0000696 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
697 prevented compilation when disabling both the unpatented and the
698 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000699
Werner Lembergb1be9e82007-01-25 11:50:00 +0000700
701 Fix and enable the warper to improve `light' hinting mode. This is
702 not necessarily a final version, but it seems to work well.
703
704 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
705 Disable code.
706 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
707 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
708
709 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
710 (af_warper_compute_line_best): Fix array size of `scores'.
711 (af_warper_compute): Better handling of border cases.
712 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
713 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000714
Werner Lemberg011d1112007-01-21 09:36:00 +00007152007-01-21 Werner Lemberg <wl@gnu.org>
716
Werner Lemberg42b63b22007-01-21 21:01:33 +0000717 * ChangeLog: Split off older entries into...
718 * ChangeLog.22: This new file.
719
7202007-01-21 Werner Lemberg <wl@gnu.org>
721
Werner Lemberg555258f2007-01-21 09:46:37 +0000722 * docs/CHANGES: Document SHZ fix.
723
7242007-01-21 George Williams <gww@silcom.com>
725
726 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
727 points.
728
7292007-01-21 Werner Lemberg <wl@gnu.org>
730
Werner Lemberg011d1112007-01-21 09:36:00 +0000731 * src/sfnt/ttmtx.c (tt_face_get_metrics)
732 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
733
Werner Lemberg87a5a432007-01-17 12:44:39 +00007342007-01-17 Werner Lemberg <wl@gnu.org>
735
Werner Lembergb8003292007-01-17 12:56:25 +0000736
737 * Version 2.3.0 released.
738 =========================
739
740
741 Tag sources with `VER-2-3-0-FINAL'.
742
7432007-01-17 Werner Lemberg <wl@gnu.org>
744
Werner Lemberg87a5a432007-01-17 12:44:39 +0000745 * docs/release: Updated.
746
David Turner22122722007-01-16 20:06:44 +00007472007-01-16 David Turner <david@freetype.org>
748
Werner Lemberg87a5a432007-01-17 12:44:39 +0000749 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
750 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
751 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
752 warnings.
David Turner22122722007-01-16 20:06:44 +0000753
Werner Lemberg267e1d72007-01-15 07:48:09 +00007542007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
755
756 * builds/amiga/makefile, builds/amiga/makefile.os4,
757 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
758
759 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
760
Werner Lemberg8c4120d2007-01-15 06:42:40 +00007612007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
762
763 Fix various compiler warnings.
764
765 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
766 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
767 s/index/strike_index/.
768 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
769
770 * src/gxvalid/gxvmorx5.c
771 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
772
773 * src/truetype/ttinterp.c (Compute_Point_Displacement),
774 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
775 uninitialized variables.
776
Werner Lemberg6164a9d2007-01-13 23:01:36 +00007772007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
778
779 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
780
Werner Lemberg281c1482007-01-13 22:50:51 +00007812007-01-13 Werner Lemberg <wl@gnu.org>
782
783 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
784 versions up to 0x3FF without complaining.
785
Werner Lembergac250b22007-01-13 14:01:36 +00007862007-01-13 Derek Clegg <dclegg@apple.com>
787
788 Add FT_Get_PS_Font_Info interface to CFF driver.
789
790 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
791 (CFF_FontRec): Add `font_info' field.
792
793 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
794 (cff_font_done): Free font->font_info if necessary.
795
796 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
797 (cff_service_ps_info): Register cff_ps_get_font_info.
798
Werner Lemberg23df31a2007-01-13 08:45:00 +00007992007-01-13 Werner Lemberg <wl@gnu.org>
800
801 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
802 with C++ compiler.
803
804 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
805 af_glyph_hints_dump_edges): Ditto.
806
807 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
808 `modules.cfg').
809
810 * src/sfnt/ttsbit0.h: Remove.
811
812 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
813
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008142007-01-12 David Turner <david@freetype.org>
815
816 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
817 bug in the bitmap emboldener if the pitch of the source bitmap is
818 much larger than its width.
819
820 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
821 compilation warning.
822
Werner Lemberg6d96d312007-01-12 10:30:19 +00008232007-01-12 Werner Lemberg <wl@gnu.org>
824
825 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
826 `automake' CVS module from sources.redhat.com.
827
Werner Lemberg17432b52007-01-12 09:28:44 +00008282007-01-11 Werner Lemberg <wl@gnu.org>
829
830 * src/type1/t1load.c (is_space): Removed.
831 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
832 (parse_charstrings): Use IS_PS_TOKEN.
833
834
835 * autogen.sh: Avoid bash specific syntax.
836
David Turner038ace22007-01-11 15:00:59 +00008372007-01-11 David Turner <david@freetype.org>
838
Werner Lemberg17432b52007-01-12 09:28:44 +0000839 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000840
Werner Lemberg17432b52007-01-12 09:28:44 +0000841 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000842
Werner Lemberg17432b52007-01-12 09:28:44 +0000843 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
844 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000845 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000846
Werner Lemberg17432b52007-01-12 09:28:44 +0000847 * autogen.sh: Small fix to get it working on Mac OS X properly:
848 The issue is that GNU libtool is called `glibtool' on this platform,
849 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000850
David Turner2628ea92007-01-10 13:15:56 +00008512007-01-10 David Turner <david@freetype.org>
852
Werner Lemberg17432b52007-01-12 09:28:44 +0000853 * all-sources: Tag all sources with VER-2-3-0-RC1 and
854 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000855
Werner Lemberg17432b52007-01-12 09:28:44 +0000856 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
857 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
858 version number to 2.3.0.
859
860 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
861 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000862
863 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000864 include/freetype/ftlcdfil.h: Update reference documentation with
865 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000866
Werner Lemberg17432b52007-01-12 09:28:44 +0000867 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
868 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000869
Werner Lembergbf02d392007-01-10 07:07:37 +00008702007-01-10 Derek Clegg <dclegg@apple.com>
871
872 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
873 values.
874
David Turnerf48b60e2007-01-08 15:15:32 +00008752007-01-08 David Turner <david@freetype.org>
876
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000877 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000878
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000879 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
880 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000881 corresponding to a given character pixel size.
882
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000883 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
884 `gasp' table, in order to avoid potential problems with later
885 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000886
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000887 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
888 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000889
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000890 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
891 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
892 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
893 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000894
Werner Lemberge6b6f372007-01-07 00:06:47 +00008952007-01-07 Werner Lemberg <wl@gnu.org>
896
Werner Lembergb8004d22007-01-07 09:13:38 +0000897 * src/cid/cidparse.c (cid_parser_new): Improve error message for
898 Type 11 fonts.
899 Scan for `/sfnts' token.
900
9012007-01-07 Werner Lemberg <wl@gnu.org>
902
903 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000904
Werner Lembergbe5f7972007-01-06 07:51:48 +00009052007-01-06 Werner Lemberg <wl@gnu.org>
906
907 * src/cff/cffload.c (cff_index_init): Remove unused variable.
908 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
909
David Turnera8cf42b2007-01-04 16:46:46 +00009102007-01-04 David Turner <david@freetype.org>
911
Werner Lembergf6294392007-01-06 07:47:45 +0000912 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
913 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000914
Werner Lembergf6294392007-01-06 07:47:45 +0000915
916 Do not allocate interpreter-specific tables in memory if we are not
917 going to load glyphs with the bytecode interpreter anyway.
918
919 * src/truetype/ttgload.c (tt_loader_init): Load execution context
920 only if glyph is hinted.
921 Updated.
922 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
923 and `cvs_ready'.
924 Add `tt_size_ready_bytecode' declaration.
925 * src/truetype/ttobjs.c (tt_size_done_bytecode,
926 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
927 (tt_size_init): Move most code into `tt_size_init_bytecode'.
928 (tt_size_done): Move most code into `tt_size_done_bytecode'.
929 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000930
David Turner91a34022007-01-05 14:47:08 +0000931
Werner Lembergf6294392007-01-06 07:47:45 +0000932 Don't extract the metrics table from the SFNT font file. Instead,
933 reparse it on each glyph load. The runtime difference is not
934 noticeable, and it can save a lot of heap memory when memory-mapped
935 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000936
Werner Lembergf6294392007-01-06 07:47:45 +0000937 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
938 `horz_metrics_offset' and `vert_metrics_ofset'.
939 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
940 Updated.
941
942
943 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
944
945
946 Do not load the CFF index offsets into memory, since this wastes a
947 *lot* of heap memory with large Asian CFF fonts. There is no
948 significant performance loss.
949
950 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
951 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
952 `data_size'.
953 (CFF_CharsetRec): Add field `num_glyphs'.
954
955 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
956 cff_charset_cid_to_gindex): New functions.
957 (cff_new_index): Renamed to...
958 (cff_index_init): This. Update all callers.
959 Updated -- some code has been moved to `cff_index_load_offsets'.
960 (cff_done_index): Renamed to...
961 (cff_index_done): This. Update all callers.
962 (cff_index_get_pointers, cff_index_access_element): Updated to use
963 stream offsets.
964 (cff_charset_compute_cids): Set `num_glyphs' field.
965 (cff_encoding_load): Updated.
966
967 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000968
9692007-01-04 David Turner <david@freetype.org>
970
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000971 * docs/INSTALL.UNIX: Simplify some parts, add reference to
972 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000973
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000974 * README.CVS: Add common problem description and solution
975 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000976
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000977 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000978
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000979 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000980
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000981 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000982
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000983 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
984 (TWorker): This.
985 Remove `count_table' and `memory'.
986 Make `grays' a pointer.
987 (TRaster): New structure.
988 (count_table): New static array.
989 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
990 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
991 ft_black_set_mode, ft_black_render): Updated.
992 (ft_black_init): Don't initialize `count_table'.
993 (ft_black_reset): Use the render pool. This saves about 6KB of
994 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000995
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000996 * src/smooth/ftgrays.c (TRaster): Replaced with...
997 (TWorker): This.
998 Remove `memory'.
999 (TRaster): New structure.
1000
1001 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1002 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1003 gray_render_span, gray_raster_render): Updated.
1004 (gray_raster_reset): Use the render pool. This saves about 6KB of
1005 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001006
David Turner8a6c44e2007-01-04 17:03:11 +00001007 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1008 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001009 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1010 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1011 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001012
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001013 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1014 Remove a typo that results in no hinting and a memory leak with some
1015 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001016
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001017 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001018 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001019 CFF_Faces in it. We need to close all faces before destroying the
1020 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001021
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010222007-01-02 Werner Lemberg <wl@gnu.org>
1023
1024 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1025 Remove compiler warning.
1026
David Turner9207e002007-01-02 16:58:13 +000010272007-01-02 David Turner <david@freetype.org>
1028
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001029 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001030
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000010312006-12-31 Masatake YAMATO <jet@gyve.org>
1032
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001033 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1034 function.
1035 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001036 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001037 `gxv_kern_subtable_fmt0_pairs_validate'.
1038
David Turner115b4422006-12-22 11:37:05 +000010392006-12-22 David Turner <david@freetype.org>
1040
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001041 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1042 warnings.
David Turner115b4422006-12-22 11:37:05 +00001043
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001044 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1045 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001046
Werner Lemberg4755bf72006-12-16 08:58:44 +000010472006-12-16 Anders Kaseorg <anders@kaseorg.com>
1048
1049 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1050 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1051
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010522006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1053
Werner Lemberg9b774e22007-01-16 06:11:27 +00001054 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001055 sync with the modification by Jens Claudius on 2006-08-22; cf.
1056 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 +00001057
10582006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1059
1060 * src/base/ftmac.c: Specialized for Mac OS X only.
1061 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1062 * builds/unix/configure.raw: Ditto. When explicit switches for
1063 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1064 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1065
10662006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1067
1068 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1069 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1070 instead of src/base/ftmac.c
1071 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1072 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1073 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1074 that cannot be built at present.
1075
10762006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1077
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001078 * src/base/ftobjs.c: Improvement of resource fork handler for
1079 POSIX, cf.
1080 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001081 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1082 format or .dfont, to simulate the face index number counted by ftmac.c.
1083 (IsMacResource): Return the number of scalable faces correctly.
1084
Werner Lembergec5b4502006-12-10 07:51:38 +000010852006-12-10 Werner Lemberg <wl@gnu.org>
1086
1087 * builds/toplevel.mk (version): Protect against `distclean' target.
1088
Werner Lembergb26b3142006-12-09 20:01:43 +000010892006-12-09 Werner Lemberg <wl@gnu.org>
1090
1091 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1092 or `type'.
1093
1094 * builds/freetype.mk (version): Extracted from freetype.h, using
1095 GNU make's built-in string functions.
1096 (refdoc): Use $(version) instead of static version number.
1097
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010982006-12-08 Werner Lemberg <wl@gnu.org>
1099
1100 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1101
Werner Lemberg15c29502006-12-09 07:29:54 +000011022006-12-08 Vladimir Volovich <vvv@vsu.ru>
1103
1104 * src/tools/apinames (State): Remove final comma in structure -- xlc
1105 v5 under AIX 4.3 doesn't like this.
1106
David Turnerdbf3b432006-12-07 21:18:09 +000011072006-12-07 David Turner <david@freetype.org>
1108
Werner Lemberg256a3512006-12-08 06:49:33 +00001109 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1110 to the spacing of auto-fitted glyphs. This only impacts rare
1111 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001112
Werner Lemberg11171312006-12-03 09:43:40 +000011132006-12-03 Werner Lemberg <wl@gnu.org>
1114
1115 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1116
Werner Lemberg960ba592006-12-01 08:20:47 +000011172006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001118
Werner Lemberg960ba592006-12-01 08:20:47 +00001119 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1120 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1121 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001122
David Turner80658e52006-11-28 08:09:20 +00001123
Werner Lemberg960ba592006-12-01 08:20:47 +00001124 * include/freetype/ftxf86.h: Fix and extend comment so that it
1125 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001126
Werner Lemberg960ba592006-12-01 08:20:47 +00001127 * include/freetype/ftchapters.h: Add `font_format' section.
1128
1129
1130 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1131 to TOC in index page.
1132
11332006-11-28 David Turner <david@freetype.org>
1134
1135 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1136 trying to render into a zero-width/height bitmap, not an error code.
1137
1138 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1139
1140 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1141 ones instead.
1142
1143 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1144 variable.
David Turner80658e52006-11-28 08:09:20 +00001145
Werner Lemberg8636c292006-11-26 22:28:13 +000011462006-11-26 Pierre Hanser <hanser@club-internet.fr>
1147
1148 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1149
Werner Lemberg960ba592006-12-01 08:20:47 +000011502006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001151
Werner Lemberg960ba592006-12-01 08:20:47 +00001152 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1153 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1154 Add stubs to link the `ftgrid' test program when debugging is
1155 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001156
Werner Lemberg960ba592006-12-01 08:20:47 +000011572006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001158
1159 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001160 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1161
1162 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1163 Emit more sensible information.
1164
1165 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1166
1167 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1168 rounding of blue values.
1169 (af_latin_hints_compute_segments): Hint segment heights.
1170 (af_latin_hints_link_segments): Reduce `len_score' value.
1171 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1172 value and use `height' member for comparisons.
1173 (af_latin_hint_edges): Extend logging message.
1174 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001175
Werner Lemberg91959bf2006-11-22 10:36:55 +000011762006-11-22 Werner Lemberg <wl@gnu.org>
1177
1178 Fix Savannah bug #15553.
1179
1180 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1181 program after a change from mono to grayscaling (and vice versa).
1182 Use correct constant for comparison to get `exec->grayscale'.
1183
Werner Lemberg913a3652006-11-19 09:19:17 +000011842006-11-18 Werner Lemberg <wl@gnu.org>
1185
1186 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001187 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001188 This patch fixes Savannah bug #18301.
1189
1190 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1191 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1192 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1193 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1194 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1195 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1196 (FNT_Load_Glyph): Check validity of `glyph_index'.
1197
David Turner7bab6ae2006-11-13 11:25:06 +000011982006-11-13 David Turner <david@freetype.org>
1199
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001200 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1201 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001202
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001203 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1204 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1205 when building the library to change the default LCD filter to be
1206 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001207
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001208 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001209
David Turner8765c712006-11-10 16:49:42 +000012102006-11-10 David Turner <david@freetype.org>
1211
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001212 * src/smooth/ftsmooth.c: API change for the LCD
1213 filter. The FT_LcdFilter value is an enumeration describing which
1214 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1215 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1216 algorithm which produces strong color fringes for everything
1217 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001218
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001219 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1220 second parameter to an enum type.
1221
1222 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1223 (_ft_lcd_filter): Rename to...
1224 (_ft_lcd_filter_fir): This.
1225 Update parameters.
1226 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1227 (FT_Library_Set_LcdFilter): Update parameters.
1228 Handle new filter modes.
1229
1230 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1231 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1232 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1233 callback and update other fields.
1234
1235 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1236 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1237 Other minor improvements.
1238
1239 * src/autofit/aflatin.c: Various tiny improvements that drastically
1240 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1241 (af_latin_hints_compute_edges): Fix typo.
1242 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001243
David Turner4e9cc3c2006-11-09 16:31:52 +000012442006-11-09 David Turner <david@freetype.org>
1245
Werner Lemberg49c77a82006-11-09 21:51:57 +00001246 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1247 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001248
Werner Lemberg5e430892006-11-07 09:35:03 +000012492006-11-07 Zhe Su <james.su@gmail.com>
1250
1251 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1252 also.
1253
Werner Lemberg111b5ae2006-11-03 09:40:12 +000012542006-11-03 Werner Lemberg <wl@gnu.org>
1255
1256 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1257
David Turner40604742006-11-02 16:37:35 +000012582006-11-02 David Turner <david@freetype.org>
1259
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001260 Add a few tweaks to better handle serif fonts.
1261 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001262
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001263 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1264 segments that are less than 1.5 pixels high. This gets rid of
1265 *many* corner cases with serifs.
1266 (af_latin_align_linked_edge): Add logging message.
1267 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1268 Add logging messages.
1269 Handle AF_EDGE_FLAG flag specially.
1270
1271 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1272 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1273
1274 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1275 Update external declarations.
1276 (af_corner_orientation, af_corner_is_flat): Replaced by...
1277
1278 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1279 ft_corner_is_flat): These declarations.
1280
1281 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1282 Comment out. Replaced by...
1283
1284 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1285 These functions. Update all callers.
1286 (FT_Add64) [!FT_LONG64]: Simplify.
1287
1288 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1289 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1290 production of garbage by missing lots of segments.
1291
1292 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1293
1294 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1295 [AF_DEBUG]: Set _af_debug_hints.
1296
1297
1298 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1299 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1300 and ft_corner_orientation.
1301
1302
1303 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001304
Werner Lemberge88c5262006-10-24 05:46:26 +000013052006-10-24 Werner Lemberg <wl@gnu.org>
1306
1307 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1308
1309 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1310 as argument.
1311
David Turnera1861392006-10-23 16:00:59 +000013122006-10-23 Zhe Su <zsu@novell.com>
1313
Werner Lemberg715e96e2006-10-24 05:28:45 +00001314 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1315 better deal with broken Asian fonts with strange glyphs, having
1316 self-intersections and other peculiarities. The used algorithm is
1317 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001318
David Turnere140f142006-10-23 08:56:57 +000013192006-10-23 David Turner <david@freetype.org>
1320
Werner Lemberg715e96e2006-10-24 05:28:45 +00001321 Speed up the CFF font loader. With some large CFF fonts,
1322 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001323
Werner Lemberg715e96e2006-10-24 05:28:45 +00001324 * src/cff/cffload.c (cff_get_offset): Removed.
1325 (cff_new_index): Inline functionality of `cff_get_offset'.
1326 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1327 (cff_charset_done): Call `cff_charset_free_cids'.
1328 (cff_charset_load): Call `cff_charset_compute_cids'.
1329 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1330
1331 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1332 with FT_NEXT_XXX.
1333
1334
1335 Speed up the Postscript hinter, with more than 100% speed increase
1336 on my machine.
1337
1338 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1339 psh_corner_orientation): New functions.
1340 (psh_glyph_compute_inflections): Merge loops for efficiency.
1341 Use `psh_corner_orientation'.
1342 (psh_glyph_init): Use `psh_corner_is_flat'.
1343 (psh_hint_table_find_strong_point): Renamed to...
1344 (psh_hint_table_find_strong_points): This.
1345 Rewrite, adding argument to handle all points at once.
1346 Update all callers.
1347 (PSH_MAX_STRONG_INTERNAL): New macro.
1348 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001349
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013502006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1351
1352 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001353 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001354
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000013552006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1356
1357 * docs/INSTALL.CROSS: New document file for cross-building.
1358
1359 * builds/unix/configure.raw: Preliminary cross-building support.
1360 Find native C compiler and pass it by CC_BUILD, and
1361 find suffix for native executable and pass it by EXEEXT_BUILD.
1362 Also suffix for target executable is passed by EXEEXT.
1363
Werner Lembergb9e6d692006-10-15 08:58:40 +00001364 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1365 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001366 CC_BUILD and EXEEXT_BUILD.
1367
Werner Lembergb9e6d692006-10-15 08:58:40 +00001368 * builds/exports.mk (APINAMES_EXE): Change the extension for
1369 apinames from the suffix for target (E) to that for building host
1370 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001371
Werner Lemberg82a07e92006-10-12 06:20:44 +000013722006-10-12 Werner Lemberg <wl@gnu.org>
1373
1374 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1375 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1376 which reference those files.
1377
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000013782006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1379
Werner Lembergb9e6d692006-10-15 08:58:40 +00001380 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1381 embedded in freetype2.pc and freetype-config. Use it to record
1382 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001383
1384 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1385
1386 * builds/unix/freetype-config.in: Ditto.
1387
Werner Lemberg28e17d92006-10-11 17:27:47 +000013882006-10-11 Werner Lemberg <wl@gnu.org>
1389
1390 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1391 development.
1392
Jens Claudius336d2292006-10-03 08:53:37 +000013932006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1394
1395 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1396 argument to ft_setjmp.
1397
1398 * include/freetype/internal/ftvalid.h: Add comment that
1399 ft_validator_run must not be used.
1400
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014012006-10-01 Werner Lemberg <wl@gnu.org>
1402
1403 * src/base/ftbase.c: Undo change from 2006-09-30.
1404
1405 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1406
14072006-09-30 David Turner <david@freetype.org>
1408
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001409 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1410 s/unpatented_hinting/ignore_unpatented_hinter/.
1411 Update all callers.
1412
1413 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1414 auto-hinting shall be used or not.
1415
1416 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001417
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014182006-09-30 Werner Lemberg <wl@gnu.org>
1419
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001420 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1421 in use).
1422
1423 * src/base/ftbase.c: Include `ftlcdfil.c'.
1424
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014252006-09-29 Werner Lemberg <wl@gnu.org>
1426
1427 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1428 overlapping segments. Bug reported by Stefan Koch.
1429
David Turnerad830712006-09-27 16:20:59 +000014302006-09-28 David Turner <david@freetype.org>
1431
Werner Lemberg2c002e12006-09-29 21:31:53 +00001432 Fix a bug in the automatic unpatented hinting support which prevents
1433 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001434
Werner Lemberg2c002e12006-09-29 21:31:53 +00001435 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1436 s/force_autohint/unpatented_hinting/. Update all callers.
1437
1438 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1439
1440 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001441
David Turner8a317cf2006-09-27 07:52:48 +000014422006-09-27 David Turner <david@freetype.org>
1443
Werner Lemberg2c002e12006-09-29 21:31:53 +00001444 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001445
David Turner8a317cf2006-09-27 07:52:48 +00001446
David Turnere140f142006-10-23 08:56:57 +00001447 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001448 In a default build, the function `FT_Library_SetLcdFilter' returns
1449 `FT_Err_Unimplemented_Feature'; you need to #define
1450 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1451 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001452
Werner Lemberg2c002e12006-09-29 21:31:53 +00001453 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001454
Werner Lemberg2c002e12006-09-29 21:31:53 +00001455 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1456 typedef.
1457 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1458 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001459
Werner Lemberg2c002e12006-09-29 21:31:53 +00001460 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1461 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001462
Werner Lemberg2c002e12006-09-29 21:31:53 +00001463 Handle subpixel rendering.
1464 Simplify function.
1465 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1466 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1467
1468 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1469 pointing to <freetype/ftlcdfil.h>.
1470
1471 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1472 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1473
1474 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001475
Werner Lemberge20df4a2006-09-27 06:29:21 +000014762006-09-26 David Bustin
1477
1478 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1479 correctly. Reported as Savannah bug #17843.
1480
David Turner6f8c6222006-09-26 15:42:44 +000014812006-09-26 David Turner <david@freetype.org>
1482
Werner Lemberg110246c2006-09-26 21:55:44 +00001483 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1484 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1485 horizontal and vertical hinting for the purpose of debugging the
1486 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001487
Werner Lemberg110246c2006-09-26 21:55:44 +00001488 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1489 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001490
Werner Lemberg110246c2006-09-26 21:55:44 +00001491 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1492
1493 * include/freetype/config/ftoption.h, devel/ftoption.h
1494 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1495 we want to compile LCD-optimized rendering code (à la ClearType) or
1496 not. The macro *must* be disabled in default builds of the library
1497 for patent reasons.
1498
1499 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1500 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1501 isn't defined at compile time. This only changes the content of the
1502 rendered glyph to match the one of normal gray-level rendering,
1503 hence clients should not need to be modified.
1504
1505 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001506
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015072006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1508
1509 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1510 LWFN fails and both are available.
1511
David Turnerf3050052006-09-11 12:00:32 +000015122006-09-11 David Turner <david@freetype.org>
1513
Werner Lembergf9644552006-09-12 13:48:10 +00001514 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1515 report their English names through an Apple Roman
1516 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001517
Werner Lembergf9644552006-09-12 13:48:10 +00001518 If the font uses another name entry with language_id == English, it
1519 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001520
Werner Lembergf9644552006-09-12 13:48:10 +00001521 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1522 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001523
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015242006-09-05 Werner Lemberg <wl@gnu.org>
1525
1526 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001527 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001528 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1529 `HAN NOM B.ttf').
1530
1531 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1532
David Turner772e55d2006-09-05 09:45:15 +000015332006-09-05 David Turner <david@freetype.org>
1534
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001535 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001536
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001537 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1538 (TRaster): Remove `count_ex' and `count_ey'.
1539 (gray_find_cell): Remove 2nd and 3rd argument.
1540 (gray_alloc_cell): Merged with `gray_find_cell'.
1541 (gray_record_cell): Simplify.
1542 (gray_set_cell): Rewrite.
1543 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1544 (gray_render_span): Don't use FT_MEM_SET for small values.
1545 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1546 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1547 bitmap scanline.
1548 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001549
David Turneraa557a92006-09-04 16:42:44 +000015502006-09-04 David Turner <david@freetype.org>
1551
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001552 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1553 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001554
Werner Lemberg2d8629b2006-09-03 06:18:45 +000015552006-09-03 Werner Lemberg <wl@gnu.org>
1556
1557 * devel/ftoption.h: Synchronize with
1558 include/freetype/config/ftoption.h.
1559
1560 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1561 variable declaration.
1562 (gray_convert_glyph): Fix compiler warnings.
1563
David Turner6d79f212006-09-01 14:09:35 +000015642006-09-01 David Turner <david@freetype.org>
1565
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001566 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1567 to recognize a few fonts that require the automatic unpatented
1568 loader.
David Turnerbd502952006-09-01 19:05:24 +00001569
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001570 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1571 rasterizer. The speed improvement is between 15% and 25%, depending
1572 on the font data.
1573
1574 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1575 (TCell): Redefine.
1576 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1577 (gray_init_cells): Updated.
1578 (gray_find_cell, gray_alloc_cell): New functions.
1579 (gray_record_cell): Rewritten to use `gray_find_cell' and
1580 `gray_alloc_cell'.
1581 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1582 QSORT_THRESHOLD):
1583 Removed.
1584 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1585 gray_dump_cells): Removed.
1586 (gray_sweep): Rewritten.
1587 (gray_convert_glyph): Rewrite code which used one of the sorting
1588 functions.
1589 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001590
Werner Lembergd898aed2006-08-29 09:50:34 +000015912006-08-29 Dr. Werner Fink <werner@suse.de>
1592
1593 * configure: Make it possible to handle configure options which
1594 have strings containing spaces.
1595
15962006-08-27 David Turner <david@freetype.org>
1597
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001598 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1599 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1600 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1601
1602 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1603 src/truetype/truetype.c, src/truetype/ttdriver.c,
1604 src/truetype/ttgload.c, src/truetype/ttgload.h,
1605 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1606 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1607 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1608
1609 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1610 member `force_autohint'.
1611
1612 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1613
1614 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1615 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001616
Jens Claudiusa787f452006-08-27 11:26:18 +000016172006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1618
1619 Fix miscellaneous compiler warnings.
1620
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001621 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1622 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001623
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001624 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1625 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1626 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001627
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001628 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1629 volatileness of argument to ft_longjmp. Spotted by Werner
1630 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001631
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001632 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1633 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001634
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001635 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1636 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001637
Werner Lembergc4c35b72006-08-27 08:03:46 +000016382006-08-27 Werner Lemberg <wl@gnu.org>
1639
1640 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1641 Reported by Jens.
1642
Jens Claudius088e44e2006-08-22 14:24:30 +000016432006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001644
Jens Claudius088e44e2006-08-22 14:24:30 +00001645 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001646 about addresses of volatile objects passed as function arguments as
1647 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001648
Werner Lembergc4c35b72006-08-27 08:03:46 +00001649 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1650 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001651
1652 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1653 argument `table' a pointer to a volatile object.
1654
1655 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1656 argument `table' a pointer to a volatile object.
1657
Jens Claudius2652bd52006-08-18 17:20:37 +000016582006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1659
1660 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1661 variable `_sfnt' as volatile since it must keep its value across
1662 a call to ft_setjmp.
1663 (gxv_validate): Same for local variables `memory' and `valid'.
1664 (classic_kern_validate): Same for local variables `memory',
1665 `ckern', and `valid'.
1666
1667 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1668 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1669 `jstf', and 'valid'.
1670
1671 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1672 local variable `cmap'.
1673
David Turner9fbfc6a2006-08-16 09:11:31 +000016742006-08-16 David Turner <david@freetype.org>
1675
Werner Lemberg12342992006-08-19 11:18:09 +00001676 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1677 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001678
Werner Lemberg12342992006-08-19 11:18:09 +00001679 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1680 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001681
David Turner33f5f242006-08-16 16:50:55 +00001682
Werner Lemberg12342992006-08-19 11:18:09 +00001683 Improvements to native TrueType hinting. This is a first try,
1684 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1685
1686 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1687 `extra_points2'.
1688
1689 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1690 `orus'.
1691
1692 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1693 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1694 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1695 handle `extra_points2'.
1696
1697 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1698 Remove compiler warning.
1699 (cur_to_arg): Remove macro.
1700 (TT_Hint_Glyph): Updated.
1701 (TT_Process_Simple_Glyph): Handle `orus'.
1702
1703 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1704 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1705 (LOC_Ins_IUP): Renamed to...
1706 (IUP_WorkerRec): This.
1707 Add `orus' member.
1708 (Shift): Renamed to...
1709 (_iup_worker_shift): This.
1710 Updated.
1711 (Interp): Renamed to...
1712 (_iup_worker_interpolate): This.
1713 Updated to handle `orus'.
1714 (Ins_IUP): Updated.
1715
1716 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1717 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001718
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017192006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1720
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001721 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001722 build ftvalid in ft2demos. This has been inadvertedly changed
1723 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001724
17252006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1726
Werner Lemberg12342992006-08-19 11:18:09 +00001727 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1728 Jens:
1729 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001730
Werner Lemberg12342992006-08-19 11:18:09 +00001731 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1732 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001733
1734 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1735
Jens Claudius9950adc2006-08-13 12:14:36 +000017362006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1737
Werner Lemberg12342992006-08-19 11:18:09 +00001738 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1739 T1_TOKEN_TYPE_KEY.
1740 (T1_FieldRec): Add `dict'.
1741 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1742 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1743 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001744
Werner Lemberg12342992006-08-19 11:18:09 +00001745 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1746 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001747
1748 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1749
1750 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001751 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1752 not T1_TOKEN_TYPE_ANY.
1753 (ps_parser_load_field): Make sure a token that should be a string or
1754 name is really a string or name.
1755 Avoid memory leak if a keyword has been already encountered and its
1756 value is overwritten.
1757 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1758 T1_FIELD_XXX.
1759 (parse_dict): Ignore keywords that occur in the wrong dictionary
1760 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001761
Werner Lemberg12342992006-08-19 11:18:09 +00001762 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1763 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001764
Werner Lemberg12342992006-08-19 11:18:09 +00001765 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1766 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001767
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000017682006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1769
1770 Move creation of field `buildchar' of T1_DecoderRec out of
1771 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1772 of it.
1773
1774 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1775 and `T1_Compute_Max_Advance'.
1776
1777 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1778 Remove field `face', add `len_buildchar'.
1779
1780 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1781 field `buildchar'.
1782
1783 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1784 finisher for T1_Decoder.
1785 (cid_slot_load_glyph): Do not ignore failure when initializing the
1786 T1_Decoder.
1787
1788 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1789 Updated.
1790 (t1_decoder_init): Remove initialization of fields `buildchar' and
1791 `len_buildchar'.
1792 (t1_decoder_done): Remove deallocation of field `buildchar'.
1793
1794 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1795 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1796 T1_Decoder.
1797 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1798 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1799 case of error.
1800
1801 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1802 `buildchar' of T1_FaceRec.
1803
1804 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1805 `buildchar' of T1_FaceRec.
1806
Werner Lemberg1a380e02006-07-14 18:28:08 +000018072006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1808
1809 * freetype2/include/freetype/internal/psaux.h: New macros
1810 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1811 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1812 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1813 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1814 (T1_DecoderRec): New fields `buildchar' and `face'.
1815 (IS_PS_TOKEN): New macro.
1816
1817 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1818 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1819
1820 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1821 `default_design_vector' and `num_default_design_vector'.
1822
1823 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1824 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1825 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1826
1827 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1828 `token' argument to be NULL if we want only to count the number of
1829 tokens.
1830 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1831 want to skip the array.
1832 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1833 want to skip the array.
1834
1835 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1836 support for (partially commented out) othersubrs 19-25, 27, and 28.
1837 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1838 (t1_decoder_done): Release new field `buildchar'.
1839
1840 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1841 functions.
1842 (t1_keywords): Register them.
1843 (t1_allocate_blend): Updated.
1844 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1845 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1846 (parse_dict): Remove `keyword_flags' argument.
1847 Use new macro IS_PS_TOKEN.
1848 Changed function so that later PostScript definitions override
1849 earlier ones.
1850 (t1_init_loader): Initialize new field `keywords_encountered'.
1851 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1852 `len_buildchar'.
1853 Remove `keywords_flags'.
1854
1855 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1856 `keywords_encountered'.
1857 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1858
1859 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1860 New entries for parsing /NDV, /CDV, and /DesignVector.
1861
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000018622006-07-07 Werner Lemberg <wl@gnu.org>
1863
1864 Add many checks to protect against malformed PCF files.
1865
1866 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1867 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1868
1869 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1870 data and check that tables don't overlap (using a simple
1871 bubblesort).
1872 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1873 New macros which give the size of data structures in the data
1874 stream.
1875 (pcf_get_properties): Use rough estimates to get array size limits.
1876 Assign `face->nprops' and `face->properties' earlier so that a call
1877 to PCF_Face_Done can do the clean-up in case of error.
1878 Protect against invalid string offsets.
1879 (pcf_get_metrics): Clean up code.
1880 Adjust tracing message levels.
1881 Use rough estimate to get array size limit.
1882 (pcf_get_bitmaps): Clean up code.
1883 Adjust tracing message levels.
1884 Use rough estimates to get offset limits.
1885 (pcf_get_encodings): Adjust tracing message level.
1886 (pcf_get_accel): Clean up code.
1887
Werner Lemberg8eb05252006-06-27 06:20:01 +000018882006-06-26 Werner Lemberg <wl@gnu.org>
1889
1890 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1891 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1892
Werner Lemberg24703f82006-06-26 19:12:51 +000018932006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1894
1895 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1896 (t1_decoder_parse_charstrings): Operator with
1897 opcode 15 pops its two arguments.
1898 Handle the case where the pops of an othersubr may be part of a
1899 subroutine.
1900 Handle unknown othersubrs gracefully: count their operands and let
1901 the following pop operators push the operands as the results onto
1902 the Type1 stack.
1903 Improve handling of setcurrentpoint opcode.
1904
Werner Lembergc011f4c2006-06-26 09:40:00 +000019052006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1906
1907 The Type 1 parser now skips over top-level procedures as required
1908 for a `Simplified Parser'. This makes the parser more robust as it
1909 doesn't poke around in PostScript code. Additionally, it makes the
1910 FontDirectory hackery in src/type1/t1load.c unnecessary.
1911
1912 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1913 (skip_literal_string): Add FT_Error as return value.
1914 Handle escapes better.
1915 (skip_string): Add FT_Error as return value.
1916 Don't set `parser->error' but return error code directly.
1917 (skip_procedure): New function.
1918 (ps_parser_skip_PS_token): Handle procedures.
1919 Update code.
1920 (ps_parser_to_token): Update code.
1921 (ps_parser_load_field_table): Handle bbox entries also.
1922
1923 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1924 Add commented-out code for synthetic fonts.
1925
Werner Lemberga2da05c2006-06-25 06:27:27 +000019262006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1927
1928 Fix two hinting bugs as reported in
1929 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1930
1931 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1932 `first_point' member.
1933
1934 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1935 `first_point'.
1936 (TT_Process_Composite_Glyph): Always untouch points.
1937
1938 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1939 `first_point' and `last_point' in case of composite glyphs.
1940 (Ins_IUP): Fix computation of `end_point'.
1941
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000019422006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1943
Werner Lembergef3d2c22006-06-25 06:07:14 +00001944 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1945 Mac. The original patch was written by David Sachitano and Lawrence
1946 Coopet, and modified by Sean McBride for MPW compatibility. Only
1947 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001948
Werner Lembergef3d2c22006-06-25 06:07:14 +00001949 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1950 Mac OS X platforms.
1951 (OS_INLINE): Undefine before definition.
1952 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1953 FontAssociation table in FOND resource.
1954 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1955 and fontSize at each entry of FontAssociation table in FOND
1956 resource.
1957 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1958 ffStylOff of FamilyRecord header of FOND resource, the header,
1959 fontSize, fontID at each entry of FontAssociation table, and
1960 StyleMapping table.
1961 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001962
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000019632006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1964
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001965 Public API of TrueTypeGX, OpenType, and classic kern table validator
1966 should return `FT_Err_Unimplemented_Feature' if validation service
1967 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001968 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001969 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1970
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001971 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1972 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1973 unavailable.
1974 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1975 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001976
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001977 * src/base/ftotval.c (FT_OpenType_Validate): Return
1978 FT_Err_Unimplemented_Feature if OpenType validation service is
1979 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001980
Werner Lembergb10e45a2006-06-08 07:32:56 +000019812006-06-08 Werner Lemberg <wl@gnu.org>
1982
1983 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1984 errors.
1985
David Turner5f1f7502006-06-07 05:11:50 +000019862006-06-07 David Turner <david@freetype.org>
1987
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001988 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1989 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1990 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001991
David Turner457b4a82006-06-06 08:14:14 +000019922006-06-06 David Turner <david@freetype.org>
1993
Werner Lemberg4836f952006-06-06 12:54:08 +00001994 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001995
Werner Lemberg4836f952006-06-06 12:54:08 +00001996 We change `ps_unicodes_init' so that it also takes a
1997 `free_glyph_name' callback to release the glyph names returned by
1998 `get_glyph_name'
1999
2000 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2001 Renamed to ...
2002 (PS_GetGlyphNameFunc): This.
2003 (PS_FreeGlyphNameFunc): New typedef.
2004 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2005
2006 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2007 argument.
2008 (cff_sid_free_glyph_name): New function.
2009 (cff_cmap_unicode_init): Updated.
2010
2011 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2012
2013 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2014 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002015
2016
David Turner09717352006-06-04 14:33:08 +000020172006-06-04 David Turner <david@freetype.org>
2018
Werner Lembergd724f202006-06-04 15:17:41 +00002019 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2020 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002021 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002022
Werner Lembergd724f202006-06-04 15:17:41 +00002023 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2024 of `face->num_glyphs' which missed the last glyph, due to
2025 the offset-by-1 computation, since the PFR format doesn't
2026 guarantee that glyph index 0 corresponds to the `missing
2027 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002028
Werner Lemberg33779662006-05-26 06:30:05 +000020292006-05-25 Werner Lemberg <wl@gnu.org>
2030
2031 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2032 `-no-undefined'. Reported by Christian Biesinger.
2033
Werner Lemberg24773d62006-05-20 08:53:13 +000020342006-05-19 Brian Weed <bw@imaginengine.com>
2035
2036 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2037 have debug information, and debug libraries use `C7 compatible'
2038 debug info.
2039
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000020402006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2041
Werner Lemberga6523a62006-05-20 08:47:01 +00002042 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002043 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002044
Werner Lemberga6523a62006-05-20 08:47:01 +00002045 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2046 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002047
2048 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002049 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002050
20512006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2052
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002053 * build/unix/configure.raw: Add a fallback to disable Carbon
2054 dependency, if configured with no options on Mac OS X.
2055
20562006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2057
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002058 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002059 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002060 the second part of Savannah bug #16590.
2061
Werner Lemberg545c4e52006-05-17 22:55:04 +000020622006-05-18 Werner Lemberg <wl@gnu.org>
2063
2064 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2065 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2066
David Turnerdc3ff312006-05-17 12:59:35 +000020672006-05-17 David Turner <david@freetype.org>
2068
Werner Lemberg545c4e52006-05-17 22:55:04 +00002069 This is a major patch used to drastically improve the performance of
2070 loading glyphs. This both speeds up loading the glyph vectors
2071 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002072
Werner Lemberg545c4e52006-05-17 22:55:04 +00002073 We now use inline assembler code with GCC to implement `FT_MulFix',
2074 which is probably the most important function related to the
2075 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002076
Werner Lemberg545c4e52006-05-17 22:55:04 +00002077 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002078
2079
Werner Lemberg545c4e52006-05-17 22:55:04 +00002080 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2081 `cursor' and `limit'.
2082
2083 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2084 New functions.
2085 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2086 [TEST]: Remove.
2087
2088 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2089 code.
2090
2091 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2092 `FT_ZERO'
2093 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2094 (af_glyph_hints_reload: Rewrite recognition of weak points.
2095
2096 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2097 constant values out of the loops.
2098
2099 * src/autofit/aftypes.h: Updated.
2100
2101 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2102
2103 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2104 product to get orientation.
2105
2106 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2107 (FT_Stream_OpenGzip): Use it to handle small files directly in
2108 memory.
2109
2110 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2111 Improve performance.
2112
2113 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2114 `limit'.
2115
2116 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2117 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2118 exceedingly large values of number of contours. Speed up by
2119 reducing the number of loops.
2120
2121 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2122
2123
2124 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2125 used to detect rogue clients from 4 to 16. This is to prevent some
2126 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2127 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002128
Werner Lembergde2d90a2006-05-17 08:54:30 +000021292007-05-17 Werner Lemberg <wl@gnu.org>
2130
2131 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002132 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002133
21342006-05-16 Werner Lemberg <wl@gnu.org>
2135
2136 * docs/PROBLEMS: Updated icl issues.
2137
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002138----------------------------------------------------------------------------
2139
Werner Lemberg42b63b22007-01-21 21:01:33 +00002140Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002141David Turner, Robert Wilhelm, and Werner Lemberg.
2142
2143This file is part of the FreeType project, and may only be used, modified,
2144and distributed under the terms of the FreeType project license,
2145LICENSE.TXT. By continuing to use, modify, or distribute this file you
2146indicate that you have read the license and understand and accept it
2147fully.
2148
2149
2150Local Variables:
2151version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002152coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002153End: