blob: 016f4ded52688b8fae299d3f8b9e97b02a474d97 [file] [log] [blame]
Werner Lembergd57a5e92008-06-18 06:16:39 +000012008-06-18 Werner Lemberg <wl@gnu.org>
2
3 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
4 Reported by Peter Weilbacher <mozilla@weilbacher.org>.
5
6 * docs/CHANGES: Updated.
7
Werner Lembergca947c22008-06-16 05:33:51 +000082008-06-15 George Williams <gww@silcom.com>
9
10 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
11 `valid->extra2' to 1. This is undocumented in the OpenType 1.5
12 specification.
13
Werner Lembergad83e052008-06-15 11:06:12 +0000142008-06-15 Werner Lemberg <wl@gnu.org>
15
16 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
17 from clobbering. Patch from Savannah bug report #23556.
18
19 * docs/CHANGES: Document it.
20
Werner Lemberg102bb832008-06-10 04:57:19 +0000212008-06-10 Werner Lemberg <wl@gnu.org>
22
Werner Lembergb796adb2008-06-10 17:15:35 +000023 * autogen.sh: Add option `--install' to libtoolize.
24
252008-06-10 Werner Lemberg <wl@gnu.org>
26
Werner Lemberg6174e172008-06-10 05:58:25 +000027 * Version 2.3.6 released.
28 =========================
29
30
31 Tag sources with `VER-2-3-6'.
32
33 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
34 version number to 2.3.6.
35
36 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
37 builds/win32/visualc/freetype.dsp,
38 builds/win32/visualc/freetype.vcproj,
39 builds/win32/visualce/index.html,
40 builds/win32/visualce/freetype.dsp,
41 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
42
43 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
44
45 * builds/unix/configure.raw (version_info): Set to 9:17:3.
46
47
48 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
49 and `scale_y'.
50 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
51
52
53 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
54 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
55
562008-06-10 Werner Lemberg <wl@gnu.org>
57
Werner Lemberg102bb832008-06-10 04:57:19 +000058 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
59 `clazz->done_face'.
60
Werner Lemberg630e24d2008-06-09 21:20:18 +0000612008-06-09 VaDiM <s_sliva@rambler.ru>
62
63 Support debugging on WinCE. From Savannah patch #6536; this fixes
64 bug #23497.
65
66 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
67 as a replacement for OutputDebugStringA (which WinCE doesn't have).
68 Update all callers.
69 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
70 environment variables.
71
Werner Lemberga984fda2008-06-09 21:02:13 +0000722008-06-09 Werner Lemberg <wl@gnu.org>
73
74 * README.CVS: Updated.
75
Werner Lemberg26bd7a22008-06-09 21:27:17 +000076 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
77 for newer versions of autoconf and friends.
Werner Lemberga984fda2008-06-09 21:02:13 +000078
Werner Lemberg7cb9ec02008-06-09 20:49:29 +0000792008-06-08 Werner Lemberg <wl@gnu.org>
80
81 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
82 `private_len' unsigned.
83
84 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
85 it as such.
86 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
87
88
89 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
90
91
92 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
93 for sane value.
94 Fix typo.
95
96
97 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
98
99
100 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
101 `last_point'.
102
103
104 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
105 `maxTwilightPoints'.
106
Werner Lembergd77e7222008-06-05 22:07:19 +00001072008-06-06 Werner Lemberg <wl@gnu.org>
108
109 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
110 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
111
Werner Lemberg4c3cc762008-06-03 20:53:49 +00001122008-06-03 Werner Lemberg <wl@gnu.org>
113
114 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
115 FT_Pointer. Reported by Ian Britten <britten@caris.com>.
116
Werner Lemberg8e3539b2008-06-02 13:53:54 +00001172008-06-02 Werner Lemberg <wl@gnu.org>
118
119 Emit header info for defined FreeType objects in reference.
120
121 * src/tools/docmaker/content.py (re_header_macro): New regexp.
122 (ContentProcessor::__init__): Initialize new dictionary `headers'.
123 (DocBlock::__init__): Collect macro header definitions.
124
125 * src/tools/docmaker/tohtml.py (header_location_header,
126 header_location_footer): New strings.
127 (HtmlFormatter::__init__): Pass `headers' dictionary.
128 (HtmlFormatter::print_html_field): Don't emit paragraph tags.
129 (HtmlFormatter::print_html_field_list): Emit empty paragraph.
130 (HtmlFormatter::block_enter): Emit header info.
131
1322008-06-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg7493ea12008-06-02 07:24:36 +0000133
134 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
135 FT_INCREMENTAL_H): Added.
136
Werner Lembergc94fa662008-05-27 23:24:07 +00001372008-05-28 Werner Lemberg <wl@gnu.org>
138
Werner Lembergde0d0052008-05-28 21:51:15 +0000139 * src/tools/docmaker/sources.py (SourceBlock::__init__): While
140 looking for markup tags, return immediately as soon a single one is
141 found.
142
1432008-05-28 Werner Lemberg <wl@gnu.org>
144
Werner Lembergc94fa662008-05-27 23:24:07 +0000145 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
146 original, unscaled input values. Confirmed by Greg Hitchcock from
147 Microsoft.
148
Werner Lemberg35a90b72008-05-27 18:16:03 +00001492008-05-27 Werner Lemberg <wl@gnu.org>
150
151 * src/tools/docmaker/tohtml.py (block_footer_start,
152 block_footer_middle): Beautify output.
153
Werner Lembergc9381312008-05-25 12:19:34 +00001542008-05-25 Werner Lemberg <wl@gnu.org>
155
156 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
157 trying to render into a zero-width/height bitmap, not an error code.
158
Werner Lembergffa49652008-05-25 12:43:57 +0000159 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
160 of the graphics state for subglyphs to...
161 (TT_Hint_Glyph): This function.
162 Hinting instructions for a composite glyph apparently refer to the
163 just hinted subglyphs, not the unhinted, unscaled outline. This
164 seems to fix Savannah bugs #20973 and (at least partially) #23310.
165
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +00001662008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
167
168 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
Werner Lemberg355f1b12008-05-22 06:12:23 +0000169 `aface' is returned by FT_New_Face_From_FOND(). The patch was
170 proposed by an anonymous reporter of Savannah bug #23204.
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +0000171
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001722008-05-18 Werner Lemberg <wl@gnu.org>
173
Werner Lemberg5e8a3682008-05-18 21:49:02 +0000174 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
175 correction for pixel boundary. Without this patch, the effect can
176 be cumulative under certain circumstances, making glyphs taller and
177 taller after each call. This fixes Savannah bug #19976.
178
1792008-05-18 Werner Lemberg <wl@gnu.org>
180
Werner Lemberg16dc51f2008-05-18 17:36:15 +0000181 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
182 This fixes Savannah bug #23280.
183
184 * docs/CHANGES: Updated.
185
David Turnera92cec52008-05-18 14:08:57 +00001862008-05-18 David Turner <david@freetype.org>
187
Werner Lemberg16dc51f2008-05-18 17:36:15 +0000188 * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
189 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
190 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
191 declarations non-global.
David Turnera92cec52008-05-18 14:08:57 +0000192
Werner Lemberg16dc51f2008-05-18 17:36:15 +0000193 * src/type1/t1load.c: Add missing comment.
David Turnera92cec52008-05-18 14:08:57 +0000194
Werner Lemberg89d64fa2008-05-17 20:06:13 +00001952008-05-17 Sam Hocevar <samh>
196
197 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
198 glyphs correctly. Patch from Savannah bug #23277.
199
Werner Lemberga2f17cc2008-05-17 10:01:45 +00002002008-05-16 Werner Lemberg <wl@gnu.org>
201
202 * docs/CHANGES: Updated.
203
2042008-05-16 Sergey Tolstov <stolstov@esri.com>
205
206 Improve support for WGL4 encoded fonts.
207
208 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
209 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
210 ft_wgl_extra_glyph_name_offsets): New arrays.
211 (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
212 (ps_unicodes_init): Use them to add additional Unicode mappings.
213
Werner Lemberg504645e2008-05-14 23:26:20 +00002142008-05-15 Werner Lemberg <wl@gnu.org>
215
Werner Lembergbcc750e2008-05-16 04:50:00 +0000216 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
217 <op_closepath>: `closepath' without a path is a no-op, not an error
218 (cf. the PS reference manual).
219
220 Reported by Martin McBride.
221
2222008-05-15 Werner Lemberg <wl@gnu.org>
223
Werner Lembergbcfcc712008-05-15 09:14:39 +0000224 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
225
2262008-05-15 Werner Lemberg <wl@gnu.org>
227
Werner Lemberg504645e2008-05-14 23:26:20 +0000228 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
Werner Lemberg2d738992008-05-14 23:33:53 +0000229 which contains a single but empty entry. This is technically
230 invalid (since it must end with `return'), but...
Werner Lemberg504645e2008-05-14 23:26:20 +0000231
232 Reported by Martin McBride.
233
Werner Lemberge6e6ead2008-05-14 23:05:38 +00002342008-05-14 Werner Lemberg <wl@gnu.org>
235
236 Finish fix of scaling bug of CID-keyed CFF subfonts.
237
238 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
239 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
240 functions.
241
242 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
243 provide global hinting data for both the top-font and all subfonts
244 (with proper scaling).
245
246 * src/cff/cffobjs.c (cff_make_private_dict): New function, using
247 code from `cff_size_init'.
248 (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
249 Use CFF_Internal and handle subfonts.
250 (cff_face_init): Handle top-dict and subfont matrices correctly;
251 apply some heuristic in case of unlikely matrix concatenation
252 results. This has been discussed with people from Adobe (thanks
253 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
254 and not correct.
255
256 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
257
258 * src/cff/cffgload.c (cff_builder_init): Updated.
259 (cff_decoder_prepare): Handle hints globals for subfonts.
260 Update all callers.
261 (cff_slot_load): Handling scaling of subfonts properly.
262
263 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
264 (cff_parse_font_matrix): Use it.
265
266 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
267 FT_ULong.
268
269 * docs/CHANGES: Document it.
270
Werner Lembergfb572282008-05-13 12:10:04 +00002712008-05-13 Werner Lemberg <wl@gnu.org>
272
273 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
274 Handle case `face_index < 0'.
275 * docs/CHANGES: Document it.
276
Werner Lemberg551dd3c2008-05-04 13:37:38 +00002772008-05-04 Werner Lemberg <wl@gnu.org>
278
279 First steps to fix the scaling bug of CID-keyed CFF subfonts,
280 reported by Ding Li on 2008/03/28 on freetype-devel.
281
282 * src/base/cff/cffparse.c (power_tens): New array.
283 (cff_parse_real): Rewritten to introduce a fourth parameter which
284 returns the `scaling' of the real number so that we have no
285 precision loss. This is not used yet.
286 Update all callers.
287 (cff_parse_fixed_thousand): Replace with...
288 (cff_parse_fixed_scaled): This function. Update all callers.
289
Werner Lemberg6d29f0f2008-05-03 15:54:15 +00002902008-05-03 Werner Lemberg <wl@gnu.org>
291
292 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
293 transformation since it recursively calls FT_Load_Glyph. This fixes
294 Savannah bug #23143.
295
Werner Lembergde9479a2008-04-26 12:52:57 +00002962008-04-26 Werner Lemberg <wl@gnu.org>
297
298 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
299 and `scale_y' as obsolete since they aren't used.
300 * src/psaux/psobjs.c (t1_builder_init): Updated.
301
302 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
303 obsolete since they aren't used.
304 * src/cff/cffgload.c (cff_builder_init): Updated.
305
Werner Lemberg4ebc8902008-04-13 22:06:12 +00003062008-04-14 Werner Lemberg <wl@gnu.org>
307
308 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
309 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
310 bug #22909.
311
Werner Lemberg048b7562008-04-13 05:55:36 +00003122008-04-13 Werner Lemberg <wl@gnu.org>
313
314 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
315 integer part is zero.
316
Werner Lembergc32e83f2008-04-01 06:07:37 +00003172008-04-01 Werner Lemberg <wl@gnu.org>
318
319 Fix compilation with g++ 4.1 (with both `single' and `multi'
320 targets).
321
322 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
323 which is crossed by a `goto'.
324
325 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
326
Werner Lemberg210d6182008-04-01 05:55:48 +00003272008-03-31 Werner Lemberg <wl@gnu.org>
328
329 Fix support for subsetted CID-keyed CFFs.
330
331 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
332 FT_IS_CID_KEYED): New macros.
333
334 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
335 maximum CID value in CID-keyed CFFs.
336 Handle FT_FACE_FLAG_CID_KEYED flag.
337
338 * docs/CHANGES: Document it.
339
340
341 Fix CFF font matrix calculation and improve precision.
342
343 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
344 part is zero.
345 (cff_parse_font_matrix): Simplify computation of `units_per_em';
346 this prevents overflow also.
347
348
349 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
350
351 * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
352 (cid_get_ros): New function.
353 (cid_service_cid_info): New service structure.
354 (cid_services): Register it.
355
Werner Lemberga56e5262008-03-23 14:53:44 +00003562008-03-23 Werner Lemberg <wl@gnu.org>
357
358 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
359
360 * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
361 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
362
Werner Lemberg85751172008-03-21 07:16:00 +00003632008-03-21 Laurence Darby <ldarby>
364
365 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
366 Savannah bug #22675.
367
Werner Lemberg3863c952008-03-13 06:38:37 +00003682008-03-13 Derek Clegg <dclegg@apple.com>
369
370 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
371 Patch from Savannah bug #22541.
372
Werner Lembergfc293932008-03-03 08:08:12 +00003732008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
374
375 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
376 tt_cmap14_find_variant): Return correct value.
377 (tt_cmap14_variant_chars): Fix check for `di'.
378
Werner Lemberg5057e362008-02-29 07:23:02 +00003792008-02-29 Wermer Lemberg <wl@gnu.org>
380
381 * docs/CHANGES: Updated.
382
Werner Lemberg7faa1552008-02-29 07:14:38 +00003832008-02-29 Wolf
384
385 Add build support for symbian platform. From Savannah bug #22440.
386
387 * builds/symbian/*: New files.
388
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +00003892008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
390
Werner Lemberg9b9d3342008-02-21 23:22:06 +0000391 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
392 synthesis. For any face of a specified FOND, always the name for
393 the first face was used. Except of a FOND that refers multiple
394 Type1 font files, wrong synthesized font names are not used at all,
395 so this is an invisible bug. A few limit checks are added too.
Suzuki, Toshiya (鈴木俊哉)6cb2faa2008-02-21 18:46:07 +0000396
397 * builds/mac/ftmac.c: Ditto.
398
3992008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
400
Werner Lemberg31093cc2008-02-21 17:10:04 +0000401 * builds/unix/configure.raw: Split compiler option to link Carbon
402 frameworks to one option for CoreServices framework and another
403 option for ApplicationServices framework. The split options can be
404 managed by GNU libtool to avoid unrequired duplication when FreeType
405 is linked with other applications. Suggested by Daniel Macks,
406 Savannah bug #22366.
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +0000407
Werner Lemberg28464c42008-02-18 20:34:42 +00004082008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
409
410 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
411 from Savannah bug #22356.
412
Werner Lemberg44c655b2008-02-17 08:22:08 +00004132008-02-17 Jonathan Blow <jon@number-none.com>
414
415 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
416 Check for valid callback pointers.
417
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +00004182008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
419
420 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
421 handle by its value instead of ResError(), fix provided by Deron
Werner Lembergc903f2f2008-02-17 08:23:04 +0000422 Kazmaier. According to the Resource Manager Reference,
423 GetResource(), Get1Resource(), GetNamedResource(),
424 Get1NamedResource() and RGetResource() set noErr but return NULL
425 handle when they can not find the requested resource. These
426 functions never return undefined values, so it is sufficient to
427 check if the handle is not NULL.
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +0000428
429 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
430
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00004312008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
432
433 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
Werner Lembergaa722df2008-02-14 10:46:40 +0000434 inclusion styles. Now it always includes src/base/ftmac.c;
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +0000435 builds/mac/ftmac.c is never included in any configuration.
Werner Lembergaa722df2008-02-14 10:46:40 +0000436
437 * builds/unix/configure.raw: Print warning if configure is executed
438 with options to specify Carbon functionalities explicitly.
439
440 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +0000441 included automatically and manual replacement is required.
442
Werner Lemberg744dd452008-02-11 08:22:40 +00004432008-02-11 Werner Lemberg <wl@gnu.org>
444
445 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
446 (dos_setup), builds/freetype.mk (clean_project_dos,
447 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
448 Murdoch.
449
Werner Lemberg4c933992008-01-18 05:32:55 +00004502008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
451
452 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
453 mention intra-pixel algorithm.
454
455 * include/freetype/freetype.h (FT_Render_Mode): Mention that
456 FT_Library_SetLcdFilter can be used to reduce fringes.
457
Werner Lemberg1ddd1b72008-01-16 06:58:54 +00004582008-01-16 Werner Lemberg <wl@gnu.org>
459
460 * src/raster/ftraster.c (ft_black_render): Check `outline' before
461 using it. Reported by Allan Yang.
462
Werner Lembergeca1f272008-01-12 07:46:09 +00004632008-01-12 Werner Lemberg <wl@gnu.org>
464
465 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
466
4672008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
468
469 * src/raster/ftraster.c (ft_black_init)
470 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
471
Werner Lembergbf391cb2008-01-10 08:47:08 +00004722008-01-10 Werner Lemberg <wl@gnu.org>
473
474 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
475 where the number of contours in a simple glyph is zero (and which
476 does contain an entry in the `glyf' table). This fixes Savannah bug
477 #21990.
478
Suzuki, Toshiya (鈴木俊哉)75696862008-01-04 01:43:23 +00004792008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
480
481 Formatting suggested by Sean McBride.
482
483 * builds/mac/ftmac.c: Formatting (tab expanded).
484 * src/autofit/afindic.c: Ditto.
485 * src/base/ftcid.c: Ditto.
486 * src/base/ftmac.c: Ditto.
487
Werner Lembergd2e15732007-12-30 23:49:14 +00004882007-12-30 Werner Lemberg <wl@gnu.org>
489
490 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
491 correctly.
492
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00004932007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
494
495 Improvement of POSIX resource-fork accessor to load unsorted
Werner Lembergd2e15732007-12-30 23:49:14 +0000496 references in a resource. In HelveLTMM (resource-fork PostScript
497 Type1 font bundled with Mac OS X since 10.3.x), the appearance order
498 of PFB chunks is not sorted; sorting the chunks by reference IDs is
499 required.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000500
Werner Lembergd2e15732007-12-30 23:49:14 +0000501 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
502 type to store a pair of reference ID and offset to the chunk.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000503
Werner Lembergd2e15732007-12-30 23:49:14 +0000504 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
505 sort FT_RFork_Ref by their reference IDs.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000506
Werner Lembergd2e15732007-12-30 23:49:14 +0000507 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
508 sorted by reference ID.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000509
Werner Lembergd156cab2007-12-14 07:48:32 +00005102007-12-14 Werner Lemberg <wl@gnu.org>
511
512 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
513 division too early; otherwise the most significant digit(s) of the
514 final result are lost as the value is truncated to an integer. This
515 fixes Savannah bug #21794 (where the patch has been posted too).
516
Werner Lembergbd7e1c32007-12-06 17:17:30 +00005172007-12-06 Fix <4d876b82@gmail.com>
518
519 Pass options from one configure script to another as-is (not
520 expanded). This is needed for options like
521 --includedir='${prefix}/include'.
522
523 * builds/unix/detect.mk, configure: Prevent argument expansion in
524 call to the (real) `configure' script.
525
5262007-12-06 Werner Lemberg <wl@gnu.org>
527
528 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
529 TT_USE_BYTECODE_INTERPRETER isn't defined.
530
5312007-12-06 Werner Lemberg <wl@gnu.org>
532
533 There exist CFFs which contain opcodes for the Type 1 operators
534 `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
535 However, it doesn't harm to support them.
536
537 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
538 `cff_op_closepath.'
539 (cff_argument_counts): Ditto.
540
541 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
542 and 13 (hsbw) which are invalid in Type 2 charstrings.
543
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +00005442007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
545
Werner Lembergbd7e1c32007-12-06 17:17:30 +0000546 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
547 support new pathname syntax `..namedfork/rsrc' to access a resource
548 fork on Mac OS X. The legacy syntax `/rsrc' does not work on
549 case-sensitive HFS+.
Suzuki, Toshiya (鈴木俊哉)a6d36572007-12-06 10:27:15 +0000550 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
551 buffer size to store a pathname.
552 * include/freetype/internal/ftrfork.h: Increment the number of
553 resource fork guessing rule.
554
5552007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
556
Werner Lembergbd7e1c32007-12-06 17:17:30 +0000557 * builds/unix/configure.raw: Improve the compile tests to search
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +0000558 Carbon functions.
Werner Lembergbd7e1c32007-12-06 17:17:30 +0000559 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +0000560 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
561
5622007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
563
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +0000564 The documents and comments for Mac OS X are improved by Sean
565 McBride.
566
567 * src/base/ftmac.c: Fix a comment.
568 * include/freetype/ftmac.h: Ditto.
569 * docs/INSTALL.MAC: Improve English and add comment on lowest
570 system version specified by MACOSX_DEPLOYMENT_TARGET.
571
Werner Lemberga10d2b72007-12-04 22:05:54 +00005722007-12-04 Werner Lemberg <wl@gnu.org>
573
574 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
575 concatenate error codes.
576 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
577
Werner Lembergd496b922007-12-04 21:49:59 +00005782007-12-04 Graham Asher <graham.asher@btinternet.com>
579
580 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
581 concatenate error codes.
582
Werner Lembergc0da5232007-12-04 21:44:32 +00005832007-12-04 Sean McBride <sean@rogue-research.com>
584
585 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
586 warning.
587
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00005882007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
589
Werner Lemberg6174e172008-06-10 05:58:25 +0000590 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
Werner Lemberg24fe6182007-11-23 09:18:07 +0000591 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
592 cannot mmap() the specified file and cannot seek to head of the
593 specified file, it returns NULL stream and FT_Open_New() returns the
594 error immediately. On MacOS, most legacy MacOS fonts fall into such
595 a scenario because their data forks are zero-sized and cannot be
596 sought. To proceed to guessing of resource fork fonts, the
597 functions for legacy MacOS font must properly handle the NULL stream
598 returned by FT_New_Stream().
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000599
Werner Lemberg24fe6182007-11-23 09:18:07 +0000600 * src/base/ftobjs.c (IsMacBinary): Return error
601 FT_Err_Invalid_Stream_Operation immediately when NULL stream is
602 passed.
603 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
604 to fallback. Originally, legacy MacOS font is tested in the cases
605 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
606 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
607 .dfont header is combined). Now the case of
608 FT_Err_Cannot_Open_Stream is included.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000609
Werner Lemberg24fe6182007-11-23 09:18:07 +0000610 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
611 skip FT_Stream_Seek(), which seeks to the head of stream, and
612 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
613 for a NULL stream causes a Bus error on Mac OS X.
614 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000615 immediately if passed stream is NULL.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000616 (raccess_guess_apple_single): Ditto.
617
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00006182007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
619
Suzuki, Toshiya (鈴木俊哉)a5470682007-11-16 16:29:36 +0000620 Fix for Carbon incompatibilities since Mac OS X 10.5,
621 proposed by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +0000622
623 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
624
625 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
626 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
627 Carbon functions from a forked process is classified as unsafe
628 by Apple. All Carbon-dependent functions should be deprecated.
629
630 * src/base/ftmac.c: Use essential header files <Carbon/Carbon.h>
631 and <ApplicationServices/ApplicationServices.h> instead of
632 all-in-one header file <CoreServices/CoreServices.h>.
633
634 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
635 genuine macro PATH_MAX.
636
637 Add fallback macro for kATSOptionFlagsUnRestrictedScope which
638 is not found in Mac OS X 10.0.
639
640 Multi-character constants ('POST', 'sfnt' etc) are replaced by
641 64bit constants calculated by FT_MAKE_TAG() macro.
642
643 For the index in the segment of resource fork, new portable
644 type ResourceIndex is introduced for better compatibility.
645 This type is since Mac OS X 10.5, so it is defined as short
646 when built on older platforms.
647
648 (FT_ATSFontGetFileReference): If build target is only the systems
649 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
650
651 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
652 and newer or 64bit platform, because legacy type FSSpec type is
653 removed completely.
654
655 (FT_New_Face_From_FSSpec): Ditto.
656
6572007-11-01 Werner Lemberg <wl@gnu.org>
Werner Lembergd503fc52007-11-01 09:19:44 +0000658
659 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
660 fixes Savannah bug #21485.
661
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00006622007-10-29 Daniel Svoboda <dasvo@planeta@cz>
Werner Lemberg27649fb2007-10-29 22:00:58 +0000663
664 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
665 can handle the font at all, then check `face_index'. Otherwise, the
666 driver might return the wrong error code. This fixes Savannah bug
667 #21468.
668
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00006692007-10-21 Werner Lemberg <wl@gnu.org>
Werner Lemberg7d9c1892007-10-21 08:12:30 +0000670
671 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
Werner Lemberge77b6c42007-10-21 08:18:40 +0000672 support for bit 8 of the `fsSelection' field in the `OS/2' table.
673 MS is already using this; hopefully, this becomes part of OpenType
674 1.5.
Werner Lemberg7d9c1892007-10-21 08:12:30 +0000675 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
676 (WWS_SUBFAMILY).
677
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00006782007-10-20 Werner Lemberg <wl@gnu.org>
Werner Lemberg66842572007-10-20 16:17:28 +0000679
680 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
681 Add `td.left' element to CSS.
682 (toc_section_enter): Use it.
683
David Turnercf432db2007-10-19 12:36:40 +00006842007-10-18 David Turner <david@freetype.org>
685
Werner Lemberg7f2425f2007-10-20 16:15:07 +0000686 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
687 functions related to cmap type 14 support to the
688 `FT_Object_ActionName' scheme:
David Turnercf432db2007-10-19 12:36:40 +0000689
Werner Lemberg7f2425f2007-10-20 16:15:07 +0000690 FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
691 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
692 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
693 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
694 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
695
696 Update documentation accordingly.
697
698 * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
699 Make the code a little more consistent with FreeType coding
700 conventions and modify the cmap14 functions that returned a newly
701 allocated array to use a persistent vector from the TT_CMap14 object
David Turnercf432db2007-10-19 12:36:40 +0000702 instead.
703
Werner Lemberg7f2425f2007-10-20 16:15:07 +0000704 (TT_CMap14Rec): Provide array and auxiliary data for result.
705 (tt_cmap14_done, tt_cmap14_ensure): New functions.
706
707 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
708 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
709 tt_cmap14_char_var_index, tt_cmap14_variants,
710 tt_cmap14_char_variants, tt_cmap14_def_char_count,
711 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
712 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
713
Werner Lemberg9a966b72007-10-15 17:21:32 +00007142007-10-15 George Williams <gww@silcom.com>
715
716 Add support for cmap type 14.
717
718 * devel/ftoption.h, include/freetype/config/ftoption.h
719 (TT_CONFIG_CMAP_FORMAT_14): New macro.
720
721 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
722 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
723 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
724 support function prototypes.
725 (FT_CMap_ClassRec): Add them.
726 Update all users.
727
728 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
729 macro.
730
731 * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
732 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
733 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
734 functions.
735
736 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
737 function.
738 (FT_Set_Charmap): Disallow cmaps of type 14.
739 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
740 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
741 FT_Get_Chars_Of_Variant): New API functions.
742
743 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
744
745 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
746 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
747 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
748 tt_cmap14_find_variant, tt_cmap14_char_var_index,
749 tt_cmap14_char_var_isdefault, tt_cmap14_variants,
750 tt_cmap14_char_variants, tt_cmap14_def_char_count,
751 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
752 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
753 structures for cmap 14 support.
754 (tt_cmap_classes): Register tt_cmap14_class_rec.
755 (tt_face_build_cmaps): One more error message.
756
757 * docs/CHANGES: Mention cmap 14 support.
758
Werner Lemberg74597cc2007-10-01 07:08:56 +00007592007-10-01 Werner Lemberg <wl@gnu.org>
760
761 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
David Turnercf432db2007-10-19 12:36:40 +0000762 charmap fails, do the loop again while searching a UCS-2 charmap.
Werner Lemberg74597cc2007-10-01 07:08:56 +0000763 This favours MS charmaps over Apple ones.
764
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +00007652007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
766
Werner Lemberg9a966b72007-10-15 17:21:32 +0000767 * src/base/ftmac.c: Introduction of abstract `short' data types,
768 ResFileRefNum and ResID. These types were introduced for Copland,
769 then backported to MPW. The variables exchanged with FileManager
770 QuickDraw frameworks are redefined by these data types. Patch was
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +0000771 proposed by Sean McBride.
772 * builds/mac/ftmac.c: Ditto.
773
Werner Lembergabc44f52007-08-18 06:38:07 +00007742007-08-18 Werner Lemberg <wl@gnu.org>
775
776 * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
777 by Imran Yousaf. Fixes Savannah bug #20773.
778
779 (otv_Lookup_validate): Correct handling of LookupType. Found by
780 Imran Yousaf. Fixes Savannah bug #20782.
781
Werner Lemberg23a424f2007-08-17 20:16:44 +00007822007-08-17 George Williams <gww@silcom.com>
783
784 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
785 SingleSubstFormat1.
786
Suzuki, Toshiya (鈴木俊哉)4fc0cce2007-08-11 16:35:06 +00007872007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
788
789 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
790 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
791 Found by Ryan Hill.
792
Werner Lemberg3f1905b2007-08-11 15:45:32 +00007932007-08-11 George Williams <gww@silcom.com>
794
795 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
796 (otv_Coverage_validate): Add fourth argument to pass an expected
797 count value. Update all users.
798 Check glyph IDs.
799 (otv_ClassDef_validate): Check `StartGlyph'.
800
801 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
802 checks.
803
804 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
805 56 constants.
806 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
807 Check glyph IDs.
808
Werner Lembergd76fe5a2007-08-08 06:38:06 +00008092007-08-08 Werner Lemberg <wl@gnu.org>
810
811 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
812 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
813 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
814 appropriate. Reported by George.
815
816 * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
817
818 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
819
820 * docs/CHANGES: Updated.
821
8222007-08-08 George Williams <gww@silcom.com>
823
824 Add `MATH' validating support to otvalid module.
825
826 * include/freetype/tttags.h (TTAG_MATH): New macro.
827 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
828 (FT_VALIDATE_OT): Updated.
829
830 * src/otvalid/otmath.c: New file.
831
832 * src/otvalid/otvalid.c: Include otvmath.c.
833 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
834
Werner Lembergb6617882007-08-04 22:17:48 +00008352007-08-04 Werner Lemberg <wl@gnu.org>
836
David Turnercf432db2007-10-19 12:36:40 +0000837 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
Werner Lembergb6617882007-08-04 22:17:48 +0000838 Fixes Savannah bug #20686.
839
Werner Lembergd6752a62007-08-02 22:03:30 +00008402007-08-03 Werner Lemberg <wl@gnu.org>
841
842 * src/psnames/psmodule.c: Fix usage of
843 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
844
Suzuki, Toshiya (鈴木俊哉)cf093cd2007-07-31 03:58:09 +00008452007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
846
847 * src/base/ftmac.c (open_face_from_buffer): The argument
848 `driver_name' is typed as `const char*' to match with the
849 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
850 This is same with open_face_from_buffer in src/base/ftobjs.c.
851 Found and fixed by Sean McBride.
852
Werner Lemberg39c91ad2007-07-28 05:40:40 +00008532007-07-28 Werner Lemberg <wl@gnu.org>
854
855 * src/raster/ftraster.c (count_table): Make it conditional.
856 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
857 a preprocessor statement.
858
Werner Lemberg71dd6872007-07-27 04:44:36 +00008592007-07-27 Werner Lemberg <wl@gnu.org>
860
861 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
862 first usage. From Savannah patch #6115.
863
Werner Lembergef915c32007-07-16 20:46:05 +00008642007-07-16 Werner Lemberg <wl@gnu.org>
865
866 * docs/CHANGES: Updated.
867
8682007-07-16 Derek Clegg <dclegg@apple.com>
869
870 Add new service for getting the ROS from a CID font.
871
872 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
873 * include/freetype/ftcid.h: New file.
874
875 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
876 * include/freetype/internal/services/svcid.h: New file.
877
878 * src/base/ftcid.c: New file.
879
880 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
881 (cff_get_ros): New function.
882 (cff_service_cid_info): New service structure.
883 (cff_services): Register it.
884
885 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
886
887 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
888
889 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
890
Werner Lemberg2f109562007-07-11 05:32:00 +00008912007-07-11 Derek Clegg <dclegg@apple.com>
892
893 Add support for postscript name service to CFF driver.
894
895 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
896 (cff_get_ps_name): New function.
897 (cff_service_ps_name): New service structure.
898 (cff_services): Register it.
899
Werner Lembergb003b3e2007-07-08 07:13:12 +00009002007-07-07 Werner Lemberg <wl@gnu.org>
901
902 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
903 `target'. Reported by Sean McBride.
904
Werner Lemberg1e1b6df2007-07-07 07:30:40 +00009052007-07-06 Werner Lemberg <wl@gnu.org>
906
907 * src/pfr/pfrcmap.c: Include pfrerror.h.
908
909 * src/autofit/afindic.c: Add some external declarations to pacify
910 `make multi' compilation.
911
912 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
913
914 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
915 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
916 src/autofit/aflatin.c (af_latin_hints_compute_edges),
917 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
918 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
919 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
920
921 * docs/release: Mention test compilation targets.
922
Werner Lemberg986ea4b2007-07-04 04:53:15 +00009232007-07-04 Werner Lemberg <wl@gnu.org>
924
925 * docs/PROBLEMS: Mention that some PS based fonts can't be
926 handled correctly by FreeType.
927
Werner Lemberg3033f432007-07-04 14:12:19 +0000928 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
929 recursion depth of 1. This was the maximum value in TrueType 1.0,
930 and some older fonts don't set this field correctly.
931
932 * src/gxvalid/gxvmort1.c
933 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
934
Werner Lemberg3b0e5002007-07-03 04:48:19 +00009352007-07-03 Werner Lemberg <wl@gnu.org>
936
937 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
938 `round' to pacify compiler.
939
9402007-07-02 Werner Lemberg <wl@gnu.org>
941
942
943 * Version 2.3.5 released.
944 =========================
945
946
947 Tag sources with `VER-2-3-5'.
948
949 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
950 version number to 2.3.5.
951
952 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
953 builds/win32/visualc/freetype.dsp,
954 builds/win32/visualc/freetype.vcproj,
955 builds/win32/visualce/index.html,
956 builds/win32/visualce/freetype.dsp,
957 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
958
959 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
960
961 * builds/unix/configure.raw (version_info): Set to 9:16:3.
962
David Turner0ba89912007-07-01 09:34:04 +00009632007-07-01 David Turner <david@freetype.org>
964
Werner Lemberge3be90b2007-07-02 14:58:58 +0000965 * include/freetype/freetype.h, src/base/ftpatent.c
966 (FT_Face_SetUnpatentedHinting): New function to dynamically change
967 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +0000968
Werner Lemberge3be90b2007-07-02 14:58:58 +0000969 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
970 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +0000971
David Turner74cc0e92007-06-30 22:54:12 +00009722007-06-30 David Turner <david@freetype.org>
973
Werner Lemberge3be90b2007-07-02 14:58:58 +0000974 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
975 initialization.
David Turner74cc0e92007-06-30 22:54:12 +0000976
Werner Lemberge3be90b2007-07-02 14:58:58 +0000977 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
978 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +0000979
Werner Lemberg7723dc32007-06-26 04:44:35 +00009802007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
981
982 Add autofit module for Indic scripts. This currently just reuses
983 the CJK-specific functions.
984
985 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
986 macro.
987 * devel/ftoption.h: Synchronize with
988 include/freetype/config/ftoption.h.
989
990 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
991
992 * src/autofit/afglobal.c, src/autofit/aftypes.h,
993 src/autofit/autofit.c: Updated.
994
995 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
996 (AUTOF_DRV_SRC): Updated.
997
David Turner8f626b02007-06-22 22:22:38 +00009982007-06-23 David Turner <david@freetype.org>
999
Werner Lemberg7854c4a2007-06-23 07:16:20 +00001000 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
1001 2007-06-16 that prevented the TrueType module from loading most
1002 glyphs.
David Turner8f626b02007-06-22 22:22:38 +00001003
Werner Lemberg5b4d4352007-06-20 07:07:55 +000010042007-06-20 Werner Lemberg <wl@gnu.org>
1005
1006 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
1007 change.
1008
Werner Lemberg9fe58152007-06-19 07:57:30 +000010092007-06-19 Werner Lemberg <wl@gnu.org>
1010
1011 * src/type1/t1load.c (parse_encoding): Handle one more error.
1012
Werner Lemberg5a829392007-06-19 04:53:30 +000010132007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
1014
1015 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
1016 FNT_Err_Invalid_File_Format if file format was recognized but
1017 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
1018 Add verbose debug logs to make it easier to debug failing load
1019 attempts.
1020 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
1021 so return an error if requested face index is > 0.
1022 Do not do further attempt to load fonts if a previous attempt has
1023 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
1024 file format has been recognized but no fonts found in the file.
1025
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000010262007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1027
1028 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
1029 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
1030 the compiler warnings against unused arguments.
1031 (FT_ATSFontGetFileReference): Ditto.
1032 (FT_GetFile_From_Mac_ATS_Name): Ditto.
1033 (FT_New_Face_From_FSSpec): Ditto.
1034 (lookup_lwfn_by_fond): Fix wrong comment.
1035 Replace `const StringPtr' by more appropriate type
1036 `ConstStr255Param'.
1037 FSRefMakePathPath always returns UTF8 POSIX pathname in
1038 Mach-O, thus HFS pathname support is dropped.
1039 (count_faces): Remove HLock and HUnlock which is not
1040 required on Mac OS X anymore.
1041 (FT_New_Face_From_SFNT): Ditto.
1042 (FT_New_Face_From_FOND): Ditto.
1043 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
1044 except of HFS pathname support and HLock/HUnlock.
1045 They are required on classic CFM environment.
1046
10472007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +00001048
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001049 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
1050 assertion.
1051 (ps_parser_to_bytes): Fix error message.
1052
Werner Lembergbb2510d2007-06-18 17:07:49 +00001053 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001054 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
1055 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +00001056 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +00001057 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001058
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000010592007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001060
Werner Lembergf48aec72007-06-18 07:07:55 +00001061 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
1062 logic.
1063 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
1064 correctly.
1065 (ps_parser_load_field_table): Use `fields->array_max' instead of
1066 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
1067
Werner Lemberg95104a42007-06-18 07:33:10 +00001068 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
1069 2007-06-06.
1070
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000010712007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +00001072
1073 * src/tools/ftrandom.c (font_size): New global variable.
1074 (TestFace): Use it.
1075 (main): Handle new option `--size' to set `font_size'.
1076 (Usage): Updated.
1077
Werner Lembergbe183eb2007-06-17 11:27:17 +00001078 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
1079 invalid font.
1080 (FNT_Load_Glyph): Protect against invalid bitmap width.
1081
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000010822007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +00001083
Werner Lemberge12ed562007-06-17 05:31:23 +00001084 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
1085 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +00001086
Werner Lemberge12ed562007-06-17 05:31:23 +00001087 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
1088 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +00001089
Werner Lemberge12ed562007-06-17 05:31:23 +00001090 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
1091 and `zp2'.
1092 (Ins_IP): Check argument ranges to reject bogus operations properly.
1093 (IUP_WorkerRec): Add `max_points' member.
1094 (_iup_worker_interpolate): Check argument ranges.
1095 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +00001096
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000010972007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +00001098
1099 * src/winfonts/winfnt.h: Add necessary structures for PE resource
1100 parsing.
1101 (WinPE32_HeaderRec): New structure.
1102 (WinPE32_SectionRec): New structure.
1103 (WinPE_RsrcDirRec): New structure.
1104 (WinPE_RsrcDirEntryRec): New structure.
1105 (WinPE_RsrcDataEntryRec): New structure.
1106 (FNT_FontRec): Remove unused `size_shift' field.
1107
1108 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
1109 loading bitmap .fon files in PE format.
1110
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011112007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +00001112
1113 * builds/win32/ftdebug.c: Unify debug level handling with other
1114 platforms.
1115
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011162007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +00001117
1118 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
1119 console as well as to the debugger.
1120
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011212007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +00001122
1123 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
1124 cover all ranges which could possibly be handled by the aflatin
1125 module (since the default fallback for unknown ranges is now the
1126 afcjk module). It might be necessary to fine-tune this further by
1127 splitting off modules for Greek, Cyrillic, or other blocks.
1128
David Turnerb7920172007-06-11 05:37:35 +000011292007-06-11 David Turner <david@freetype.org>
1130
Werner Lemberg49e18b82007-06-11 21:15:09 +00001131 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
1132 incorrect segment linking computation. This was the root cause of
1133 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +00001134
1135
Werner Lemberg49e18b82007-06-11 21:15:09 +00001136 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
1137 to improve the Latin auto-hinter. Note that the new code is
1138 disabled by default since it is not stabilized yet.
1139
1140 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
1141 (disabled currently).
1142
1143 * src/autofit/afhints.c: Remove dead code.
1144 (af_axis_hints_new_edge): Add argument to handle segment directions.
1145 (af_edge_flags_to_string): New function.
1146 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
1147 option flags.
1148 (af_glyph_hints_reload): Add argument to handle inflections.
1149 Simplify.
1150 (af_direction_compute): Fine tuning.
1151 (af_glyph_hints_align_edge_points): Fix logic.
1152 (af_glyph_hints_align_strong_points): Do linear search for small
1153 edge counts.
1154 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
1155 (af_iup_shift): Handle zero `delta'.
1156
1157 * src/autofit/afhints.h: Updated.
1158 (AF_SORT_SEGMENTS): New macro (disabled).
1159 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
1160
1161 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
1162 argument to pass option flags for handling scripts.
1163 * src/autofit/afglobal.h: Updated.
1164
1165 * src/autofit/afcjk.c: Updated.
1166 * src/autofit/aflatin.c: Updated.
1167 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
1168
1169 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
1170 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
1171 Don't set `edge->dir'
1172 (af_latin_hint_edges): Add more logging.
1173
1174 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +00001175
Werner Lembergf6c120f2007-06-11 04:55:58 +000011762007-06-11 Werner Lemberg <wl@gnu.org>
1177
Werner Lembergcf7b7642007-06-11 04:58:01 +00001178 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +00001179
David Turner84c6f882007-06-10 20:51:04 +000011802007-06-10 David Turner <david@freetype.org>
1181
Werner Lembergf6c120f2007-06-11 04:55:58 +00001182 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
1183 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +00001184
Werner Lembergf6c120f2007-06-11 04:55:58 +00001185 * include/freetype/config/ftoption.h: Clarify documentation
1186 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +00001187
Werner Lembergf6c120f2007-06-11 04:55:58 +00001188
1189 Add new `FT_Face_CheckTrueTypePatents' API.
1190
1191 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
1192 declaration.
1193
1194 * include/freetype/internal/services/svttglyf.h,
1195 src/base/ftpatent.c: New files.
1196
1197 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
1198 New macro.
1199
1200 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
1201 `ttpload.h'.
1202 (tt_service_truetype_glyf): New service structure.
1203 (tt_services): Register it.
1204
1205 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
1206 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +00001207
Werner Lemberg33db39e2007-06-08 06:30:29 +000012082007-06-08 Werner Lemberg <wl@gnu.org>
1209
David Turner84c6f882007-06-10 20:51:04 +00001210 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +00001211 Fonts without a cmap must be handled correctly by FreeType (anything
1212 else would be a bug).
1213
1214
1215 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1216 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
1217
Werner Lemberg88ab6382007-06-07 05:01:56 +000012182007-06-07 Werner Lemberg <wl@gnu.org>
1219
1220 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
1221 tt_sbit_decoder_load_image): Protect against integer overflows.
1222
1223
1224 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
1225 for `x_control' and `y_control'.
1226
Werner Lemberg2a2dca62007-06-06 04:39:37 +000012272007-06-06 Werner Lemberg <wl@gnu.org>
1228
1229 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
1230
Werner Lemberga8d65492007-06-06 04:47:49 +00001231
1232 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
1233 FreeType error.
1234
Werner Lemberg470210b2007-06-06 10:05:49 +00001235
1236 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
1237 `font_count'.
1238
1239
1240 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
1241
1242
1243 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
1244 `FT_Error'.
1245 Check `fd_index'.
1246 (cff_slot_load): Updated.
1247 * src/cff/cffgload.h: Updated.
1248
Werner Lemberg6c054752007-06-05 05:27:54 +000012492007-06-05 Werner Lemberg <wl@gnu.org>
1250
1251 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
1252 (pfr_glyph_load_simple): Convert assertion into normal FreeType
1253 error.
1254 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +00001255 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
1256 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +00001257
1258 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
1259
Werner Lembergf4bc3f42007-06-05 07:32:15 +00001260
Werner Lemberg470210b2007-06-06 10:05:49 +00001261 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +00001262
Werner Lemberge5c14d92007-06-05 20:50:37 +00001263
1264 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
1265 in case of parsing error.
1266 (ps_parser_load_field): Updated.
1267
1268 * src/type1/t1load.c (parse_font_matrix): Updated.
1269
Werner Lembergad18b362007-06-04 07:04:05 +000012702007-06-04 Werner Lemberg <wl@gnu.org>
1271
1272 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
1273
1274 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
1275
Werner Lemberg3d507fe2007-06-03 16:54:55 +000012762007-06-03 Werner Lemberg <wl@gnu.org>
1277
Werner Lemberg99a320b2007-06-03 19:21:26 +00001278 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
1279 George Williams (with some modifications).
1280
12812007-06-03 Werner Lemberg <wl@gnu.org>
1282
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001283 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
1284 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
1285 face == NULL. Suggested by Graham Asher.
1286
Werner Lembergce280a22007-06-03 05:58:30 +000012872007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
1288
1289 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
1290
Werner Lemberg5b591e42007-06-01 22:16:43 +000012912007-06-02 Werner Lemberg <wl@gnu.org>
1292
1293 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
1294 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
1295
1296 * src/bdf/bdflib.c (bdf_load_font): Use them.
1297
1298 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
1299
Werner Lembergb9933f42007-06-01 21:27:12 +000013002007-06-01 Werner Lemberg <wl@gnu.org>
1301
1302 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
1303 (FTC_CMapCache_Lookup): Remove unused code.
1304
Werner Lembergc793d902007-06-01 20:51:11 +000013052007-06-01 Sean McBride <sean@rogue-research.com>
1306
1307 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
1308 unused.
1309
Werner Lembergbebc7b12007-06-01 06:32:30 +000013102007-06-01 Werner Lemberg <wl@gnu.org>
1311
1312 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
1313 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +00001314 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +00001315
Werner Lembergcb37b3b2007-06-01 06:49:03 +00001316 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
1317 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
1318
Werner Lembergba03af62007-05-30 13:57:02 +000013192007-05-30 Werner Lemberg <wl@gnu.org>
1320
1321 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
1322 against too small binary data strings.
1323
1324 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
1325
David Turnerf0cd69c2007-05-28 15:42:09 +000013262007-05-28 David Turner <david@freetype.org>
1327
Werner Lemberg99e0c182007-05-29 07:00:23 +00001328 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
1329 transformation. This significantly reduces the loading time of CFF
1330 glyphs.
David Turner552a9562007-05-28 15:45:35 +00001331
Werner Lemberg99e0c182007-05-29 07:00:23 +00001332 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +00001333
Werner Lemberg99e0c182007-05-29 07:00:23 +00001334 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
1335 hinting script to CJK, since it works well with more scripts than
1336 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
1337 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +00001338
Werner Lemberg1c8980e2007-05-25 07:11:12 +000013392007-05-25 Werner Lemberg <wl@gnu.org>
1340
1341 * docs/CHANGES: Updated.
1342
Werner Lemberg6ff2ff52007-05-24 19:39:14 +000013432007-05-24 Werner Lemberg <wl@gnu.org>
1344
1345 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
1346 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
1347
13482007-05-24 Graham Asher <graham.asher@btinternet.com>
1349
1350 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
1351 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
1352
David Turner0d0365e2007-05-22 09:53:44 +000013532007-05-22 David Turner <david@freetype.org>
1354
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001355 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
1356 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +00001357
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001358
1359 Avoid heap blowup with very large .Z font files. This fixes
1360 Savannah bug #19910.
1361
1362 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
1363 `in_limit', `pad', `pad_bits', and `in_buff' members.
1364 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
1365 `buf_total' members.
1366
1367 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
1368 only one argument.
1369 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +00001370
13712007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +00001372
1373 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
1374 (ps_dimension_set_mask_bits): Remove `const'.
1375
David Turner0d0365e2007-05-22 09:53:44 +000013762007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +00001377
1378 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1379 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
1380
Werner Lembergb826fa72007-05-19 07:18:48 +000013812007-05-19 Derek Clegg <dclegg@apple.com>
1382
1383 Savannah patch #5929.
1384
1385 * include/freetype/tttables.h, src/base/ftobjcs.c
1386 (FT_Get_CMap_Format): New function.
1387
1388 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
1389 `format' member.
1390 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
1391 cmap_info->format.
1392
Werner Lemberg6f99c882007-05-19 07:01:49 +000013932007-05-19 Werner Lemberg <wl@gnu.org>
1394
1395 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
1396 before handling subglyphs so that it can be reinitialized each time.
1397 This fixes Savannah bug #19859.
1398
Werner Lemberg95bc9d32007-05-16 15:19:42 +000013992007-05-16 Werner Lemberg <wl@gnu.org>
1400
1401 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
1402 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
1403 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
1404 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
1405 tt_face_get_metrics): Fix type-punning issues.
1406
David Turner0a24bd22007-05-15 10:54:10 +000014072007-05-15 David Turner <david@freetype.org>
1408
1409 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00001410 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
1411 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +00001412 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00001413 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +00001414
Werner Lemberg607dec72007-05-15 06:49:37 +000014152007-05-15 Graham Asher <graham.asher@btinternet.com>
1416
1417 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
1418 variable.
1419 * src/autofit/afloader.c (af_loader_load_g): Ditto.
1420
1421 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
1422 (open_face_from_buffer): Initialize `stream'.
1423 (FT_Request_Metrics): Remove unused variable.
1424 Remove redundant `break' statements.
1425 (FT_Get_Track_Kerning): Remove unused variable.
1426
1427 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
1428 afm_parse_kern_data): Remove redundant
1429 `break' statements.
1430 (afm_parser_parse): Ditto.
1431 Don't use uninitialized variables.
1432
1433 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
1434 Use `|' operator instead of `^' to set it.
1435 Update all users.
1436
1437 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
1438 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
1439
1440 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
1441 comparison.
1442 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
1443 (TT_Load_Glyph): Remove unused variable.
1444
Werner Lemberg8d463a52007-05-13 16:01:55 +000014452007-05-13 Derek Clegg <dclegg@apple.com>
1446
1447 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
1448 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
1449
David Turner711cf842007-05-11 14:36:24 +000014502007-05-11 David Turner <david@freetype.org>
1451
Werner Lemberg56ceaa42007-05-14 18:53:58 +00001452 * src/cache/ftbasic.c, include/freetype/ftcache.h
1453 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
1454 functions that allow us to look up glyphs using an FTC_Scaler object
1455 to specify the size, making it possible to use fractional pixel
1456 sizes.
1457
1458 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
1459 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +00001460
Werner Lemberg94be20e2007-05-09 20:02:55 +000014612007-05-09 Graham Asher <graham.asher@btinternet.com>
1462
1463 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
1464 (af_latin_metrics_scale_dim): Fix compiler warnings.
1465
Werner Lemberg41271032007-05-06 04:51:48 +000014662007-05-06 Werner Lemberg <wl@gnu.org>
1467
1468 * builds/win32/visualce/freetype.sln: Removed, as requested by
1469 Vincent.
1470
Werner Lembergdf49e692007-05-04 06:30:05 +000014712007-05-04 Vincent RICHOMME <richom.v@free.fr>
1472
1473 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
1474 PC targets.
1475
1476 * docs/CHANGES: Document them.
1477
14782007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +00001479
1480 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
1481 mmap (which might happen on some RTOS). From Savannah patch #5909.
1482
Werner Lemberg106eaf12007-05-03 07:07:47 +000014832007-05-03 Werner Lemberg <wl@gnu.org>
1484
1485 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
1486 * include/freetype/freetype.h (FT_Set_Char_Size): Update
1487 documentation.
1488
Werner Lemberg1b5267d2007-04-28 21:06:15 +000014892007-04-28 Victor Stinner <victor.stinner@inl.fr>
1490
1491 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
1492 `cmap'.
1493
Werner Lembergcc712a22007-04-27 17:16:50 +000014942007-04-27 Werner Lemberg <wl@gnu.org>
1495
1496 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
1497 number of points in contours. Problem reported by Victor Stinner
1498 <victor.stinner@haypocalc.com>.
1499 (TT_Process_Simple_Glyph): Synchronize variable types.
1500
Werner Lemberg45bb18f2007-04-26 06:26:35 +000015012007-04-26 Werner Lemberg <wl@gnu.org>
1502
1503 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
1504 zero in case of error. This fixes Savannah bug #19689.
1505
David Turnera8b45e62007-05-11 14:10:30 +000015062007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
1507
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001508 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
1509 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +00001510
Werner Lembergfcc1f472007-04-10 11:51:50 +000015112007-04-10 Martin Horak <horakm@centrum.cz>
1512
1513 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
1514 Ignore `hhea' table. This fixes Savannah bug #19261.
1515
Werner Lemberg14bf82e2007-04-10 04:09:49 +000015162007-04-09 Werner Lemberg <wl@gnu.org>
1517
Werner Lemberg3b0e5002007-07-03 04:48:19 +00001518
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001519 * Version 2.3.4 released.
1520 =========================
1521
1522
1523 Tag sources with `VER-2-3-4'.
1524
1525 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1526 version number to 2.3.4.
1527
1528 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1529 builds/win32/visualc/freetype.dsp,
1530 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
1531
1532 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
1533
1534 * builds/unix/configure.raw (version_info): Set to 9:15:3.
1535
Werner Lembergf4a52a62007-04-09 08:40:11 +000015362007-04-09 Martin Horak <horakm@centrum.cz>
1537
1538 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
1539 memory stream to avoid a crash with the incremental memory
1540 interface (Savannah bug #19260).
1541
David Turner1dcb4442007-04-06 08:19:04 +000015422007-04-06 David Turner <david@freetype.org>
1543
Werner Lembergc81cf612007-04-06 09:28:23 +00001544 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
1545 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +00001546
Werner Lemberg9f83e052007-04-05 02:28:23 +000015472007-04-04 Werner Lemberg <wl@gnu.org>
1548
Werner Lemberg3b0e5002007-07-03 04:48:19 +00001549
Werner Lemberg9f83e052007-04-05 02:28:23 +00001550 * Version 2.3.3 released.
1551 =========================
1552
1553
1554 Tag sources with `VER-2-3-3'.
1555
1556 * docs/CHANGES: Mention CVE-2007-1351.
1557
David Turner7338ec22007-04-03 14:30:34 +000015582007-04-03 David Turner <david@freetype.org>
1559
1560 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +00001561 if one of the resolution values is 0, treat it as if it were the
1562 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +00001563
David Turnere6472c12007-04-02 13:13:54 +000015642007-04-02 David Turner <david@freetype.org>
1565
Werner Lemberg94f12272007-04-03 07:19:53 +00001566 Add special code to detect `extra-light' fonts and do not snap their
1567 stem widths too much to avoid bizarre hinting effects.
1568
1569 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
1570 `extra_light' members.
1571
1572 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
1573 them.
1574 (af_latin_metrics_scale_dim): Set `extra_light'.
1575 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +00001576
David Turner3f539692007-03-28 14:53:40 +000015772007-03-28 David Turner <david@freetype.org>
1578
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001579 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +00001580 padding.
1581
Werner Lemberga08b2172007-03-28 07:17:17 +000015822007-03-28 Werner Lemberg <wl@gnu.org>
1583
1584 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
1585 gracefully.
1586 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +00001587 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +00001588 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
1589 number of code points in Unicode.
1590
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001591 * builds/win32/visualc/index.html,
1592 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001593 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001594 s/232/233/.
1595
1596 * docs/CHANGES: Mention ftdiff.
1597
David Turner3b242d32007-03-26 12:03:04 +000015982007-03-26 David Turner <david@freetype.org>
1599
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001600 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
1601 corresponding code.
1602 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +00001603
Werner Lemberga08b2172007-03-28 07:17:17 +00001604 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001605 computations in order to ignore single-point contours. These are
1606 never rasterized and correspond in certain fonts to mark-attach
1607 points that are very far from the glyph's real outline, ruining the
1608 computation.
David Turnerf58caa02007-03-26 12:39:25 +00001609
Werner Lemberga08b2172007-03-28 07:17:17 +00001610 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +00001611 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +00001612 Otherwise code that uses them will most certainly ruin the fixed
1613 advance property.
David Turner23553d62007-03-26 13:37:17 +00001614
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001615 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
1616 documentation and bump version number to 2.3.3.
1617
1618 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
1619
1620 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +00001621
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000016222007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1623
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001624 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
1625 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001626 * builds/vms/ftconfig.h: Ditto.
1627 * include/freetype/config/ftconfig.h: Ditto.
1628
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000016292007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1630
Werner Lemberg14ffe092007-03-22 06:12:43 +00001631 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
1632 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +00001633 proposed by Sean McBride:
1634 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
1635
16362007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1637
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001638 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
1639 setjmp, proposed by Sean McBride:
1640 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
1641
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000016422007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1643
Werner Lembergc9f6c662007-03-21 13:30:14 +00001644 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
1645 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
1646 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001647
David Turner74c34eb2007-03-18 07:19:31 +000016482007-03-18 David Turner <david@freetype.org>
1649
Werner Lembergc9f6c662007-03-21 13:30:14 +00001650 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
1651 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +00001652
Werner Lembergc9f6c662007-03-21 13:30:14 +00001653 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +00001654
David Turner89020d92007-03-17 17:48:57 +000016552007-03-17 David Turner <david@freetype.org>
1656
Werner Lembergc9f6c662007-03-21 13:30:14 +00001657 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
1658 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +00001659
Werner Lemberg25d592a2007-03-09 07:59:35 +000016602007-03-09 Werner Lemberg <wl@gnu.org>
1661
Werner Lemberg3b0e5002007-07-03 04:48:19 +00001662
Werner Lemberg25d592a2007-03-09 07:59:35 +00001663 * Version 2.3.2 released.
1664 =========================
1665
1666
1667 Tag sources with `VER-2-3-2'.
1668
1669 * builds/win32/visualc/index.html,
1670 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001671 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +00001672 s/231/232/.
1673
David Turner3a51afa2007-03-08 10:50:38 +000016742007-03-08 David Turner <david@freetype.org>
1675
Werner Lemberg25d592a2007-03-09 07:59:35 +00001676 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +00001677
Werner Lemberg25d592a2007-03-09 07:59:35 +00001678 * builds/unix/configure.raw (version_info): Set to 9:13:3.
1679
1680 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
1681
1682 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +00001683
Werner Lemberg1e259de2007-03-08 15:39:21 +00001684 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
1685 function to work properly, over-writing user-provided buffers in
1686 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +00001687
David Turner121cad52007-03-08 16:43:50 +00001688
Werner Lemberg3d92f082007-03-06 11:59:24 +000016892007-03-05 Werner Lemberg <wl@gnu.org>
1690
1691 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
1692 macro for `strstr'.
1693
1694 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
1695 `trick_names', as suggested by Ivan Nincic.
1696
David Turner085bc6e2007-03-05 17:40:03 +000016972007-03-05 David Turner <david@freetype.org>
1698
Werner Lembergd112cf02007-03-06 12:06:56 +00001699 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
1700 case FT_Init_FreeType fails for some reason. Problem reported by
1701 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +00001702
Werner Lembergd112cf02007-03-06 12:06:56 +00001703 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
1704 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
1705 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
1706 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +00001707
Werner Lembergd112cf02007-03-06 12:06:56 +00001708 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
1709 signed values, not unsigned ones. Problem reported by Johannes
1710 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +00001711
David Turner601aefe2007-02-21 16:47:49 +000017122007-02-21 David Turner <david@freetype.org>
1713
Werner Lembergde5e6862007-02-25 21:06:43 +00001714 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
1715 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +00001716
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +000017172007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1718
1719 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
1720 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
1721 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
1722
Werner Lemberga0915172007-02-16 08:12:50 +000017232007-02-16 Werner Lemberg <wl@gnu.org>
1724
1725 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
1726 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
1727
David Turner2c4500e2007-02-14 15:08:47 +000017282007-02-14 David Turner <david@freetype.org>
1729
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00001730 It seems that the following changes fix most of the known
1731 interpreter problems with my fonts, but more testing is needed,
1732 though.
1733
1734 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
1735 (TT_MulFix14): Rewrite.
1736 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
1737 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +00001738
Werner Lembergc6a14082007-02-12 22:08:15 +000017392007-02-12 Werner Lemberg <wl@gnu.org>
1740
1741 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
1742 warnings.
1743
1744 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
1745 (bdf_interpret_style): Ditto.
1746
David Turnerc0f9c4a2007-02-12 14:55:03 +000017472007-02-12 David Turner <david@freetype.org>
1748
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00001749 Simplify projection and dual-projection code interface.
1750
Werner Lemberg406d25f2007-02-12 22:01:18 +00001751 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
1752 FT_Vector' as argument type.
1753 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
1754 Updated.
1755 (CUR_fast_project, CUR_fast_dualproj): New macros.
1756 (Project, Dual_Project, Project_x, Project_y): Updated.
1757 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
1758 macros.
1759
1760
1761 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
1762 adjustments for the non-light auto-hinted modes. Gets rid of
1763 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +00001764
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00001765 * src/autofit/aflatin.c (af_latin_hints_link_segments,
1766 af_latin_hints_compute_edges): Slight optimization of the segment
1767 linker and better handling of serif segments to get rid of broken
1768 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +00001769
David Turnerc0f9c4a2007-02-12 14:55:03 +00001770
Werner Lemberg442bfb82007-02-12 21:44:10 +00001771 Introduce new string functions and the corresponding macros to get
1772 rid of various uses of strcpy and other `evil' functions, as well as
1773 to simplify a few things.
1774
1775 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
1776 ft_mem_strcpyn): New declarations.
1777 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
1778 macros.
1779 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
1780 functions.
1781
1782 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
1783 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
1784 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
1785 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
1786 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
1787 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
1788 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
1789 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +00001790
Werner Lemberg406d25f2007-02-12 22:01:18 +00001791 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
1792
Werner Lemberg582067d2007-02-11 15:03:05 +000017932007-02-11 Werner Lemberg <wl@gnu.org>
1794
1795 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
1796 non-spacing glyphs.
1797
Werner Lemberg8f474532007-02-07 08:31:01 +000017982007-02-07 Tom Parker <palfrey@tevp.net>
1799
1800 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
1801 pointer.
1802
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000018032007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1804
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00001805 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
1806 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +00001807 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00001808 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
1809 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
1810 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
1811 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +00001812
1813 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
1814 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00001815 * builds/mac/ftmac.c: Ditto.
1816
18172007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1818
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00001819 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +00001820 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00001821 #include <ftmac.c>.
1822
18232007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1824
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +00001825 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
1826 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
1827 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
1828 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
1829 FT_GetFilePath_From_Mac_ATS_Name.
1830 * builds/mac/ftmac.c: Ditto.
1831
18322007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1833
Werner Lembergdcbb7082007-02-08 08:54:09 +00001834 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +00001835 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
1836 for passing to FT_New_Face_From_FSSpec.
1837
18382007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1839
Werner Lembergdcbb7082007-02-08 08:54:09 +00001840 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001841 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +00001842
1843 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
1844 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001845 * builds/mac/ftmac.c (OS_INLINE): Ditto.
1846
Werner Lemberg313d7772007-02-01 08:10:45 +000018472007-02-01 Werner Lemberg <wl@gnu.org>
1848
1849 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
1850 Explain why applications shouldn't use it. Found by Alexei.
1851
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000018522007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001853
1854 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
1855 message.
1856
1857 * src/gxvalid/gxvmort1.c
1858 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
1859 message.
1860
Werner Lemberg53935932007-01-31 08:53:02 +000018612007-01-31 Werner Lemberg <wl@gnu.org>
1862
1863
1864 * Version 2.3.1 released.
1865 =========================
1866
1867
1868 Tag sources with `VER-2-3-1-FINAL'.
1869
1870 * builds/win32/visualc/freetype.dsp,
1871 builds/win32/visualc/freetype.vcproj: s/230/231/.
1872 * builds/win32/visualc/index.html: s/221/231/.
1873
1874 * vms_make.com: Add `ftgasp'.
1875
David Turnera7ee6082007-01-30 10:33:53 +000018762007-01-30 David Turner <david@freetype.org>
1877
Werner Lemberg53935932007-01-31 08:53:02 +00001878 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +00001879
Werner Lemberg53935932007-01-31 08:53:02 +00001880 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +00001881
Werner Lemberg25d592a2007-03-09 07:59:35 +00001882 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +00001883 s/2.3.0/2.3.1/.
1884
1885 * builds/unix/configure.raw (version_info): Set to 9:12:3.
1886
1887
1888 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
1889 (af_loader_load_g): Disable the warper (i.e., the light hinting
1890 improvements) to make a 2.3.1 bugfix release before introducing a
1891 new feature. This should give us more time to tune and improve the
1892 warper for the next release.
1893
1894 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +00001895
David Turnerd91eebd2007-01-26 15:05:41 +000018962007-01-25 David Turner <david@freetype.org>
1897
Werner Lembergbf241762007-01-26 16:08:49 +00001898 For light auto-hinting, improve glyph advance widths and resurrect
1899 normal/full hinting to its normal quality.
1900
1901 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
1902 and `xmax_delta'.
1903 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
1904 and `xmax_delta'.
1905
1906 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
1907 preprocessor conditional with if-clause, handling both light and
1908 normal mode.
1909
1910 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
1911 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00001912
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000019132007-01-25 Werner Lemberg <wl@gnu.org>
1914
1915 * docs/release: Updated -- Savannah uses a new uploading scheme.
1916
David Turnera42567b2007-01-25 12:23:37 +000019172007-01-25 David Turner <david@freetype.org>
1918
Werner Lembergd7855662007-01-25 13:53:56 +00001919 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00001920
Werner Lembergd7855662007-01-25 13:53:56 +00001921 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1922 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
1923 functions.
David Turnera42567b2007-01-25 12:23:37 +00001924
Werner Lembergd7855662007-01-25 13:53:56 +00001925 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00001926
Werner Lembergb1be9e82007-01-25 11:50:00 +000019272007-01-25 Werner Lemberg <wl@gnu.org>
1928
1929 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00001930 correctly in a sanity check. Since this function is only used to
1931 load local and global functions, any charstring that called the last
1932 local/global function would fail otherwise. This fixes Savannah bug
1933 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00001934
1935 * docs/CHANGES: Document it.
1936
David Turnerb6de8d12007-01-23 15:51:50 +000019372007-01-23 David Turner <david@freetype.org>
1938
Werner Lembergb1be9e82007-01-25 11:50:00 +00001939 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1940 prevented compilation when disabling both the unpatented and the
1941 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00001942
Werner Lembergb1be9e82007-01-25 11:50:00 +00001943
1944 Fix and enable the warper to improve `light' hinting mode. This is
1945 not necessarily a final version, but it seems to work well.
1946
1947 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1948 Disable code.
1949 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1950 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1951
1952 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1953 (af_warper_compute_line_best): Fix array size of `scores'.
1954 (af_warper_compute): Better handling of border cases.
1955 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1956 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00001957
Werner Lemberg011d1112007-01-21 09:36:00 +000019582007-01-21 Werner Lemberg <wl@gnu.org>
1959
Werner Lemberg42b63b22007-01-21 21:01:33 +00001960 * ChangeLog: Split off older entries into...
1961 * ChangeLog.22: This new file.
1962
19632007-01-21 Werner Lemberg <wl@gnu.org>
1964
Werner Lemberg555258f2007-01-21 09:46:37 +00001965 * docs/CHANGES: Document SHZ fix.
1966
19672007-01-21 George Williams <gww@silcom.com>
1968
1969 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1970 points.
1971
19722007-01-21 Werner Lemberg <wl@gnu.org>
1973
Werner Lemberg011d1112007-01-21 09:36:00 +00001974 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1975 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1976
Werner Lemberg87a5a432007-01-17 12:44:39 +000019772007-01-17 Werner Lemberg <wl@gnu.org>
1978
Werner Lembergb8003292007-01-17 12:56:25 +00001979
1980 * Version 2.3.0 released.
1981 =========================
1982
1983
1984 Tag sources with `VER-2-3-0-FINAL'.
1985
19862007-01-17 Werner Lemberg <wl@gnu.org>
1987
Werner Lemberg87a5a432007-01-17 12:44:39 +00001988 * docs/release: Updated.
1989
David Turner22122722007-01-16 20:06:44 +000019902007-01-16 David Turner <david@freetype.org>
1991
Werner Lemberg87a5a432007-01-17 12:44:39 +00001992 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1993 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1994 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1995 warnings.
David Turner22122722007-01-16 20:06:44 +00001996
Werner Lemberg267e1d72007-01-15 07:48:09 +000019972007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1998
1999 * builds/amiga/makefile, builds/amiga/makefile.os4,
2000 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
2001
2002 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
2003
Werner Lemberg8c4120d2007-01-15 06:42:40 +000020042007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
2005
2006 Fix various compiler warnings.
2007
2008 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
2009 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
2010 s/index/strike_index/.
2011 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
2012
2013 * src/gxvalid/gxvmorx5.c
2014 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
2015
2016 * src/truetype/ttinterp.c (Compute_Point_Displacement),
2017 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
2018 uninitialized variables.
2019
Werner Lemberg6164a9d2007-01-13 23:01:36 +000020202007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2021
2022 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
2023
Werner Lemberg281c1482007-01-13 22:50:51 +000020242007-01-13 Werner Lemberg <wl@gnu.org>
2025
2026 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
2027 versions up to 0x3FF without complaining.
2028
Werner Lembergac250b22007-01-13 14:01:36 +000020292007-01-13 Derek Clegg <dclegg@apple.com>
2030
2031 Add FT_Get_PS_Font_Info interface to CFF driver.
2032
2033 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
2034 (CFF_FontRec): Add `font_info' field.
2035
2036 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
2037 (cff_font_done): Free font->font_info if necessary.
2038
2039 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
2040 (cff_service_ps_info): Register cff_ps_get_font_info.
2041
Werner Lemberg23df31a2007-01-13 08:45:00 +000020422007-01-13 Werner Lemberg <wl@gnu.org>
2043
2044 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
2045 with C++ compiler.
2046
2047 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
2048 af_glyph_hints_dump_edges): Ditto.
2049
2050 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
2051 `modules.cfg').
2052
2053 * src/sfnt/ttsbit0.h: Remove.
2054
2055 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
2056
Werner Lemberg27cf9de2007-01-13 07:34:23 +000020572007-01-12 David Turner <david@freetype.org>
2058
2059 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
2060 bug in the bitmap emboldener if the pitch of the source bitmap is
2061 much larger than its width.
2062
2063 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
2064 compilation warning.
2065
Werner Lemberg6d96d312007-01-12 10:30:19 +000020662007-01-12 Werner Lemberg <wl@gnu.org>
2067
2068 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
2069 `automake' CVS module from sources.redhat.com.
2070
Werner Lemberg17432b52007-01-12 09:28:44 +000020712007-01-11 Werner Lemberg <wl@gnu.org>
2072
2073 * src/type1/t1load.c (is_space): Removed.
2074 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
2075 (parse_charstrings): Use IS_PS_TOKEN.
2076
2077
2078 * autogen.sh: Avoid bash specific syntax.
2079
David Turner038ace22007-01-11 15:00:59 +000020802007-01-11 David Turner <david@freetype.org>
2081
Werner Lemberg17432b52007-01-12 09:28:44 +00002082 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00002083
Werner Lemberg17432b52007-01-12 09:28:44 +00002084 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00002085
Werner Lemberg17432b52007-01-12 09:28:44 +00002086 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
2087 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00002088 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00002089
Werner Lemberg17432b52007-01-12 09:28:44 +00002090 * autogen.sh: Small fix to get it working on Mac OS X properly:
2091 The issue is that GNU libtool is called `glibtool' on this platform,
2092 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00002093
David Turner2628ea92007-01-10 13:15:56 +000020942007-01-10 David Turner <david@freetype.org>
2095
Werner Lemberg17432b52007-01-12 09:28:44 +00002096 * all-sources: Tag all sources with VER-2-3-0-RC1 and
2097 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00002098
Werner Lemberg17432b52007-01-12 09:28:44 +00002099 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
2100 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
2101 version number to 2.3.0.
2102
2103 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
2104 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00002105
2106 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00002107 include/freetype/ftlcdfil.h: Update reference documentation with
2108 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00002109
Werner Lemberg17432b52007-01-12 09:28:44 +00002110 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
2111 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00002112
Werner Lembergbf02d392007-01-10 07:07:37 +000021132007-01-10 Derek Clegg <dclegg@apple.com>
2114
2115 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
2116 values.
2117
David Turnerf48b60e2007-01-08 15:15:32 +000021182007-01-08 David Turner <david@freetype.org>
2119
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002120 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00002121
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002122 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
2123 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00002124 corresponding to a given character pixel size.
2125
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002126 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
2127 `gasp' table, in order to avoid potential problems with later
2128 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00002129
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002130 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
2131 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00002132
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002133 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
2134 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
2135 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
2136 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00002137
Werner Lemberge6b6f372007-01-07 00:06:47 +000021382007-01-07 Werner Lemberg <wl@gnu.org>
2139
Werner Lembergb8004d22007-01-07 09:13:38 +00002140 * src/cid/cidparse.c (cid_parser_new): Improve error message for
2141 Type 11 fonts.
2142 Scan for `/sfnts' token.
2143
21442007-01-07 Werner Lemberg <wl@gnu.org>
2145
2146 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00002147
Werner Lembergbe5f7972007-01-06 07:51:48 +000021482007-01-06 Werner Lemberg <wl@gnu.org>
2149
2150 * src/cff/cffload.c (cff_index_init): Remove unused variable.
2151 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
2152
David Turnera8cf42b2007-01-04 16:46:46 +000021532007-01-04 David Turner <david@freetype.org>
2154
Werner Lembergf6294392007-01-06 07:47:45 +00002155 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
2156 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00002157
Werner Lembergf6294392007-01-06 07:47:45 +00002158
2159 Do not allocate interpreter-specific tables in memory if we are not
2160 going to load glyphs with the bytecode interpreter anyway.
2161
2162 * src/truetype/ttgload.c (tt_loader_init): Load execution context
2163 only if glyph is hinted.
2164 Updated.
2165 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
2166 and `cvs_ready'.
2167 Add `tt_size_ready_bytecode' declaration.
2168 * src/truetype/ttobjs.c (tt_size_done_bytecode,
2169 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
2170 (tt_size_init): Move most code into `tt_size_init_bytecode'.
2171 (tt_size_done): Move most code into `tt_size_done_bytecode'.
2172 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00002173
David Turner91a34022007-01-05 14:47:08 +00002174
Werner Lembergf6294392007-01-06 07:47:45 +00002175 Don't extract the metrics table from the SFNT font file. Instead,
2176 reparse it on each glyph load. The runtime difference is not
2177 noticeable, and it can save a lot of heap memory when memory-mapped
2178 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00002179
Werner Lembergf6294392007-01-06 07:47:45 +00002180 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
2181 `horz_metrics_offset' and `vert_metrics_ofset'.
2182 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
2183 Updated.
2184
2185
2186 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
2187
2188
2189 Do not load the CFF index offsets into memory, since this wastes a
2190 *lot* of heap memory with large Asian CFF fonts. There is no
2191 significant performance loss.
2192
2193 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
2194 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
2195 `data_size'.
2196 (CFF_CharsetRec): Add field `num_glyphs'.
2197
2198 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
2199 cff_charset_cid_to_gindex): New functions.
2200 (cff_new_index): Renamed to...
2201 (cff_index_init): This. Update all callers.
2202 Updated -- some code has been moved to `cff_index_load_offsets'.
2203 (cff_done_index): Renamed to...
2204 (cff_index_done): This. Update all callers.
2205 (cff_index_get_pointers, cff_index_access_element): Updated to use
2206 stream offsets.
2207 (cff_charset_compute_cids): Set `num_glyphs' field.
2208 (cff_encoding_load): Updated.
2209
2210 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00002211
22122007-01-04 David Turner <david@freetype.org>
2213
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002214 * docs/INSTALL.UNIX: Simplify some parts, add reference to
2215 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00002216
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002217 * README.CVS: Add common problem description and solution
2218 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00002219
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002220 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00002221
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002222 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00002223
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002224 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00002225
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002226 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
2227 (TWorker): This.
2228 Remove `count_table' and `memory'.
2229 Make `grays' a pointer.
2230 (TRaster): New structure.
2231 (count_table): New static array.
2232 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
2233 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
2234 ft_black_set_mode, ft_black_render): Updated.
2235 (ft_black_init): Don't initialize `count_table'.
2236 (ft_black_reset): Use the render pool. This saves about 6KB of
2237 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00002238
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002239 * src/smooth/ftgrays.c (TRaster): Replaced with...
2240 (TWorker): This.
2241 Remove `memory'.
2242 (TRaster): New structure.
2243
2244 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
2245 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
2246 gray_render_span, gray_raster_render): Updated.
2247 (gray_raster_reset): Use the render pool. This saves about 6KB of
2248 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00002249
David Turner8a6c44e2007-01-04 17:03:11 +00002250 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
2251 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002252 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
2253 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
2254 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00002255
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002256 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
2257 Remove a typo that results in no hinting and a memory leak with some
2258 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00002259
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002260 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00002261 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002262 CFF_Faces in it. We need to close all faces before destroying the
2263 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00002264
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000022652007-01-02 Werner Lemberg <wl@gnu.org>
2266
2267 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
2268 Remove compiler warning.
2269
David Turner9207e002007-01-02 16:58:13 +000022702007-01-02 David Turner <david@freetype.org>
2271
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002272 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00002273
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000022742006-12-31 Masatake YAMATO <jet@gyve.org>
2275
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002276 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
2277 function.
2278 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00002279 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00002280 `gxv_kern_subtable_fmt0_pairs_validate'.
2281
David Turner115b4422006-12-22 11:37:05 +000022822006-12-22 David Turner <david@freetype.org>
2283
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002284 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
2285 warnings.
David Turner115b4422006-12-22 11:37:05 +00002286
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002287 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
2288 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00002289
Werner Lemberg4755bf72006-12-16 08:58:44 +000022902006-12-16 Anders Kaseorg <anders@kaseorg.com>
2291
2292 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
2293 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
2294
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000022952006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2296
Werner Lemberg9b774e22007-01-16 06:11:27 +00002297 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00002298 sync with the modification by Jens Claudius on 2006-08-22; cf.
2299 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 +00002300
23012006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2302
2303 * src/base/ftmac.c: Specialized for Mac OS X only.
2304 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
2305 * builds/unix/configure.raw: Ditto. When explicit switches for
2306 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
2307 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
2308
23092006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2310
2311 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
2312 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
2313 instead of src/base/ftmac.c
2314 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
2315 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
2316 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
2317 that cannot be built at present.
2318
23192006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2320
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00002321 * src/base/ftobjs.c: Improvement of resource fork handler for
2322 POSIX, cf.
2323 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00002324 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
2325 format or .dfont, to simulate the face index number counted by ftmac.c.
2326 (IsMacResource): Return the number of scalable faces correctly.
2327
Werner Lembergec5b4502006-12-10 07:51:38 +000023282006-12-10 Werner Lemberg <wl@gnu.org>
2329
2330 * builds/toplevel.mk (version): Protect against `distclean' target.
2331
Werner Lembergb26b3142006-12-09 20:01:43 +000023322006-12-09 Werner Lemberg <wl@gnu.org>
2333
2334 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
2335 or `type'.
2336
2337 * builds/freetype.mk (version): Extracted from freetype.h, using
2338 GNU make's built-in string functions.
2339 (refdoc): Use $(version) instead of static version number.
2340
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000023412006-12-08 Werner Lemberg <wl@gnu.org>
2342
2343 * builds/toplevel.mk (dist): Extract version number from freetype.h.
2344
Werner Lemberg15c29502006-12-09 07:29:54 +000023452006-12-08 Vladimir Volovich <vvv@vsu.ru>
2346
2347 * src/tools/apinames (State): Remove final comma in structure -- xlc
2348 v5 under AIX 4.3 doesn't like this.
2349
David Turnerdbf3b432006-12-07 21:18:09 +000023502006-12-07 David Turner <david@freetype.org>
2351
Werner Lemberg256a3512006-12-08 06:49:33 +00002352 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
2353 to the spacing of auto-fitted glyphs. This only impacts rare
2354 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00002355
Werner Lemberg11171312006-12-03 09:43:40 +000023562006-12-03 Werner Lemberg <wl@gnu.org>
2357
2358 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
2359
Werner Lemberg960ba592006-12-01 08:20:47 +000023602006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00002361
Werner Lemberg960ba592006-12-01 08:20:47 +00002362 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
2363 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
2364 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00002365
David Turner80658e52006-11-28 08:09:20 +00002366
Werner Lemberg960ba592006-12-01 08:20:47 +00002367 * include/freetype/ftxf86.h: Fix and extend comment so that it
2368 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00002369
Werner Lemberg960ba592006-12-01 08:20:47 +00002370 * include/freetype/ftchapters.h: Add `font_format' section.
2371
2372
2373 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
2374 to TOC in index page.
2375
23762006-11-28 David Turner <david@freetype.org>
2377
2378 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
2379 trying to render into a zero-width/height bitmap, not an error code.
2380
2381 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
2382
2383 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
2384 ones instead.
2385
2386 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
2387 variable.
David Turner80658e52006-11-28 08:09:20 +00002388
Werner Lemberg8636c292006-11-26 22:28:13 +000023892006-11-26 Pierre Hanser <hanser@club-internet.fr>
2390
2391 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
2392
Werner Lemberg960ba592006-12-01 08:20:47 +000023932006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00002394
Werner Lemberg960ba592006-12-01 08:20:47 +00002395 * src/autofit/afhints.c (af_glyph_hints_dump_points,
2396 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
2397 Add stubs to link the `ftgrid' test program when debugging is
2398 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00002399
Werner Lemberg960ba592006-12-01 08:20:47 +000024002006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00002401
2402 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00002403 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
2404
2405 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
2406 Emit more sensible information.
2407
2408 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
2409
2410 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
2411 rounding of blue values.
2412 (af_latin_hints_compute_segments): Hint segment heights.
2413 (af_latin_hints_link_segments): Reduce `len_score' value.
2414 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
2415 value and use `height' member for comparisons.
2416 (af_latin_hint_edges): Extend logging message.
2417 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00002418
Werner Lemberg91959bf2006-11-22 10:36:55 +000024192006-11-22 Werner Lemberg <wl@gnu.org>
2420
2421 Fix Savannah bug #15553.
2422
2423 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
2424 program after a change from mono to grayscaling (and vice versa).
2425 Use correct constant for comparison to get `exec->grayscale'.
2426
Werner Lemberg913a3652006-11-19 09:19:17 +000024272006-11-18 Werner Lemberg <wl@gnu.org>
2428
2429 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00002430 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00002431 This patch fixes Savannah bug #18301.
2432
2433 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
2434 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
2435 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
2436 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
2437 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
2438 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
2439 (FNT_Load_Glyph): Check validity of `glyph_index'.
2440
David Turner7bab6ae2006-11-13 11:25:06 +000024412006-11-13 David Turner <david@freetype.org>
2442
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002443 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
2444 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00002445
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002446 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
2447 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
2448 when building the library to change the default LCD filter to be
2449 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00002450
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002451 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00002452
David Turner8765c712006-11-10 16:49:42 +000024532006-11-10 David Turner <david@freetype.org>
2454
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002455 * src/smooth/ftsmooth.c: API change for the LCD
2456 filter. The FT_LcdFilter value is an enumeration describing which
2457 filter to apply, with new values FT_LCD_FILTER_LIGHT and
2458 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
2459 algorithm which produces strong color fringes for everything
2460 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00002461
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002462 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
2463 second parameter to an enum type.
2464
2465 * src/base/ftlcdfil.c (USE_LEGACY): Define.
2466 (_ft_lcd_filter): Rename to...
2467 (_ft_lcd_filter_fir): This.
2468 Update parameters.
2469 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
2470 (FT_Library_Set_LcdFilter): Update parameters.
2471 Handle new filter modes.
2472
2473 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
2474 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
2475 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
2476 callback and update other fields.
2477
2478 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
2479 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
2480 Other minor improvements.
2481
2482 * src/autofit/aflatin.c: Various tiny improvements that drastically
2483 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
2484 (af_latin_hints_compute_edges): Fix typo.
2485 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00002486
David Turner4e9cc3c2006-11-09 16:31:52 +000024872006-11-09 David Turner <david@freetype.org>
2488
Werner Lemberg49c77a82006-11-09 21:51:57 +00002489 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
2490 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00002491
Werner Lemberg5e430892006-11-07 09:35:03 +000024922006-11-07 Zhe Su <james.su@gmail.com>
2493
2494 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
2495 also.
2496
Werner Lemberg111b5ae2006-11-03 09:40:12 +000024972006-11-03 Werner Lemberg <wl@gnu.org>
2498
2499 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
2500
David Turner40604742006-11-02 16:37:35 +000025012006-11-02 David Turner <david@freetype.org>
2502
Werner Lemberg111b5ae2006-11-03 09:40:12 +00002503 Add a few tweaks to better handle serif fonts.
2504 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00002505
Werner Lemberg111b5ae2006-11-03 09:40:12 +00002506 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
2507 segments that are less than 1.5 pixels high. This gets rid of
2508 *many* corner cases with serifs.
2509 (af_latin_align_linked_edge): Add logging message.
2510 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
2511 Add logging messages.
2512 Handle AF_EDGE_FLAG flag specially.
2513
2514 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
2515 _af_debug_disable_blue_hints, and _af_debug_hints variables.
2516
2517 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
2518 Update external declarations.
2519 (af_corner_orientation, af_corner_is_flat): Replaced by...
2520
2521 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
2522 ft_corner_is_flat): These declarations.
2523
2524 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
2525 Comment out. Replaced by...
2526
2527 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
2528 These functions. Update all callers.
2529 (FT_Add64) [!FT_LONG64]: Simplify.
2530
2531 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
2532 (af_direction_compute): Add a missing FT_ABS call. This bug caused
2533 production of garbage by missing lots of segments.
2534
2535 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
2536
2537 * src/autofit/afloader.c (af_loader_init, af_loader_done)
2538 [AF_DEBUG]: Set _af_debug_hints.
2539
2540
2541 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
2542 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
2543 and ft_corner_orientation.
2544
2545
2546 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00002547
Werner Lemberge88c5262006-10-24 05:46:26 +000025482006-10-24 Werner Lemberg <wl@gnu.org>
2549
2550 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
2551
2552 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
2553 as argument.
2554
David Turnera1861392006-10-23 16:00:59 +000025552006-10-23 Zhe Su <zsu@novell.com>
2556
Werner Lemberg715e96e2006-10-24 05:28:45 +00002557 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
2558 better deal with broken Asian fonts with strange glyphs, having
2559 self-intersections and other peculiarities. The used algorithm is
2560 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00002561
David Turnere140f142006-10-23 08:56:57 +000025622006-10-23 David Turner <david@freetype.org>
2563
Werner Lemberg715e96e2006-10-24 05:28:45 +00002564 Speed up the CFF font loader. With some large CFF fonts,
2565 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00002566
Werner Lemberg715e96e2006-10-24 05:28:45 +00002567 * src/cff/cffload.c (cff_get_offset): Removed.
2568 (cff_new_index): Inline functionality of `cff_get_offset'.
2569 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
2570 (cff_charset_done): Call `cff_charset_free_cids'.
2571 (cff_charset_load): Call `cff_charset_compute_cids'.
2572 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
2573
2574 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
2575 with FT_NEXT_XXX.
2576
2577
2578 Speed up the Postscript hinter, with more than 100% speed increase
2579 on my machine.
2580
2581 * src/pshinter/pshalgo.c (psh_corner_is_flat,
2582 psh_corner_orientation): New functions.
2583 (psh_glyph_compute_inflections): Merge loops for efficiency.
2584 Use `psh_corner_orientation'.
2585 (psh_glyph_init): Use `psh_corner_is_flat'.
2586 (psh_hint_table_find_strong_point): Renamed to...
2587 (psh_hint_table_find_strong_points): This.
2588 Rewrite, adding argument to handle all points at once.
2589 Update all callers.
2590 (PSH_MAX_STRONG_INTERNAL): New macro.
2591 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00002592
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000025932006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2594
2595 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00002596 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00002597
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000025982006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2599
2600 * docs/INSTALL.CROSS: New document file for cross-building.
2601
2602 * builds/unix/configure.raw: Preliminary cross-building support.
2603 Find native C compiler and pass it by CC_BUILD, and
2604 find suffix for native executable and pass it by EXEEXT_BUILD.
2605 Also suffix for target executable is passed by EXEEXT.
2606
Werner Lembergb9e6d692006-10-15 08:58:40 +00002607 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
2608 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00002609 CC_BUILD and EXEEXT_BUILD.
2610
Werner Lembergb9e6d692006-10-15 08:58:40 +00002611 * builds/exports.mk (APINAMES_EXE): Change the extension for
2612 apinames from the suffix for target (E) to that for building host
2613 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00002614
Werner Lemberg82a07e92006-10-12 06:20:44 +000026152006-10-12 Werner Lemberg <wl@gnu.org>
2616
2617 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
2618 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
2619 which reference those files.
2620
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000026212006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2622
Werner Lembergb9e6d692006-10-15 08:58:40 +00002623 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
2624 embedded in freetype2.pc and freetype-config. Use it to record
2625 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00002626
2627 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
2628
2629 * builds/unix/freetype-config.in: Ditto.
2630
Werner Lemberg28e17d92006-10-11 17:27:47 +000026312006-10-11 Werner Lemberg <wl@gnu.org>
2632
2633 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
2634 development.
2635
Jens Claudius336d2292006-10-03 08:53:37 +000026362006-10-03 Jens Claudius <jens.claudius@yahoo.com>
2637
2638 * include/freetype/config/ftstdlib.h: Cast away volatileness from
2639 argument to ft_setjmp.
2640
2641 * include/freetype/internal/ftvalid.h: Add comment that
2642 ft_validator_run must not be used.
2643
Werner Lemberg2863cfa2006-10-01 17:04:00 +000026442006-10-01 Werner Lemberg <wl@gnu.org>
2645
2646 * src/base/ftbase.c: Undo change from 2006-09-30.
2647
2648 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
2649
26502006-09-30 David Turner <david@freetype.org>
2651
Werner Lemberg046bf8b2006-10-03 08:43:42 +00002652 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
2653 s/unpatented_hinting/ignore_unpatented_hinter/.
2654 Update all callers.
2655
2656 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
2657 auto-hinting shall be used or not.
2658
2659 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00002660
Werner Lemberg2863cfa2006-10-01 17:04:00 +000026612006-09-30 Werner Lemberg <wl@gnu.org>
2662
Werner Lemberg1e4402e2006-09-29 22:10:36 +00002663 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
2664 in use).
2665
2666 * src/base/ftbase.c: Include `ftlcdfil.c'.
2667
Werner Lemberg9b15ea32006-09-29 18:22:11 +000026682006-09-29 Werner Lemberg <wl@gnu.org>
2669
2670 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
2671 overlapping segments. Bug reported by Stefan Koch.
2672
David Turnerad830712006-09-27 16:20:59 +000026732006-09-28 David Turner <david@freetype.org>
2674
Werner Lemberg2c002e12006-09-29 21:31:53 +00002675 Fix a bug in the automatic unpatented hinting support which prevents
2676 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00002677
Werner Lemberg2c002e12006-09-29 21:31:53 +00002678 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
2679 s/force_autohint/unpatented_hinting/. Update all callers.
2680
2681 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
2682
2683 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00002684
David Turner8a317cf2006-09-27 07:52:48 +000026852006-09-27 David Turner <david@freetype.org>
2686
Werner Lemberg2c002e12006-09-29 21:31:53 +00002687 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00002688
David Turner8a317cf2006-09-27 07:52:48 +00002689
David Turnere140f142006-10-23 08:56:57 +00002690 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00002691 In a default build, the function `FT_Library_SetLcdFilter' returns
2692 `FT_Err_Unimplemented_Feature'; you need to #define
2693 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
2694 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00002695
Werner Lemberg2c002e12006-09-29 21:31:53 +00002696 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00002697
Werner Lemberg2c002e12006-09-29 21:31:53 +00002698 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
2699 typedef.
2700 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
2701 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00002702
Werner Lemberg2c002e12006-09-29 21:31:53 +00002703 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
2704 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00002705
Werner Lemberg2c002e12006-09-29 21:31:53 +00002706 Handle subpixel rendering.
2707 Simplify function.
2708 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
2709 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
2710
2711 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
2712 pointing to <freetype/ftlcdfil.h>.
2713
2714 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
2715 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
2716
2717 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00002718
Werner Lemberge20df4a2006-09-27 06:29:21 +000027192006-09-26 David Bustin
2720
2721 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
2722 correctly. Reported as Savannah bug #17843.
2723
David Turner6f8c6222006-09-26 15:42:44 +000027242006-09-26 David Turner <david@freetype.org>
2725
Werner Lemberg110246c2006-09-26 21:55:44 +00002726 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
2727 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
2728 horizontal and vertical hinting for the purpose of debugging the
2729 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00002730
Werner Lemberg110246c2006-09-26 21:55:44 +00002731 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
2732 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00002733
Werner Lemberg110246c2006-09-26 21:55:44 +00002734 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
2735
2736 * include/freetype/config/ftoption.h, devel/ftoption.h
2737 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
2738 we want to compile LCD-optimized rendering code (à la ClearType) or
2739 not. The macro *must* be disabled in default builds of the library
2740 for patent reasons.
2741
2742 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
2743 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
2744 isn't defined at compile time. This only changes the content of the
2745 rendered glyph to match the one of normal gray-level rendering,
2746 hence clients should not need to be modified.
2747
2748 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00002749
Werner Lemberg745ff2c2006-09-19 05:48:02 +000027502006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
2751
2752 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
2753 LWFN fails and both are available.
2754
David Turnerf3050052006-09-11 12:00:32 +000027552006-09-11 David Turner <david@freetype.org>
2756
Werner Lembergf9644552006-09-12 13:48:10 +00002757 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
2758 report their English names through an Apple Roman
2759 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00002760
Werner Lembergf9644552006-09-12 13:48:10 +00002761 If the font uses another name entry with language_id == English, it
2762 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00002763
Werner Lembergf9644552006-09-12 13:48:10 +00002764 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
2765 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00002766
Werner Lemberg36d2eab2006-09-05 19:24:34 +000027672006-09-05 Werner Lemberg <wl@gnu.org>
2768
2769 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00002770 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00002771 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
2772 `HAN NOM B.ttf').
2773
2774 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
2775
David Turner772e55d2006-09-05 09:45:15 +000027762006-09-05 David Turner <david@freetype.org>
2777
Werner Lemberg36d2eab2006-09-05 19:24:34 +00002778 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00002779
Werner Lemberg36d2eab2006-09-05 19:24:34 +00002780 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
2781 (TRaster): Remove `count_ex' and `count_ey'.
2782 (gray_find_cell): Remove 2nd and 3rd argument.
2783 (gray_alloc_cell): Merged with `gray_find_cell'.
2784 (gray_record_cell): Simplify.
2785 (gray_set_cell): Rewrite.
2786 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
2787 (gray_render_span): Don't use FT_MEM_SET for small values.
2788 (gray_dump_cells) [DEBUG_GRAYS]: New function.
2789 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
2790 bitmap scanline.
2791 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00002792
David Turneraa557a92006-09-04 16:42:44 +000027932006-09-04 David Turner <david@freetype.org>
2794
Werner Lembergd1fc7d42006-09-05 07:55:42 +00002795 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
2796 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00002797
Werner Lemberg2d8629b2006-09-03 06:18:45 +000027982006-09-03 Werner Lemberg <wl@gnu.org>
2799
2800 * devel/ftoption.h: Synchronize with
2801 include/freetype/config/ftoption.h.
2802
2803 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
2804 variable declaration.
2805 (gray_convert_glyph): Fix compiler warnings.
2806
David Turner6d79f212006-09-01 14:09:35 +000028072006-09-01 David Turner <david@freetype.org>
2808
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002809 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
2810 to recognize a few fonts that require the automatic unpatented
2811 loader.
David Turnerbd502952006-09-01 19:05:24 +00002812
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002813 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
2814 rasterizer. The speed improvement is between 15% and 25%, depending
2815 on the font data.
2816
2817 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
2818 (TCell): Redefine.
2819 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
2820 (gray_init_cells): Updated.
2821 (gray_find_cell, gray_alloc_cell): New functions.
2822 (gray_record_cell): Rewritten to use `gray_find_cell' and
2823 `gray_alloc_cell'.
2824 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
2825 QSORT_THRESHOLD):
2826 Removed.
2827 (gray_shell_sort, gray_quick_sort, gray_check_sort,
2828 gray_dump_cells): Removed.
2829 (gray_sweep): Rewritten.
2830 (gray_convert_glyph): Rewrite code which used one of the sorting
2831 functions.
2832 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00002833
Werner Lembergd898aed2006-08-29 09:50:34 +000028342006-08-29 Dr. Werner Fink <werner@suse.de>
2835
2836 * configure: Make it possible to handle configure options which
2837 have strings containing spaces.
2838
28392006-08-27 David Turner <david@freetype.org>
2840
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002841 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
2842 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
2843 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
2844
2845 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
2846 src/truetype/truetype.c, src/truetype/ttdriver.c,
2847 src/truetype/ttgload.c, src/truetype/ttgload.h,
2848 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
2849 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
2850 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
2851
2852 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
2853 member `force_autohint'.
2854
2855 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
2856
2857 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
2858 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00002859
Jens Claudiusa787f452006-08-27 11:26:18 +000028602006-08-27 Jens Claudius <jens.claudius@yahoo.com>
2861
2862 Fix miscellaneous compiler warnings.
2863
Werner Lemberg32e05a62008-05-04 16:53:22 +00002864 * include/freetype/internal/ftobjs.h: Close comment with `*/' to
2865 avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00002866
Werner Lemberg32e05a62008-05-04 16:53:22 +00002867 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002868 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
2869 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00002870
Werner Lemberg32e05a62008-05-04 16:53:22 +00002871 * src/base/ftobjs.c (t_validator_error): Cast away
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002872 volatileness of argument to ft_longjmp. Spotted by Werner
2873 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00002874
Werner Lemberg32e05a62008-05-04 16:53:22 +00002875 * src/bdf/bdflib.c (bdf_load_font): Initialize local
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002876 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00002877
Werner Lemberg32e05a62008-05-04 16:53:22 +00002878 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
2879 `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00002880
Werner Lembergc4c35b72006-08-27 08:03:46 +000028812006-08-27 Werner Lemberg <wl@gnu.org>
2882
2883 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
2884 Reported by Jens.
2885
Jens Claudius088e44e2006-08-22 14:24:30 +000028862006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00002887
Jens Claudius088e44e2006-08-22 14:24:30 +00002888 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00002889 about addresses of volatile objects passed as function arguments as
2890 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00002891
Werner Lemberg32e05a62008-05-04 16:53:22 +00002892 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
2893 pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002894
Werner Lemberg32e05a62008-05-04 16:53:22 +00002895 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
2896 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002897
Werner Lemberg32e05a62008-05-04 16:53:22 +00002898 * src/otvalid/otvmod.c (otv_load_table): Make function argument
2899 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002900
Jens Claudius2652bd52006-08-18 17:20:37 +000029012006-08-18 Jens Claudius <jens.claudius@yahoo.com>
2902
Werner Lemberg32e05a62008-05-04 16:53:22 +00002903 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
2904 as volatile since it must keep its value across a call to ft_setjmp.
Jens Claudius2652bd52006-08-18 17:20:37 +00002905 (gxv_validate): Same for local variables `memory' and `valid'.
2906 (classic_kern_validate): Same for local variables `memory',
2907 `ckern', and `valid'.
2908
Werner Lemberg32e05a62008-05-04 16:53:22 +00002909 * src/otvalid/otvmod.c (otv_validate): Same for function parameter
2910 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
2911 and 'valid'.
Jens Claudius2652bd52006-08-18 17:20:37 +00002912
Werner Lemberg32e05a62008-05-04 16:53:22 +00002913 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
2914 `cmap'.
Jens Claudius2652bd52006-08-18 17:20:37 +00002915
David Turner9fbfc6a2006-08-16 09:11:31 +000029162006-08-16 David Turner <david@freetype.org>
2917
Werner Lemberg12342992006-08-19 11:18:09 +00002918 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
2919 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00002920
Werner Lemberg12342992006-08-19 11:18:09 +00002921 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
2922 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00002923
David Turner33f5f242006-08-16 16:50:55 +00002924
Werner Lemberg12342992006-08-19 11:18:09 +00002925 Improvements to native TrueType hinting. This is a first try,
2926 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
2927
2928 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
2929 `extra_points2'.
2930
2931 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
2932 `orus'.
2933
2934 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
2935 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
2936 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
2937 handle `extra_points2'.
2938
2939 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2940 Remove compiler warning.
2941 (cur_to_arg): Remove macro.
2942 (TT_Hint_Glyph): Updated.
2943 (TT_Process_Simple_Glyph): Handle `orus'.
2944
2945 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2946 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2947 (LOC_Ins_IUP): Renamed to...
2948 (IUP_WorkerRec): This.
2949 Add `orus' member.
2950 (Shift): Renamed to...
2951 (_iup_worker_shift): This.
2952 Updated.
2953 (Interp): Renamed to...
2954 (_iup_worker_interpolate): This.
2955 Updated to handle `orus'.
2956 (Ins_IUP): Updated.
2957
2958 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2959 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00002960
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000029612006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2962
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002963 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00002964 build ftvalid in ft2demos. This has been inadvertedly changed
2965 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002966
29672006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2968
Werner Lemberg12342992006-08-19 11:18:09 +00002969 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2970 Jens:
2971 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002972
Werner Lemberg32e05a62008-05-04 16:53:22 +00002973 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
2974 It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002975
Werner Lemberg32e05a62008-05-04 16:53:22 +00002976 * src/gxvalid/gxvmod.c: Ditto.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002977
Jens Claudius9950adc2006-08-13 12:14:36 +000029782006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2979
Werner Lemberg32e05a62008-05-04 16:53:22 +00002980 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
Werner Lemberg12342992006-08-19 11:18:09 +00002981 T1_TOKEN_TYPE_KEY.
2982 (T1_FieldRec): Add `dict'.
2983 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2984 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2985 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002986
Werner Lemberg32e05a62008-05-04 16:53:22 +00002987 * src/cid/cidload.c: (cid_field_records): Adjust invocations of
2988 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002989
Werner Lemberg32e05a62008-05-04 16:53:22 +00002990 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002991
Werner Lemberg32e05a62008-05-04 16:53:22 +00002992 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002993 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2994 not T1_TOKEN_TYPE_ANY.
2995 (ps_parser_load_field): Make sure a token that should be a string or
2996 name is really a string or name.
2997 Avoid memory leak if a keyword has been already encountered and its
2998 value is overwritten.
Werner Lemberg32e05a62008-05-04 16:53:22 +00002999 * src/type1/t1load.c: (t1_keywords): Adjust invocations of
Werner Lemberg12342992006-08-19 11:18:09 +00003000 T1_FIELD_XXX.
3001 (parse_dict): Ignore keywords that occur in the wrong dictionary
3002 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00003003
Werner Lemberg32e05a62008-05-04 16:53:22 +00003004 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00003005
Werner Lemberg32e05a62008-05-04 16:53:22 +00003006 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
3007 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00003008
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000030092006-07-18 Jens Claudius <jens.claudius@yahoo.com>
3010
3011 Move creation of field `buildchar' of T1_DecoderRec out of
3012 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
3013 of it.
3014
3015 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
3016 and `T1_Compute_Max_Advance'.
3017
Werner Lemberg32e05a62008-05-04 16:53:22 +00003018 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
3019 `face', add `len_buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003020
Werner Lemberg32e05a62008-05-04 16:53:22 +00003021 * include/freetype/internal/t1types.h (T1_FaceRec): Add field
3022 `buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003023
Werner Lemberg32e05a62008-05-04 16:53:22 +00003024 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
3025 for T1_Decoder.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003026 (cid_slot_load_glyph): Do not ignore failure when initializing the
3027 T1_Decoder.
3028
Werner Lemberg32e05a62008-05-04 16:53:22 +00003029 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003030 (t1_decoder_init): Remove initialization of fields `buildchar' and
3031 `len_buildchar'.
3032 (t1_decoder_done): Remove deallocation of field `buildchar'.
3033
3034 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
3035 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
3036 T1_Decoder.
3037 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
3038 `len_buildchar'; make sure to call finisher for T1_Decoder even in
3039 case of error.
3040
Werner Lemberg32e05a62008-05-04 16:53:22 +00003041 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
3042 of T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003043
Werner Lemberg32e05a62008-05-04 16:53:22 +00003044 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
3045 T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003046
Werner Lemberg1a380e02006-07-14 18:28:08 +000030472006-07-14 Jens Claudius <jens.claudius@yahoo.com>
3048
Werner Lemberg32e05a62008-05-04 16:53:22 +00003049 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
3050 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
3051 and IS_PS_BASE85 (from src/psaux/psconv.h).
Werner Lemberg1a380e02006-07-14 18:28:08 +00003052 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
3053 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
3054 (T1_DecoderRec): New fields `buildchar' and `face'.
3055 (IS_PS_TOKEN): New macro.
3056
Werner Lemberg32e05a62008-05-04 16:53:22 +00003057 * include/freetype/internal/t1types.h (T1_FaceRec): New fields
3058 `ndv_idx', `cdv_idx', and `len_buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003059
Werner Lemberg32e05a62008-05-04 16:53:22 +00003060 * include/freetype/t1tables.h (PS_BlendRec): New fields
Werner Lemberg1a380e02006-07-14 18:28:08 +00003061 `default_design_vector' and `num_default_design_vector'.
3062
Werner Lemberg32e05a62008-05-04 16:53:22 +00003063 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
3064 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
3065 IS_PS_BASE85 to include/freetype/internal/psaux.h.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003066
Werner Lemberg32e05a62008-05-04 16:53:22 +00003067 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
3068 argument to be NULL if we want only to count the number of tokens.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003069 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
3070 want to skip the array.
3071 (ps_tofixedarray): Allow `values' argument to be NULL if we just
3072 want to skip the array.
3073
Werner Lemberg32e05a62008-05-04 16:53:22 +00003074 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
3075 for (partially commented out) othersubrs 19-25, 27, and 28.
3076 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003077 (t1_decoder_done): Release new field `buildchar'.
3078
Werner Lemberg32e05a62008-05-04 16:53:22 +00003079 * src/type1/t1load.c (parse_buildchar, parse_private): New
Werner Lemberg1a380e02006-07-14 18:28:08 +00003080 functions.
3081 (t1_keywords): Register them.
3082 (t1_allocate_blend): Updated.
3083 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
3084 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
3085 (parse_dict): Remove `keyword_flags' argument.
3086 Use new macro IS_PS_TOKEN.
3087 Changed function so that later PostScript definitions override
3088 earlier ones.
3089 (t1_init_loader): Initialize new field `keywords_encountered'.
3090 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
3091 `len_buildchar'.
3092 Remove `keywords_flags'.
3093
Werner Lemberg32e05a62008-05-04 16:53:22 +00003094 * src/type1/t1load.h (T1_LoaderRect): New field
Werner Lemberg1a380e02006-07-14 18:28:08 +00003095 `keywords_encountered'.
3096 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
3097
Werner Lemberg32e05a62008-05-04 16:53:22 +00003098 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
3099 entries for parsing /NDV, /CDV, and /DesignVector.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003100
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000031012006-07-07 Werner Lemberg <wl@gnu.org>
3102
3103 Add many checks to protect against malformed PCF files.
3104
3105 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
3106 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
3107
3108 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
3109 data and check that tables don't overlap (using a simple
3110 bubblesort).
3111 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
3112 New macros which give the size of data structures in the data
3113 stream.
3114 (pcf_get_properties): Use rough estimates to get array size limits.
3115 Assign `face->nprops' and `face->properties' earlier so that a call
3116 to PCF_Face_Done can do the clean-up in case of error.
3117 Protect against invalid string offsets.
3118 (pcf_get_metrics): Clean up code.
3119 Adjust tracing message levels.
3120 Use rough estimate to get array size limit.
3121 (pcf_get_bitmaps): Clean up code.
3122 Adjust tracing message levels.
3123 Use rough estimates to get offset limits.
3124 (pcf_get_encodings): Adjust tracing message level.
3125 (pcf_get_accel): Clean up code.
3126
Werner Lemberg8eb05252006-06-27 06:20:01 +000031272006-06-26 Werner Lemberg <wl@gnu.org>
3128
3129 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
3130 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
3131
Werner Lemberg24703f82006-06-26 19:12:51 +000031322006-06-26 Jens Claudius <jens.claudius@yahoo.com>
3133
3134 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
3135 (t1_decoder_parse_charstrings): Operator with
3136 opcode 15 pops its two arguments.
3137 Handle the case where the pops of an othersubr may be part of a
3138 subroutine.
3139 Handle unknown othersubrs gracefully: count their operands and let
3140 the following pop operators push the operands as the results onto
3141 the Type1 stack.
3142 Improve handling of setcurrentpoint opcode.
3143
Werner Lembergc011f4c2006-06-26 09:40:00 +000031442006-06-25 Jens Claudius <jens.claudius@yahoo.com>
3145
3146 The Type 1 parser now skips over top-level procedures as required
3147 for a `Simplified Parser'. This makes the parser more robust as it
3148 doesn't poke around in PostScript code. Additionally, it makes the
3149 FontDirectory hackery in src/type1/t1load.c unnecessary.
3150
3151 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
3152 (skip_literal_string): Add FT_Error as return value.
3153 Handle escapes better.
3154 (skip_string): Add FT_Error as return value.
3155 Don't set `parser->error' but return error code directly.
3156 (skip_procedure): New function.
3157 (ps_parser_skip_PS_token): Handle procedures.
3158 Update code.
3159 (ps_parser_to_token): Update code.
3160 (ps_parser_load_field_table): Handle bbox entries also.
3161
3162 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
3163 Add commented-out code for synthetic fonts.
3164
Werner Lemberga2da05c2006-06-25 06:27:27 +000031652006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
3166
3167 Fix two hinting bugs as reported in
3168 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
3169
3170 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
3171 `first_point' member.
3172
3173 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
3174 `first_point'.
3175 (TT_Process_Composite_Glyph): Always untouch points.
3176
3177 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
3178 `first_point' and `last_point' in case of composite glyphs.
3179 (Ins_IUP): Fix computation of `end_point'.
3180
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000031812006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3182
Werner Lembergef3d2c22006-06-25 06:07:14 +00003183 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
3184 Mac. The original patch was written by David Sachitano and Lawrence
3185 Coopet, and modified by Sean McBride for MPW compatibility. Only
3186 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00003187
Werner Lembergef3d2c22006-06-25 06:07:14 +00003188 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
3189 Mac OS X platforms.
3190 (OS_INLINE): Undefine before definition.
3191 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
3192 FontAssociation table in FOND resource.
3193 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
3194 and fontSize at each entry of FontAssociation table in FOND
3195 resource.
3196 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
3197 ffStylOff of FamilyRecord header of FOND resource, the header,
3198 fontSize, fontID at each entry of FontAssociation table, and
3199 StyleMapping table.
3200 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00003201
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000032022006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3203
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00003204 Public API of TrueTypeGX, OpenType, and classic kern table validator
3205 should return `FT_Err_Unimplemented_Feature' if validation service
3206 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00003207 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00003208 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
3209
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00003210 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
3211 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
3212 unavailable.
3213 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
3214 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00003215
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00003216 * src/base/ftotval.c (FT_OpenType_Validate): Return
3217 FT_Err_Unimplemented_Feature if OpenType validation service is
3218 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00003219
Werner Lembergb10e45a2006-06-08 07:32:56 +000032202006-06-08 Werner Lemberg <wl@gnu.org>
3221
3222 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
3223 errors.
3224
David Turner5f1f7502006-06-07 05:11:50 +000032252006-06-07 David Turner <david@freetype.org>
3226
Werner Lemberg7d48cb02006-06-08 06:00:08 +00003227 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
3228 (T1_Read_Metrics): Fix memory leak which happened when the metrics
3229 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00003230
David Turner457b4a82006-06-06 08:14:14 +000032312006-06-06 David Turner <david@freetype.org>
3232
Werner Lemberg4836f952006-06-06 12:54:08 +00003233 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00003234
Werner Lemberg4836f952006-06-06 12:54:08 +00003235 We change `ps_unicodes_init' so that it also takes a
3236 `free_glyph_name' callback to release the glyph names returned by
3237 `get_glyph_name'
3238
3239 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
3240 Renamed to ...
3241 (PS_GetGlyphNameFunc): This.
3242 (PS_FreeGlyphNameFunc): New typedef.
3243 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
3244
3245 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
3246 argument.
3247 (cff_sid_free_glyph_name): New function.
3248 (cff_cmap_unicode_init): Updated.
3249
3250 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
3251
3252 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
3253 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00003254
3255
David Turner09717352006-06-04 14:33:08 +000032562006-06-04 David Turner <david@freetype.org>
3257
Werner Lembergd724f202006-06-04 15:17:41 +00003258 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
3259 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00003260 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00003261
Werner Lembergd724f202006-06-04 15:17:41 +00003262 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
3263 of `face->num_glyphs' which missed the last glyph, due to
3264 the offset-by-1 computation, since the PFR format doesn't
3265 guarantee that glyph index 0 corresponds to the `missing
3266 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00003267
Werner Lemberg33779662006-05-26 06:30:05 +000032682006-05-25 Werner Lemberg <wl@gnu.org>
3269
3270 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
3271 `-no-undefined'. Reported by Christian Biesinger.
3272
Werner Lemberg24773d62006-05-20 08:53:13 +000032732006-05-19 Brian Weed <bw@imaginengine.com>
3274
3275 * builds/win32/visualc/freetype.dsp: Release libraries no longer
3276 have debug information, and debug libraries use `C7 compatible'
3277 debug info.
3278
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000032792006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3280
Werner Lemberga6523a62006-05-20 08:47:01 +00003281 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00003282 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00003283
Werner Lemberga6523a62006-05-20 08:47:01 +00003284 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
3285 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00003286
3287 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00003288 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00003289
32902006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3291
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00003292 * build/unix/configure.raw: Add a fallback to disable Carbon
3293 dependency, if configured with no options on Mac OS X.
3294
32952006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3296
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00003297 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00003298 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00003299 the second part of Savannah bug #16590.
3300
Werner Lemberg545c4e52006-05-17 22:55:04 +000033012006-05-18 Werner Lemberg <wl@gnu.org>
3302
3303 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
3304 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
3305
David Turnerdc3ff312006-05-17 12:59:35 +000033062006-05-17 David Turner <david@freetype.org>
3307
Werner Lemberg545c4e52006-05-17 22:55:04 +00003308 This is a major patch used to drastically improve the performance of
3309 loading glyphs. This both speeds up loading the glyph vectors
3310 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00003311
Werner Lemberg545c4e52006-05-17 22:55:04 +00003312 We now use inline assembler code with GCC to implement `FT_MulFix',
3313 which is probably the most important function related to the
3314 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00003315
Werner Lemberg545c4e52006-05-17 22:55:04 +00003316 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00003317
3318
Werner Lemberg545c4e52006-05-17 22:55:04 +00003319 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
3320 `cursor' and `limit'.
3321
3322 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
3323 New functions.
3324 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
3325 [TEST]: Remove.
3326
3327 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
3328 code.
3329
3330 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
3331 `FT_ZERO'
3332 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
3333 (af_glyph_hints_reload: Rewrite recognition of weak points.
3334
3335 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
3336 constant values out of the loops.
3337
3338 * src/autofit/aftypes.h: Updated.
3339
3340 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
3341
3342 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
3343 product to get orientation.
3344
3345 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
3346 (FT_Stream_OpenGzip): Use it to handle small files directly in
3347 memory.
3348
3349 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
3350 Improve performance.
3351
3352 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
3353 `limit'.
3354
3355 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
3356 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
3357 exceedingly large values of number of contours. Speed up by
3358 reducing the number of loops.
3359
3360 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
3361
3362
3363 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
3364 used to detect rogue clients from 4 to 16. This is to prevent some
3365 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
3366 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00003367
Werner Lembergde2d90a2006-05-17 08:54:30 +000033682007-05-17 Werner Lemberg <wl@gnu.org>
3369
3370 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00003371 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00003372
33732006-05-16 Werner Lemberg <wl@gnu.org>
3374
3375 * docs/PROBLEMS: Updated icl issues.
3376
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003377----------------------------------------------------------------------------
3378
Werner Lemberg4c933992008-01-18 05:32:55 +00003379Copyright 2006, 2007, 2008 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003380David Turner, Robert Wilhelm, and Werner Lemberg.
3381
3382This file is part of the FreeType project, and may only be used, modified,
3383and distributed under the terms of the FreeType project license,
3384LICENSE.TXT. By continuing to use, modify, or distribute this file you
3385indicate that you have read the license and understand and accept it
3386fully.
3387
3388
3389Local Variables:
3390version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00003391coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003392End: