blob: fe75bb5467bacf2386765c6e650fb85791e415aa [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +000012008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
3 * builds/unix/configure.raw: Check type "ResourceIndex" explicitly
4 and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X
5 10.5 bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
6 ResourceIndex type definition. The macro does not inform the type
7 availability.
8 * src/base/ftmac.c: More parentheses are inserted to clarify the
9 conditionals to disable legacy APIs in "10.5 and later" cases.
10 If HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is
11 defined.
12
Werner Lemberg5563bea2008-06-24 05:44:28 +0000132008-06-24 Werner Lemberg <wl@gnu.org>
14
Werner Lembergce8853a2008-06-24 11:19:03 +000015 * src/truetype/ttinterp. (Ins_SCANTYPE): Don't check rendering mode.
16
17 * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
18 Draw_Sweep): No-dropout mode is value 2, not value 0.
19 (Draw_Sweep): Really skip dropout handling for no-dropout mode.
20
212008-06-24 Werner Lemberg <wl@gnu.org>
22
Werner Lemberg5563bea2008-06-24 05:44:28 +000023 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
24 if it consists of one point only. Based on a patch from Savannah
25 bug #23683 (from John Tytgat).
26
Werner Lemberg745a4f42008-06-22 22:41:24 +0000272008-06-22 Werner Lemberg <wl@gnu.org>
28
29 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
30 with IS_HINTED.
31
32 * docs/CHANGES: Updated.
33
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +0000342008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
35
Werner Lemberg745a4f42008-06-22 22:41:24 +000036 * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
37 but LDFLAGS does not, import it to LDFLAGS. The option is used to
38 specify non-default SDK on Mac OS X (e.g., universal binary SDK for
39 Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
40 recommends to add the option only to CFLAGS, LDFLAGS should include
41 it because libfreetype.la is built with -no-undefined. This fixes a
42 bug reported by Ryan Schmidt in MacPorts,
43 http://trac.macports.org/ticket/15331.
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +000044
Werner Lemberg5df5dbb2008-06-22 13:40:08 +0000452008-06-21 Werner Lemberg <wl@gnu.org>
46
47 Enable access to the various dropout rules of the B&W rasterizer.
48 Pass dropout rules from the TT bytecode interpreter to the
Werner Lemberg959cb8e2008-06-25 20:58:33 +000049 rasterizer.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +000050
51 * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
52 FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
53
54 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
55 Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
56 OpenType specification.
57 Fix mode 4 computation.
58 (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
59
Werner Lemberg959cb8e2008-06-25 20:58:33 +000060 * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
61 mode to FT_OUTLINE_XXX flags.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +000062
63 * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
64
Werner Lembergcd6dcca2008-06-19 06:20:21 +0000652008-06-19 Werner Lemberg <wl@gnu.org>
66
Werner Lemberg5b631d82008-06-19 16:23:43 +000067 * src/cff/cffobjs.c (cff_face_init): Compute final
68 `dict->units_per_em' value before assigning it to
69 `cffface->units_per_EM'. Otherwise, CFFs without subfonts are be
70 scaled incorrectly if the font matrix is non-standard. This fixes
71 Savannah bug #23630.
72
73 * docs/CHANGES: Updated.
74
752008-06-19 Werner Lemberg <wl@gnu.org>
76
Werner Lembergcd6dcca2008-06-19 06:20:21 +000077 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm.
78
Werner Lembergd57a5e92008-06-18 06:16:39 +0000792008-06-18 Werner Lemberg <wl@gnu.org>
80
81 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
82 Reported by Peter Weilbacher <mozilla@weilbacher.org>.
83
84 * docs/CHANGES: Updated.
85
Werner Lembergca947c22008-06-16 05:33:51 +0000862008-06-15 George Williams <gww@silcom.com>
87
88 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
89 `valid->extra2' to 1. This is undocumented in the OpenType 1.5
90 specification.
91
Werner Lembergad83e052008-06-15 11:06:12 +0000922008-06-15 Werner Lemberg <wl@gnu.org>
93
94 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
95 from clobbering. Patch from Savannah bug report #23556.
96
97 * docs/CHANGES: Document it.
98
Werner Lemberg102bb832008-06-10 04:57:19 +0000992008-06-10 Werner Lemberg <wl@gnu.org>
100
Werner Lembergb796adb2008-06-10 17:15:35 +0000101 * autogen.sh: Add option `--install' to libtoolize.
102
1032008-06-10 Werner Lemberg <wl@gnu.org>
104
Werner Lemberg6174e172008-06-10 05:58:25 +0000105 * Version 2.3.6 released.
106 =========================
107
108
109 Tag sources with `VER-2-3-6'.
110
111 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
112 version number to 2.3.6.
113
114 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
115 builds/win32/visualc/freetype.dsp,
116 builds/win32/visualc/freetype.vcproj,
117 builds/win32/visualce/index.html,
118 builds/win32/visualce/freetype.dsp,
119 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
120
121 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
122
123 * builds/unix/configure.raw (version_info): Set to 9:17:3.
124
125
126 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
127 and `scale_y'.
128 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
129
130
131 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
132 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
133
1342008-06-10 Werner Lemberg <wl@gnu.org>
135
Werner Lemberg102bb832008-06-10 04:57:19 +0000136 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
137 `clazz->done_face'.
138
Werner Lemberg630e24d2008-06-09 21:20:18 +00001392008-06-09 VaDiM <s_sliva@rambler.ru>
140
141 Support debugging on WinCE. From Savannah patch #6536; this fixes
142 bug #23497.
143
144 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
145 as a replacement for OutputDebugStringA (which WinCE doesn't have).
146 Update all callers.
147 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
148 environment variables.
149
Werner Lemberga984fda2008-06-09 21:02:13 +00001502008-06-09 Werner Lemberg <wl@gnu.org>
151
152 * README.CVS: Updated.
153
Werner Lemberg26bd7a22008-06-09 21:27:17 +0000154 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
155 for newer versions of autoconf and friends.
Werner Lemberga984fda2008-06-09 21:02:13 +0000156
Werner Lemberg7cb9ec02008-06-09 20:49:29 +00001572008-06-08 Werner Lemberg <wl@gnu.org>
158
159 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
160 `private_len' unsigned.
161
162 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
163 it as such.
164 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
165
166
167 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
168
169
170 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
171 for sane value.
172 Fix typo.
173
174
175 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
176
177
178 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
179 `last_point'.
180
181
182 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
183 `maxTwilightPoints'.
184
Werner Lembergd77e7222008-06-05 22:07:19 +00001852008-06-06 Werner Lemberg <wl@gnu.org>
186
187 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
188 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
189
Werner Lemberg4c3cc762008-06-03 20:53:49 +00001902008-06-03 Werner Lemberg <wl@gnu.org>
191
192 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
193 FT_Pointer. Reported by Ian Britten <britten@caris.com>.
194
Werner Lemberg8e3539b2008-06-02 13:53:54 +00001952008-06-02 Werner Lemberg <wl@gnu.org>
196
197 Emit header info for defined FreeType objects in reference.
198
199 * src/tools/docmaker/content.py (re_header_macro): New regexp.
200 (ContentProcessor::__init__): Initialize new dictionary `headers'.
201 (DocBlock::__init__): Collect macro header definitions.
202
203 * src/tools/docmaker/tohtml.py (header_location_header,
204 header_location_footer): New strings.
205 (HtmlFormatter::__init__): Pass `headers' dictionary.
206 (HtmlFormatter::print_html_field): Don't emit paragraph tags.
207 (HtmlFormatter::print_html_field_list): Emit empty paragraph.
208 (HtmlFormatter::block_enter): Emit header info.
209
2102008-06-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg7493ea12008-06-02 07:24:36 +0000211
212 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
213 FT_INCREMENTAL_H): Added.
214
Werner Lembergc94fa662008-05-27 23:24:07 +00002152008-05-28 Werner Lemberg <wl@gnu.org>
216
Werner Lembergde0d0052008-05-28 21:51:15 +0000217 * src/tools/docmaker/sources.py (SourceBlock::__init__): While
218 looking for markup tags, return immediately as soon a single one is
219 found.
220
2212008-05-28 Werner Lemberg <wl@gnu.org>
222
Werner Lembergc94fa662008-05-27 23:24:07 +0000223 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
224 original, unscaled input values. Confirmed by Greg Hitchcock from
225 Microsoft.
226
Werner Lemberg35a90b72008-05-27 18:16:03 +00002272008-05-27 Werner Lemberg <wl@gnu.org>
228
229 * src/tools/docmaker/tohtml.py (block_footer_start,
230 block_footer_middle): Beautify output.
231
Werner Lembergc9381312008-05-25 12:19:34 +00002322008-05-25 Werner Lemberg <wl@gnu.org>
233
234 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
235 trying to render into a zero-width/height bitmap, not an error code.
236
Werner Lembergffa49652008-05-25 12:43:57 +0000237 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
238 of the graphics state for subglyphs to...
239 (TT_Hint_Glyph): This function.
240 Hinting instructions for a composite glyph apparently refer to the
241 just hinted subglyphs, not the unhinted, unscaled outline. This
242 seems to fix Savannah bugs #20973 and (at least partially) #23310.
243
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +00002442008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
245
246 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
Werner Lemberg355f1b12008-05-22 06:12:23 +0000247 `aface' is returned by FT_New_Face_From_FOND(). The patch was
248 proposed by an anonymous reporter of Savannah bug #23204.
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +0000249
Werner Lemberg16dc51f2008-05-18 17:36:15 +00002502008-05-18 Werner Lemberg <wl@gnu.org>
251
Werner Lemberg5e8a3682008-05-18 21:49:02 +0000252 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
253 correction for pixel boundary. Without this patch, the effect can
254 be cumulative under certain circumstances, making glyphs taller and
255 taller after each call. This fixes Savannah bug #19976.
256
2572008-05-18 Werner Lemberg <wl@gnu.org>
258
Werner Lemberg16dc51f2008-05-18 17:36:15 +0000259 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
260 This fixes Savannah bug #23280.
261
262 * docs/CHANGES: Updated.
263
David Turnera92cec52008-05-18 14:08:57 +00002642008-05-18 David Turner <david@freetype.org>
265
Werner Lemberg16dc51f2008-05-18 17:36:15 +0000266 * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
267 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
268 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
269 declarations non-global.
David Turnera92cec52008-05-18 14:08:57 +0000270
Werner Lemberg16dc51f2008-05-18 17:36:15 +0000271 * src/type1/t1load.c: Add missing comment.
David Turnera92cec52008-05-18 14:08:57 +0000272
Werner Lemberg89d64fa2008-05-17 20:06:13 +00002732008-05-17 Sam Hocevar <samh>
274
275 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
276 glyphs correctly. Patch from Savannah bug #23277.
277
Werner Lemberga2f17cc2008-05-17 10:01:45 +00002782008-05-16 Werner Lemberg <wl@gnu.org>
279
280 * docs/CHANGES: Updated.
281
2822008-05-16 Sergey Tolstov <stolstov@esri.com>
283
284 Improve support for WGL4 encoded fonts.
285
286 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
287 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
288 ft_wgl_extra_glyph_name_offsets): New arrays.
289 (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
290 (ps_unicodes_init): Use them to add additional Unicode mappings.
291
Werner Lemberg504645e2008-05-14 23:26:20 +00002922008-05-15 Werner Lemberg <wl@gnu.org>
293
Werner Lembergbcc750e2008-05-16 04:50:00 +0000294 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
295 <op_closepath>: `closepath' without a path is a no-op, not an error
296 (cf. the PS reference manual).
297
298 Reported by Martin McBride.
299
3002008-05-15 Werner Lemberg <wl@gnu.org>
301
Werner Lembergbcfcc712008-05-15 09:14:39 +0000302 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
303
3042008-05-15 Werner Lemberg <wl@gnu.org>
305
Werner Lemberg504645e2008-05-14 23:26:20 +0000306 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
Werner Lemberg2d738992008-05-14 23:33:53 +0000307 which contains a single but empty entry. This is technically
308 invalid (since it must end with `return'), but...
Werner Lemberg504645e2008-05-14 23:26:20 +0000309
310 Reported by Martin McBride.
311
Werner Lemberge6e6ead2008-05-14 23:05:38 +00003122008-05-14 Werner Lemberg <wl@gnu.org>
313
314 Finish fix of scaling bug of CID-keyed CFF subfonts.
315
316 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
317 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
318 functions.
319
320 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
321 provide global hinting data for both the top-font and all subfonts
322 (with proper scaling).
323
324 * src/cff/cffobjs.c (cff_make_private_dict): New function, using
325 code from `cff_size_init'.
326 (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
327 Use CFF_Internal and handle subfonts.
328 (cff_face_init): Handle top-dict and subfont matrices correctly;
329 apply some heuristic in case of unlikely matrix concatenation
330 results. This has been discussed with people from Adobe (thanks
331 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
332 and not correct.
333
334 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
335
336 * src/cff/cffgload.c (cff_builder_init): Updated.
337 (cff_decoder_prepare): Handle hints globals for subfonts.
338 Update all callers.
339 (cff_slot_load): Handling scaling of subfonts properly.
340
341 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
342 (cff_parse_font_matrix): Use it.
343
344 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
345 FT_ULong.
346
347 * docs/CHANGES: Document it.
348
Werner Lembergfb572282008-05-13 12:10:04 +00003492008-05-13 Werner Lemberg <wl@gnu.org>
350
351 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
352 Handle case `face_index < 0'.
353 * docs/CHANGES: Document it.
354
Werner Lemberg551dd3c2008-05-04 13:37:38 +00003552008-05-04 Werner Lemberg <wl@gnu.org>
356
357 First steps to fix the scaling bug of CID-keyed CFF subfonts,
358 reported by Ding Li on 2008/03/28 on freetype-devel.
359
360 * src/base/cff/cffparse.c (power_tens): New array.
361 (cff_parse_real): Rewritten to introduce a fourth parameter which
362 returns the `scaling' of the real number so that we have no
363 precision loss. This is not used yet.
364 Update all callers.
365 (cff_parse_fixed_thousand): Replace with...
366 (cff_parse_fixed_scaled): This function. Update all callers.
367
Werner Lemberg6d29f0f2008-05-03 15:54:15 +00003682008-05-03 Werner Lemberg <wl@gnu.org>
369
370 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
371 transformation since it recursively calls FT_Load_Glyph. This fixes
372 Savannah bug #23143.
373
Werner Lembergde9479a2008-04-26 12:52:57 +00003742008-04-26 Werner Lemberg <wl@gnu.org>
375
376 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
377 and `scale_y' as obsolete since they aren't used.
378 * src/psaux/psobjs.c (t1_builder_init): Updated.
379
380 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
381 obsolete since they aren't used.
382 * src/cff/cffgload.c (cff_builder_init): Updated.
383
Werner Lemberg4ebc8902008-04-13 22:06:12 +00003842008-04-14 Werner Lemberg <wl@gnu.org>
385
386 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
387 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
388 bug #22909.
389
Werner Lemberg048b7562008-04-13 05:55:36 +00003902008-04-13 Werner Lemberg <wl@gnu.org>
391
392 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
393 integer part is zero.
394
Werner Lembergc32e83f2008-04-01 06:07:37 +00003952008-04-01 Werner Lemberg <wl@gnu.org>
396
397 Fix compilation with g++ 4.1 (with both `single' and `multi'
398 targets).
399
400 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
401 which is crossed by a `goto'.
402
403 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
404
Werner Lemberg210d6182008-04-01 05:55:48 +00004052008-03-31 Werner Lemberg <wl@gnu.org>
406
407 Fix support for subsetted CID-keyed CFFs.
408
409 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
410 FT_IS_CID_KEYED): New macros.
411
412 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
413 maximum CID value in CID-keyed CFFs.
414 Handle FT_FACE_FLAG_CID_KEYED flag.
415
416 * docs/CHANGES: Document it.
417
418
419 Fix CFF font matrix calculation and improve precision.
420
421 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
422 part is zero.
423 (cff_parse_font_matrix): Simplify computation of `units_per_em';
424 this prevents overflow also.
425
426
427 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
428
429 * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
430 (cid_get_ros): New function.
431 (cid_service_cid_info): New service structure.
432 (cid_services): Register it.
433
Werner Lemberga56e5262008-03-23 14:53:44 +00004342008-03-23 Werner Lemberg <wl@gnu.org>
435
436 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
437
438 * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
439 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
440
Werner Lemberg85751172008-03-21 07:16:00 +00004412008-03-21 Laurence Darby <ldarby>
442
443 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
444 Savannah bug #22675.
445
Werner Lemberg3863c952008-03-13 06:38:37 +00004462008-03-13 Derek Clegg <dclegg@apple.com>
447
448 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
449 Patch from Savannah bug #22541.
450
Werner Lembergfc293932008-03-03 08:08:12 +00004512008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
452
453 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
454 tt_cmap14_find_variant): Return correct value.
455 (tt_cmap14_variant_chars): Fix check for `di'.
456
Werner Lemberg5057e362008-02-29 07:23:02 +00004572008-02-29 Wermer Lemberg <wl@gnu.org>
458
459 * docs/CHANGES: Updated.
460
Werner Lemberg7faa1552008-02-29 07:14:38 +00004612008-02-29 Wolf
462
463 Add build support for symbian platform. From Savannah bug #22440.
464
465 * builds/symbian/*: New files.
466
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +00004672008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
468
Werner Lemberg9b9d3342008-02-21 23:22:06 +0000469 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
470 synthesis. For any face of a specified FOND, always the name for
471 the first face was used. Except of a FOND that refers multiple
472 Type1 font files, wrong synthesized font names are not used at all,
473 so this is an invisible bug. A few limit checks are added too.
Suzuki, Toshiya (鈴木俊哉)6cb2faa2008-02-21 18:46:07 +0000474
475 * builds/mac/ftmac.c: Ditto.
476
4772008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
478
Werner Lemberg31093cc2008-02-21 17:10:04 +0000479 * builds/unix/configure.raw: Split compiler option to link Carbon
480 frameworks to one option for CoreServices framework and another
481 option for ApplicationServices framework. The split options can be
482 managed by GNU libtool to avoid unrequired duplication when FreeType
483 is linked with other applications. Suggested by Daniel Macks,
484 Savannah bug #22366.
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +0000485
Werner Lemberg28464c42008-02-18 20:34:42 +00004862008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
487
488 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
489 from Savannah bug #22356.
490
Werner Lemberg44c655b2008-02-17 08:22:08 +00004912008-02-17 Jonathan Blow <jon@number-none.com>
492
493 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
494 Check for valid callback pointers.
495
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +00004962008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
497
498 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
499 handle by its value instead of ResError(), fix provided by Deron
Werner Lembergc903f2f2008-02-17 08:23:04 +0000500 Kazmaier. According to the Resource Manager Reference,
501 GetResource(), Get1Resource(), GetNamedResource(),
502 Get1NamedResource() and RGetResource() set noErr but return NULL
503 handle when they can not find the requested resource. These
504 functions never return undefined values, so it is sufficient to
505 check if the handle is not NULL.
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +0000506
507 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
508
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00005092008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
510
511 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
Werner Lembergaa722df2008-02-14 10:46:40 +0000512 inclusion styles. Now it always includes src/base/ftmac.c;
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +0000513 builds/mac/ftmac.c is never included in any configuration.
Werner Lembergaa722df2008-02-14 10:46:40 +0000514
515 * builds/unix/configure.raw: Print warning if configure is executed
516 with options to specify Carbon functionalities explicitly.
517
518 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +0000519 included automatically and manual replacement is required.
520
Werner Lemberg744dd452008-02-11 08:22:40 +00005212008-02-11 Werner Lemberg <wl@gnu.org>
522
523 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
524 (dos_setup), builds/freetype.mk (clean_project_dos,
525 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
526 Murdoch.
527
Werner Lemberg4c933992008-01-18 05:32:55 +00005282008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
529
530 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
531 mention intra-pixel algorithm.
532
533 * include/freetype/freetype.h (FT_Render_Mode): Mention that
534 FT_Library_SetLcdFilter can be used to reduce fringes.
535
Werner Lemberg1ddd1b72008-01-16 06:58:54 +00005362008-01-16 Werner Lemberg <wl@gnu.org>
537
538 * src/raster/ftraster.c (ft_black_render): Check `outline' before
539 using it. Reported by Allan Yang.
540
Werner Lembergeca1f272008-01-12 07:46:09 +00005412008-01-12 Werner Lemberg <wl@gnu.org>
542
543 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
544
5452008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
546
547 * src/raster/ftraster.c (ft_black_init)
548 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
549
Werner Lembergbf391cb2008-01-10 08:47:08 +00005502008-01-10 Werner Lemberg <wl@gnu.org>
551
552 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
553 where the number of contours in a simple glyph is zero (and which
554 does contain an entry in the `glyf' table). This fixes Savannah bug
555 #21990.
556
Suzuki, Toshiya (鈴木俊哉)75696862008-01-04 01:43:23 +00005572008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
558
559 Formatting suggested by Sean McBride.
560
561 * builds/mac/ftmac.c: Formatting (tab expanded).
562 * src/autofit/afindic.c: Ditto.
563 * src/base/ftcid.c: Ditto.
564 * src/base/ftmac.c: Ditto.
565
Werner Lembergd2e15732007-12-30 23:49:14 +00005662007-12-30 Werner Lemberg <wl@gnu.org>
567
568 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
569 correctly.
570
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00005712007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
572
573 Improvement of POSIX resource-fork accessor to load unsorted
Werner Lembergd2e15732007-12-30 23:49:14 +0000574 references in a resource. In HelveLTMM (resource-fork PostScript
575 Type1 font bundled with Mac OS X since 10.3.x), the appearance order
576 of PFB chunks is not sorted; sorting the chunks by reference IDs is
577 required.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000578
Werner Lembergd2e15732007-12-30 23:49:14 +0000579 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
580 type to store a pair of reference ID and offset to the chunk.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000581
Werner Lembergd2e15732007-12-30 23:49:14 +0000582 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
583 sort FT_RFork_Ref by their reference IDs.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000584
Werner Lembergd2e15732007-12-30 23:49:14 +0000585 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
586 sorted by reference ID.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +0000587
Werner Lembergd156cab2007-12-14 07:48:32 +00005882007-12-14 Werner Lemberg <wl@gnu.org>
589
590 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
591 division too early; otherwise the most significant digit(s) of the
592 final result are lost as the value is truncated to an integer. This
593 fixes Savannah bug #21794 (where the patch has been posted too).
594
Werner Lembergbd7e1c32007-12-06 17:17:30 +00005952007-12-06 Fix <4d876b82@gmail.com>
596
597 Pass options from one configure script to another as-is (not
598 expanded). This is needed for options like
599 --includedir='${prefix}/include'.
600
601 * builds/unix/detect.mk, configure: Prevent argument expansion in
602 call to the (real) `configure' script.
603
6042007-12-06 Werner Lemberg <wl@gnu.org>
605
606 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
607 TT_USE_BYTECODE_INTERPRETER isn't defined.
608
6092007-12-06 Werner Lemberg <wl@gnu.org>
610
611 There exist CFFs which contain opcodes for the Type 1 operators
612 `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
613 However, it doesn't harm to support them.
614
615 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
616 `cff_op_closepath.'
617 (cff_argument_counts): Ditto.
618
619 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
620 and 13 (hsbw) which are invalid in Type 2 charstrings.
621
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +00006222007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
623
Werner Lembergbd7e1c32007-12-06 17:17:30 +0000624 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
625 support new pathname syntax `..namedfork/rsrc' to access a resource
626 fork on Mac OS X. The legacy syntax `/rsrc' does not work on
627 case-sensitive HFS+.
Suzuki, Toshiya (鈴木俊哉)a6d36572007-12-06 10:27:15 +0000628 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
629 buffer size to store a pathname.
630 * include/freetype/internal/ftrfork.h: Increment the number of
631 resource fork guessing rule.
632
6332007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
634
Werner Lembergbd7e1c32007-12-06 17:17:30 +0000635 * builds/unix/configure.raw: Improve the compile tests to search
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +0000636 Carbon functions.
Werner Lembergbd7e1c32007-12-06 17:17:30 +0000637 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +0000638 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
639
6402007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
641
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +0000642 The documents and comments for Mac OS X are improved by Sean
643 McBride.
644
645 * src/base/ftmac.c: Fix a comment.
646 * include/freetype/ftmac.h: Ditto.
647 * docs/INSTALL.MAC: Improve English and add comment on lowest
648 system version specified by MACOSX_DEPLOYMENT_TARGET.
649
Werner Lemberga10d2b72007-12-04 22:05:54 +00006502007-12-04 Werner Lemberg <wl@gnu.org>
651
652 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
653 concatenate error codes.
654 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
655
Werner Lembergd496b922007-12-04 21:49:59 +00006562007-12-04 Graham Asher <graham.asher@btinternet.com>
657
658 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
659 concatenate error codes.
660
Werner Lembergc0da5232007-12-04 21:44:32 +00006612007-12-04 Sean McBride <sean@rogue-research.com>
662
663 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
664 warning.
665
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00006662007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
667
Werner Lemberg6174e172008-06-10 05:58:25 +0000668 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
Werner Lemberg24fe6182007-11-23 09:18:07 +0000669 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
670 cannot mmap() the specified file and cannot seek to head of the
671 specified file, it returns NULL stream and FT_Open_New() returns the
672 error immediately. On MacOS, most legacy MacOS fonts fall into such
673 a scenario because their data forks are zero-sized and cannot be
674 sought. To proceed to guessing of resource fork fonts, the
675 functions for legacy MacOS font must properly handle the NULL stream
676 returned by FT_New_Stream().
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000677
Werner Lemberg24fe6182007-11-23 09:18:07 +0000678 * src/base/ftobjs.c (IsMacBinary): Return error
679 FT_Err_Invalid_Stream_Operation immediately when NULL stream is
680 passed.
681 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
682 to fallback. Originally, legacy MacOS font is tested in the cases
683 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
684 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
685 .dfont header is combined). Now the case of
686 FT_Err_Cannot_Open_Stream is included.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000687
Werner Lemberg24fe6182007-11-23 09:18:07 +0000688 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
689 skip FT_Stream_Seek(), which seeks to the head of stream, and
690 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
691 for a NULL stream causes a Bus error on Mac OS X.
692 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000693 immediately if passed stream is NULL.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +0000694 (raccess_guess_apple_single): Ditto.
695
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00006962007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
697
Suzuki, Toshiya (鈴木俊哉)a5470682007-11-16 16:29:36 +0000698 Fix for Carbon incompatibilities since Mac OS X 10.5,
699 proposed by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +0000700
701 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
702
703 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
704 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
705 Carbon functions from a forked process is classified as unsafe
706 by Apple. All Carbon-dependent functions should be deprecated.
707
708 * src/base/ftmac.c: Use essential header files <Carbon/Carbon.h>
709 and <ApplicationServices/ApplicationServices.h> instead of
710 all-in-one header file <CoreServices/CoreServices.h>.
711
712 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
713 genuine macro PATH_MAX.
714
715 Add fallback macro for kATSOptionFlagsUnRestrictedScope which
716 is not found in Mac OS X 10.0.
717
718 Multi-character constants ('POST', 'sfnt' etc) are replaced by
719 64bit constants calculated by FT_MAKE_TAG() macro.
720
721 For the index in the segment of resource fork, new portable
722 type ResourceIndex is introduced for better compatibility.
723 This type is since Mac OS X 10.5, so it is defined as short
724 when built on older platforms.
725
726 (FT_ATSFontGetFileReference): If build target is only the systems
727 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
728
729 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
730 and newer or 64bit platform, because legacy type FSSpec type is
731 removed completely.
732
733 (FT_New_Face_From_FSSpec): Ditto.
734
7352007-11-01 Werner Lemberg <wl@gnu.org>
Werner Lembergd503fc52007-11-01 09:19:44 +0000736
737 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
738 fixes Savannah bug #21485.
739
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00007402007-10-29 Daniel Svoboda <dasvo@planeta@cz>
Werner Lemberg27649fb2007-10-29 22:00:58 +0000741
742 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
743 can handle the font at all, then check `face_index'. Otherwise, the
744 driver might return the wrong error code. This fixes Savannah bug
745 #21468.
746
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00007472007-10-21 Werner Lemberg <wl@gnu.org>
Werner Lemberg7d9c1892007-10-21 08:12:30 +0000748
749 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
Werner Lemberge77b6c42007-10-21 08:18:40 +0000750 support for bit 8 of the `fsSelection' field in the `OS/2' table.
751 MS is already using this; hopefully, this becomes part of OpenType
752 1.5.
Werner Lemberg7d9c1892007-10-21 08:12:30 +0000753 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
754 (WWS_SUBFAMILY).
755
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00007562007-10-20 Werner Lemberg <wl@gnu.org>
Werner Lemberg66842572007-10-20 16:17:28 +0000757
758 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
759 Add `td.left' element to CSS.
760 (toc_section_enter): Use it.
761
David Turnercf432db2007-10-19 12:36:40 +00007622007-10-18 David Turner <david@freetype.org>
763
Werner Lemberg7f2425f2007-10-20 16:15:07 +0000764 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
765 functions related to cmap type 14 support to the
766 `FT_Object_ActionName' scheme:
David Turnercf432db2007-10-19 12:36:40 +0000767
Werner Lemberg7f2425f2007-10-20 16:15:07 +0000768 FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
769 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
770 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
771 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
772 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
773
774 Update documentation accordingly.
775
776 * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
777 Make the code a little more consistent with FreeType coding
778 conventions and modify the cmap14 functions that returned a newly
779 allocated array to use a persistent vector from the TT_CMap14 object
David Turnercf432db2007-10-19 12:36:40 +0000780 instead.
781
Werner Lemberg7f2425f2007-10-20 16:15:07 +0000782 (TT_CMap14Rec): Provide array and auxiliary data for result.
783 (tt_cmap14_done, tt_cmap14_ensure): New functions.
784
785 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
786 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
787 tt_cmap14_char_var_index, tt_cmap14_variants,
788 tt_cmap14_char_variants, tt_cmap14_def_char_count,
789 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
790 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
791
Werner Lemberg9a966b72007-10-15 17:21:32 +00007922007-10-15 George Williams <gww@silcom.com>
793
794 Add support for cmap type 14.
795
796 * devel/ftoption.h, include/freetype/config/ftoption.h
797 (TT_CONFIG_CMAP_FORMAT_14): New macro.
798
799 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
800 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
801 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
802 support function prototypes.
803 (FT_CMap_ClassRec): Add them.
804 Update all users.
805
806 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
807 macro.
808
809 * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
810 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
811 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
812 functions.
813
814 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
815 function.
816 (FT_Set_Charmap): Disallow cmaps of type 14.
817 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
818 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
819 FT_Get_Chars_Of_Variant): New API functions.
820
821 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
822
823 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
824 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
825 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
826 tt_cmap14_find_variant, tt_cmap14_char_var_index,
827 tt_cmap14_char_var_isdefault, tt_cmap14_variants,
828 tt_cmap14_char_variants, tt_cmap14_def_char_count,
829 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
830 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
831 structures for cmap 14 support.
832 (tt_cmap_classes): Register tt_cmap14_class_rec.
833 (tt_face_build_cmaps): One more error message.
834
835 * docs/CHANGES: Mention cmap 14 support.
836
Werner Lemberg74597cc2007-10-01 07:08:56 +00008372007-10-01 Werner Lemberg <wl@gnu.org>
838
839 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
David Turnercf432db2007-10-19 12:36:40 +0000840 charmap fails, do the loop again while searching a UCS-2 charmap.
Werner Lemberg74597cc2007-10-01 07:08:56 +0000841 This favours MS charmaps over Apple ones.
842
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +00008432007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
844
Werner Lemberg9a966b72007-10-15 17:21:32 +0000845 * src/base/ftmac.c: Introduction of abstract `short' data types,
846 ResFileRefNum and ResID. These types were introduced for Copland,
847 then backported to MPW. The variables exchanged with FileManager
848 QuickDraw frameworks are redefined by these data types. Patch was
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +0000849 proposed by Sean McBride.
850 * builds/mac/ftmac.c: Ditto.
851
Werner Lembergabc44f52007-08-18 06:38:07 +00008522007-08-18 Werner Lemberg <wl@gnu.org>
853
854 * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
855 by Imran Yousaf. Fixes Savannah bug #20773.
856
857 (otv_Lookup_validate): Correct handling of LookupType. Found by
858 Imran Yousaf. Fixes Savannah bug #20782.
859
Werner Lemberg23a424f2007-08-17 20:16:44 +00008602007-08-17 George Williams <gww@silcom.com>
861
862 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
863 SingleSubstFormat1.
864
Suzuki, Toshiya (鈴木俊哉)4fc0cce2007-08-11 16:35:06 +00008652007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
866
867 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
868 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
869 Found by Ryan Hill.
870
Werner Lemberg3f1905b2007-08-11 15:45:32 +00008712007-08-11 George Williams <gww@silcom.com>
872
873 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
874 (otv_Coverage_validate): Add fourth argument to pass an expected
875 count value. Update all users.
876 Check glyph IDs.
877 (otv_ClassDef_validate): Check `StartGlyph'.
878
879 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
880 checks.
881
882 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
883 56 constants.
884 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
885 Check glyph IDs.
886
Werner Lembergd76fe5a2007-08-08 06:38:06 +00008872007-08-08 Werner Lemberg <wl@gnu.org>
888
889 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
890 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
891 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
892 appropriate. Reported by George.
893
894 * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
895
896 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
897
898 * docs/CHANGES: Updated.
899
9002007-08-08 George Williams <gww@silcom.com>
901
902 Add `MATH' validating support to otvalid module.
903
904 * include/freetype/tttags.h (TTAG_MATH): New macro.
905 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
906 (FT_VALIDATE_OT): Updated.
907
908 * src/otvalid/otmath.c: New file.
909
910 * src/otvalid/otvalid.c: Include otvmath.c.
911 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
912
Werner Lembergb6617882007-08-04 22:17:48 +00009132007-08-04 Werner Lemberg <wl@gnu.org>
914
David Turnercf432db2007-10-19 12:36:40 +0000915 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
Werner Lembergb6617882007-08-04 22:17:48 +0000916 Fixes Savannah bug #20686.
917
Werner Lembergd6752a62007-08-02 22:03:30 +00009182007-08-03 Werner Lemberg <wl@gnu.org>
919
920 * src/psnames/psmodule.c: Fix usage of
921 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
922
Suzuki, Toshiya (鈴木俊哉)cf093cd2007-07-31 03:58:09 +00009232007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
924
925 * src/base/ftmac.c (open_face_from_buffer): The argument
926 `driver_name' is typed as `const char*' to match with the
927 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
928 This is same with open_face_from_buffer in src/base/ftobjs.c.
929 Found and fixed by Sean McBride.
930
Werner Lemberg39c91ad2007-07-28 05:40:40 +00009312007-07-28 Werner Lemberg <wl@gnu.org>
932
933 * src/raster/ftraster.c (count_table): Make it conditional.
934 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
935 a preprocessor statement.
936
Werner Lemberg71dd6872007-07-27 04:44:36 +00009372007-07-27 Werner Lemberg <wl@gnu.org>
938
939 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
940 first usage. From Savannah patch #6115.
941
Werner Lembergef915c32007-07-16 20:46:05 +00009422007-07-16 Werner Lemberg <wl@gnu.org>
943
944 * docs/CHANGES: Updated.
945
9462007-07-16 Derek Clegg <dclegg@apple.com>
947
948 Add new service for getting the ROS from a CID font.
949
950 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
951 * include/freetype/ftcid.h: New file.
952
953 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
954 * include/freetype/internal/services/svcid.h: New file.
955
956 * src/base/ftcid.c: New file.
957
958 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
959 (cff_get_ros): New function.
960 (cff_service_cid_info): New service structure.
961 (cff_services): Register it.
962
963 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
964
965 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
966
967 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
968
Werner Lemberg2f109562007-07-11 05:32:00 +00009692007-07-11 Derek Clegg <dclegg@apple.com>
970
971 Add support for postscript name service to CFF driver.
972
973 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
974 (cff_get_ps_name): New function.
975 (cff_service_ps_name): New service structure.
976 (cff_services): Register it.
977
Werner Lembergb003b3e2007-07-08 07:13:12 +00009782007-07-07 Werner Lemberg <wl@gnu.org>
979
980 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
981 `target'. Reported by Sean McBride.
982
Werner Lemberg1e1b6df2007-07-07 07:30:40 +00009832007-07-06 Werner Lemberg <wl@gnu.org>
984
985 * src/pfr/pfrcmap.c: Include pfrerror.h.
986
987 * src/autofit/afindic.c: Add some external declarations to pacify
988 `make multi' compilation.
989
990 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
991
992 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
993 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
994 src/autofit/aflatin.c (af_latin_hints_compute_edges),
995 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
996 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
997 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
998
999 * docs/release: Mention test compilation targets.
1000
Werner Lemberg986ea4b2007-07-04 04:53:15 +000010012007-07-04 Werner Lemberg <wl@gnu.org>
1002
1003 * docs/PROBLEMS: Mention that some PS based fonts can't be
1004 handled correctly by FreeType.
1005
Werner Lemberg3033f432007-07-04 14:12:19 +00001006 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
1007 recursion depth of 1. This was the maximum value in TrueType 1.0,
1008 and some older fonts don't set this field correctly.
1009
1010 * src/gxvalid/gxvmort1.c
1011 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
1012
Werner Lemberg3b0e5002007-07-03 04:48:19 +000010132007-07-03 Werner Lemberg <wl@gnu.org>
1014
1015 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
1016 `round' to pacify compiler.
1017
10182007-07-02 Werner Lemberg <wl@gnu.org>
1019
1020
1021 * Version 2.3.5 released.
1022 =========================
1023
1024
1025 Tag sources with `VER-2-3-5'.
1026
1027 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1028 version number to 2.3.5.
1029
1030 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1031 builds/win32/visualc/freetype.dsp,
1032 builds/win32/visualc/freetype.vcproj,
1033 builds/win32/visualce/index.html,
1034 builds/win32/visualce/freetype.dsp,
1035 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
1036
1037 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
1038
1039 * builds/unix/configure.raw (version_info): Set to 9:16:3.
1040
David Turner0ba89912007-07-01 09:34:04 +000010412007-07-01 David Turner <david@freetype.org>
1042
Werner Lemberge3be90b2007-07-02 14:58:58 +00001043 * include/freetype/freetype.h, src/base/ftpatent.c
1044 (FT_Face_SetUnpatentedHinting): New function to dynamically change
1045 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +00001046
Werner Lemberge3be90b2007-07-02 14:58:58 +00001047 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
1048 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +00001049
David Turner74cc0e92007-06-30 22:54:12 +000010502007-06-30 David Turner <david@freetype.org>
1051
Werner Lemberge3be90b2007-07-02 14:58:58 +00001052 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
1053 initialization.
David Turner74cc0e92007-06-30 22:54:12 +00001054
Werner Lemberge3be90b2007-07-02 14:58:58 +00001055 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
1056 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +00001057
Werner Lemberg7723dc32007-06-26 04:44:35 +000010582007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
1059
1060 Add autofit module for Indic scripts. This currently just reuses
1061 the CJK-specific functions.
1062
1063 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
1064 macro.
1065 * devel/ftoption.h: Synchronize with
1066 include/freetype/config/ftoption.h.
1067
1068 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
1069
1070 * src/autofit/afglobal.c, src/autofit/aftypes.h,
1071 src/autofit/autofit.c: Updated.
1072
1073 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
1074 (AUTOF_DRV_SRC): Updated.
1075
David Turner8f626b02007-06-22 22:22:38 +000010762007-06-23 David Turner <david@freetype.org>
1077
Werner Lemberg7854c4a2007-06-23 07:16:20 +00001078 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
1079 2007-06-16 that prevented the TrueType module from loading most
1080 glyphs.
David Turner8f626b02007-06-22 22:22:38 +00001081
Werner Lemberg5b4d4352007-06-20 07:07:55 +000010822007-06-20 Werner Lemberg <wl@gnu.org>
1083
1084 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
1085 change.
1086
Werner Lemberg9fe58152007-06-19 07:57:30 +000010872007-06-19 Werner Lemberg <wl@gnu.org>
1088
1089 * src/type1/t1load.c (parse_encoding): Handle one more error.
1090
Werner Lemberg5a829392007-06-19 04:53:30 +000010912007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
1092
1093 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
1094 FNT_Err_Invalid_File_Format if file format was recognized but
1095 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
1096 Add verbose debug logs to make it easier to debug failing load
1097 attempts.
1098 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
1099 so return an error if requested face index is > 0.
1100 Do not do further attempt to load fonts if a previous attempt has
1101 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
1102 file format has been recognized but no fonts found in the file.
1103
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011042007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1105
1106 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
1107 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
1108 the compiler warnings against unused arguments.
1109 (FT_ATSFontGetFileReference): Ditto.
1110 (FT_GetFile_From_Mac_ATS_Name): Ditto.
1111 (FT_New_Face_From_FSSpec): Ditto.
1112 (lookup_lwfn_by_fond): Fix wrong comment.
1113 Replace `const StringPtr' by more appropriate type
1114 `ConstStr255Param'.
1115 FSRefMakePathPath always returns UTF8 POSIX pathname in
1116 Mach-O, thus HFS pathname support is dropped.
1117 (count_faces): Remove HLock and HUnlock which is not
1118 required on Mac OS X anymore.
1119 (FT_New_Face_From_SFNT): Ditto.
1120 (FT_New_Face_From_FOND): Ditto.
1121 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
1122 except of HFS pathname support and HLock/HUnlock.
1123 They are required on classic CFM environment.
1124
11252007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +00001126
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001127 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
1128 assertion.
1129 (ps_parser_to_bytes): Fix error message.
1130
Werner Lembergbb2510d2007-06-18 17:07:49 +00001131 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001132 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
1133 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +00001134 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +00001135 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001136
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011372007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +00001138
Werner Lembergf48aec72007-06-18 07:07:55 +00001139 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
1140 logic.
1141 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
1142 correctly.
1143 (ps_parser_load_field_table): Use `fields->array_max' instead of
1144 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
1145
Werner Lemberg95104a42007-06-18 07:33:10 +00001146 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
1147 2007-06-06.
1148
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011492007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +00001150
1151 * src/tools/ftrandom.c (font_size): New global variable.
1152 (TestFace): Use it.
1153 (main): Handle new option `--size' to set `font_size'.
1154 (Usage): Updated.
1155
Werner Lembergbe183eb2007-06-17 11:27:17 +00001156 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
1157 invalid font.
1158 (FNT_Load_Glyph): Protect against invalid bitmap width.
1159
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011602007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +00001161
Werner Lemberge12ed562007-06-17 05:31:23 +00001162 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
1163 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +00001164
Werner Lemberge12ed562007-06-17 05:31:23 +00001165 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
1166 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +00001167
Werner Lemberge12ed562007-06-17 05:31:23 +00001168 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
1169 and `zp2'.
1170 (Ins_IP): Check argument ranges to reject bogus operations properly.
1171 (IUP_WorkerRec): Add `max_points' member.
1172 (_iup_worker_interpolate): Check argument ranges.
1173 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +00001174
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011752007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +00001176
1177 * src/winfonts/winfnt.h: Add necessary structures for PE resource
1178 parsing.
1179 (WinPE32_HeaderRec): New structure.
1180 (WinPE32_SectionRec): New structure.
1181 (WinPE_RsrcDirRec): New structure.
1182 (WinPE_RsrcDirEntryRec): New structure.
1183 (WinPE_RsrcDataEntryRec): New structure.
1184 (FNT_FontRec): Remove unused `size_shift' field.
1185
1186 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
1187 loading bitmap .fon files in PE format.
1188
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011892007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +00001190
1191 * builds/win32/ftdebug.c: Unify debug level handling with other
1192 platforms.
1193
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011942007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +00001195
1196 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
1197 console as well as to the debugger.
1198
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000011992007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +00001200
1201 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
1202 cover all ranges which could possibly be handled by the aflatin
1203 module (since the default fallback for unknown ranges is now the
1204 afcjk module). It might be necessary to fine-tune this further by
1205 splitting off modules for Greek, Cyrillic, or other blocks.
1206
David Turnerb7920172007-06-11 05:37:35 +000012072007-06-11 David Turner <david@freetype.org>
1208
Werner Lemberg49e18b82007-06-11 21:15:09 +00001209 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
1210 incorrect segment linking computation. This was the root cause of
1211 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +00001212
1213
Werner Lemberg49e18b82007-06-11 21:15:09 +00001214 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
1215 to improve the Latin auto-hinter. Note that the new code is
1216 disabled by default since it is not stabilized yet.
1217
1218 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
1219 (disabled currently).
1220
1221 * src/autofit/afhints.c: Remove dead code.
1222 (af_axis_hints_new_edge): Add argument to handle segment directions.
1223 (af_edge_flags_to_string): New function.
1224 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
1225 option flags.
1226 (af_glyph_hints_reload): Add argument to handle inflections.
1227 Simplify.
1228 (af_direction_compute): Fine tuning.
1229 (af_glyph_hints_align_edge_points): Fix logic.
1230 (af_glyph_hints_align_strong_points): Do linear search for small
1231 edge counts.
1232 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
1233 (af_iup_shift): Handle zero `delta'.
1234
1235 * src/autofit/afhints.h: Updated.
1236 (AF_SORT_SEGMENTS): New macro (disabled).
1237 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
1238
1239 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
1240 argument to pass option flags for handling scripts.
1241 * src/autofit/afglobal.h: Updated.
1242
1243 * src/autofit/afcjk.c: Updated.
1244 * src/autofit/aflatin.c: Updated.
1245 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
1246
1247 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
1248 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
1249 Don't set `edge->dir'
1250 (af_latin_hint_edges): Add more logging.
1251
1252 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +00001253
Werner Lembergf6c120f2007-06-11 04:55:58 +000012542007-06-11 Werner Lemberg <wl@gnu.org>
1255
Werner Lembergcf7b7642007-06-11 04:58:01 +00001256 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +00001257
David Turner84c6f882007-06-10 20:51:04 +000012582007-06-10 David Turner <david@freetype.org>
1259
Werner Lembergf6c120f2007-06-11 04:55:58 +00001260 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
1261 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +00001262
Werner Lembergf6c120f2007-06-11 04:55:58 +00001263 * include/freetype/config/ftoption.h: Clarify documentation
1264 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +00001265
Werner Lembergf6c120f2007-06-11 04:55:58 +00001266
1267 Add new `FT_Face_CheckTrueTypePatents' API.
1268
1269 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
1270 declaration.
1271
1272 * include/freetype/internal/services/svttglyf.h,
1273 src/base/ftpatent.c: New files.
1274
1275 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
1276 New macro.
1277
1278 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
1279 `ttpload.h'.
1280 (tt_service_truetype_glyf): New service structure.
1281 (tt_services): Register it.
1282
1283 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
1284 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +00001285
Werner Lemberg33db39e2007-06-08 06:30:29 +000012862007-06-08 Werner Lemberg <wl@gnu.org>
1287
David Turner84c6f882007-06-10 20:51:04 +00001288 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +00001289 Fonts without a cmap must be handled correctly by FreeType (anything
1290 else would be a bug).
1291
1292
1293 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1294 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
1295
Werner Lemberg88ab6382007-06-07 05:01:56 +000012962007-06-07 Werner Lemberg <wl@gnu.org>
1297
1298 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
1299 tt_sbit_decoder_load_image): Protect against integer overflows.
1300
1301
1302 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
1303 for `x_control' and `y_control'.
1304
Werner Lemberg2a2dca62007-06-06 04:39:37 +000013052007-06-06 Werner Lemberg <wl@gnu.org>
1306
1307 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
1308
Werner Lemberga8d65492007-06-06 04:47:49 +00001309
1310 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
1311 FreeType error.
1312
Werner Lemberg470210b2007-06-06 10:05:49 +00001313
1314 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
1315 `font_count'.
1316
1317
1318 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
1319
1320
1321 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
1322 `FT_Error'.
1323 Check `fd_index'.
1324 (cff_slot_load): Updated.
1325 * src/cff/cffgload.h: Updated.
1326
Werner Lemberg6c054752007-06-05 05:27:54 +000013272007-06-05 Werner Lemberg <wl@gnu.org>
1328
1329 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
1330 (pfr_glyph_load_simple): Convert assertion into normal FreeType
1331 error.
1332 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +00001333 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
1334 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +00001335
1336 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
1337
Werner Lembergf4bc3f42007-06-05 07:32:15 +00001338
Werner Lemberg470210b2007-06-06 10:05:49 +00001339 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +00001340
Werner Lemberge5c14d92007-06-05 20:50:37 +00001341
1342 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
1343 in case of parsing error.
1344 (ps_parser_load_field): Updated.
1345
1346 * src/type1/t1load.c (parse_font_matrix): Updated.
1347
Werner Lembergad18b362007-06-04 07:04:05 +000013482007-06-04 Werner Lemberg <wl@gnu.org>
1349
1350 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
1351
1352 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
1353
Werner Lemberg3d507fe2007-06-03 16:54:55 +000013542007-06-03 Werner Lemberg <wl@gnu.org>
1355
Werner Lemberg99a320b2007-06-03 19:21:26 +00001356 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
1357 George Williams (with some modifications).
1358
13592007-06-03 Werner Lemberg <wl@gnu.org>
1360
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001361 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
1362 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
1363 face == NULL. Suggested by Graham Asher.
1364
Werner Lembergce280a22007-06-03 05:58:30 +000013652007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
1366
1367 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
1368
Werner Lemberg5b591e42007-06-01 22:16:43 +000013692007-06-02 Werner Lemberg <wl@gnu.org>
1370
1371 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
1372 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
1373
1374 * src/bdf/bdflib.c (bdf_load_font): Use them.
1375
1376 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
1377
Werner Lembergb9933f42007-06-01 21:27:12 +000013782007-06-01 Werner Lemberg <wl@gnu.org>
1379
1380 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
1381 (FTC_CMapCache_Lookup): Remove unused code.
1382
Werner Lembergc793d902007-06-01 20:51:11 +000013832007-06-01 Sean McBride <sean@rogue-research.com>
1384
1385 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
1386 unused.
1387
Werner Lembergbebc7b12007-06-01 06:32:30 +000013882007-06-01 Werner Lemberg <wl@gnu.org>
1389
1390 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
1391 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +00001392 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +00001393
Werner Lembergcb37b3b2007-06-01 06:49:03 +00001394 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
1395 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
1396
Werner Lembergba03af62007-05-30 13:57:02 +000013972007-05-30 Werner Lemberg <wl@gnu.org>
1398
1399 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
1400 against too small binary data strings.
1401
1402 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
1403
David Turnerf0cd69c2007-05-28 15:42:09 +000014042007-05-28 David Turner <david@freetype.org>
1405
Werner Lemberg99e0c182007-05-29 07:00:23 +00001406 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
1407 transformation. This significantly reduces the loading time of CFF
1408 glyphs.
David Turner552a9562007-05-28 15:45:35 +00001409
Werner Lemberg99e0c182007-05-29 07:00:23 +00001410 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +00001411
Werner Lemberg99e0c182007-05-29 07:00:23 +00001412 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
1413 hinting script to CJK, since it works well with more scripts than
1414 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
1415 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +00001416
Werner Lemberg1c8980e2007-05-25 07:11:12 +000014172007-05-25 Werner Lemberg <wl@gnu.org>
1418
1419 * docs/CHANGES: Updated.
1420
Werner Lemberg6ff2ff52007-05-24 19:39:14 +000014212007-05-24 Werner Lemberg <wl@gnu.org>
1422
1423 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
1424 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
1425
14262007-05-24 Graham Asher <graham.asher@btinternet.com>
1427
1428 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
1429 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
1430
David Turner0d0365e2007-05-22 09:53:44 +000014312007-05-22 David Turner <david@freetype.org>
1432
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001433 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
1434 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +00001435
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001436
1437 Avoid heap blowup with very large .Z font files. This fixes
1438 Savannah bug #19910.
1439
1440 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
1441 `in_limit', `pad', `pad_bits', and `in_buff' members.
1442 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
1443 `buf_total' members.
1444
1445 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
1446 only one argument.
1447 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +00001448
14492007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +00001450
1451 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
1452 (ps_dimension_set_mask_bits): Remove `const'.
1453
David Turner0d0365e2007-05-22 09:53:44 +000014542007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +00001455
1456 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1457 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
1458
Werner Lembergb826fa72007-05-19 07:18:48 +000014592007-05-19 Derek Clegg <dclegg@apple.com>
1460
1461 Savannah patch #5929.
1462
1463 * include/freetype/tttables.h, src/base/ftobjcs.c
1464 (FT_Get_CMap_Format): New function.
1465
1466 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
1467 `format' member.
1468 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
1469 cmap_info->format.
1470
Werner Lemberg6f99c882007-05-19 07:01:49 +000014712007-05-19 Werner Lemberg <wl@gnu.org>
1472
1473 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
1474 before handling subglyphs so that it can be reinitialized each time.
1475 This fixes Savannah bug #19859.
1476
Werner Lemberg95bc9d32007-05-16 15:19:42 +000014772007-05-16 Werner Lemberg <wl@gnu.org>
1478
1479 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
1480 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
1481 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
1482 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
1483 tt_face_get_metrics): Fix type-punning issues.
1484
David Turner0a24bd22007-05-15 10:54:10 +000014852007-05-15 David Turner <david@freetype.org>
1486
1487 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00001488 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
1489 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +00001490 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00001491 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +00001492
Werner Lemberg607dec72007-05-15 06:49:37 +000014932007-05-15 Graham Asher <graham.asher@btinternet.com>
1494
1495 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
1496 variable.
1497 * src/autofit/afloader.c (af_loader_load_g): Ditto.
1498
1499 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
1500 (open_face_from_buffer): Initialize `stream'.
1501 (FT_Request_Metrics): Remove unused variable.
1502 Remove redundant `break' statements.
1503 (FT_Get_Track_Kerning): Remove unused variable.
1504
1505 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
1506 afm_parse_kern_data): Remove redundant
1507 `break' statements.
1508 (afm_parser_parse): Ditto.
1509 Don't use uninitialized variables.
1510
1511 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
1512 Use `|' operator instead of `^' to set it.
1513 Update all users.
1514
1515 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
1516 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
1517
1518 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
1519 comparison.
1520 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
1521 (TT_Load_Glyph): Remove unused variable.
1522
Werner Lemberg8d463a52007-05-13 16:01:55 +000015232007-05-13 Derek Clegg <dclegg@apple.com>
1524
1525 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
1526 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
1527
David Turner711cf842007-05-11 14:36:24 +000015282007-05-11 David Turner <david@freetype.org>
1529
Werner Lemberg56ceaa42007-05-14 18:53:58 +00001530 * src/cache/ftbasic.c, include/freetype/ftcache.h
1531 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
1532 functions that allow us to look up glyphs using an FTC_Scaler object
1533 to specify the size, making it possible to use fractional pixel
1534 sizes.
1535
1536 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
1537 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +00001538
Werner Lemberg94be20e2007-05-09 20:02:55 +000015392007-05-09 Graham Asher <graham.asher@btinternet.com>
1540
1541 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
1542 (af_latin_metrics_scale_dim): Fix compiler warnings.
1543
Werner Lemberg41271032007-05-06 04:51:48 +000015442007-05-06 Werner Lemberg <wl@gnu.org>
1545
1546 * builds/win32/visualce/freetype.sln: Removed, as requested by
1547 Vincent.
1548
Werner Lembergdf49e692007-05-04 06:30:05 +000015492007-05-04 Vincent RICHOMME <richom.v@free.fr>
1550
1551 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
1552 PC targets.
1553
1554 * docs/CHANGES: Document them.
1555
15562007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +00001557
1558 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
1559 mmap (which might happen on some RTOS). From Savannah patch #5909.
1560
Werner Lemberg106eaf12007-05-03 07:07:47 +000015612007-05-03 Werner Lemberg <wl@gnu.org>
1562
1563 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
1564 * include/freetype/freetype.h (FT_Set_Char_Size): Update
1565 documentation.
1566
Werner Lemberg1b5267d2007-04-28 21:06:15 +000015672007-04-28 Victor Stinner <victor.stinner@inl.fr>
1568
1569 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
1570 `cmap'.
1571
Werner Lembergcc712a22007-04-27 17:16:50 +000015722007-04-27 Werner Lemberg <wl@gnu.org>
1573
1574 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
1575 number of points in contours. Problem reported by Victor Stinner
1576 <victor.stinner@haypocalc.com>.
1577 (TT_Process_Simple_Glyph): Synchronize variable types.
1578
Werner Lemberg45bb18f2007-04-26 06:26:35 +000015792007-04-26 Werner Lemberg <wl@gnu.org>
1580
1581 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
1582 zero in case of error. This fixes Savannah bug #19689.
1583
David Turnera8b45e62007-05-11 14:10:30 +000015842007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
1585
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001586 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
1587 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +00001588
Werner Lembergfcc1f472007-04-10 11:51:50 +000015892007-04-10 Martin Horak <horakm@centrum.cz>
1590
1591 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
1592 Ignore `hhea' table. This fixes Savannah bug #19261.
1593
Werner Lemberg14bf82e2007-04-10 04:09:49 +000015942007-04-09 Werner Lemberg <wl@gnu.org>
1595
Werner Lemberg3b0e5002007-07-03 04:48:19 +00001596
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001597 * Version 2.3.4 released.
1598 =========================
1599
1600
1601 Tag sources with `VER-2-3-4'.
1602
1603 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1604 version number to 2.3.4.
1605
1606 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1607 builds/win32/visualc/freetype.dsp,
1608 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
1609
1610 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
1611
1612 * builds/unix/configure.raw (version_info): Set to 9:15:3.
1613
Werner Lembergf4a52a62007-04-09 08:40:11 +000016142007-04-09 Martin Horak <horakm@centrum.cz>
1615
1616 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
1617 memory stream to avoid a crash with the incremental memory
1618 interface (Savannah bug #19260).
1619
David Turner1dcb4442007-04-06 08:19:04 +000016202007-04-06 David Turner <david@freetype.org>
1621
Werner Lembergc81cf612007-04-06 09:28:23 +00001622 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
1623 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +00001624
Werner Lemberg9f83e052007-04-05 02:28:23 +000016252007-04-04 Werner Lemberg <wl@gnu.org>
1626
Werner Lemberg3b0e5002007-07-03 04:48:19 +00001627
Werner Lemberg9f83e052007-04-05 02:28:23 +00001628 * Version 2.3.3 released.
1629 =========================
1630
1631
1632 Tag sources with `VER-2-3-3'.
1633
1634 * docs/CHANGES: Mention CVE-2007-1351.
1635
David Turner7338ec22007-04-03 14:30:34 +000016362007-04-03 David Turner <david@freetype.org>
1637
1638 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +00001639 if one of the resolution values is 0, treat it as if it were the
1640 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +00001641
David Turnere6472c12007-04-02 13:13:54 +000016422007-04-02 David Turner <david@freetype.org>
1643
Werner Lemberg94f12272007-04-03 07:19:53 +00001644 Add special code to detect `extra-light' fonts and do not snap their
1645 stem widths too much to avoid bizarre hinting effects.
1646
1647 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
1648 `extra_light' members.
1649
1650 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
1651 them.
1652 (af_latin_metrics_scale_dim): Set `extra_light'.
1653 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +00001654
David Turner3f539692007-03-28 14:53:40 +000016552007-03-28 David Turner <david@freetype.org>
1656
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001657 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +00001658 padding.
1659
Werner Lemberga08b2172007-03-28 07:17:17 +000016602007-03-28 Werner Lemberg <wl@gnu.org>
1661
1662 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
1663 gracefully.
1664 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +00001665 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +00001666 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
1667 number of code points in Unicode.
1668
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001669 * 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.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001672 s/232/233/.
1673
1674 * docs/CHANGES: Mention ftdiff.
1675
David Turner3b242d32007-03-26 12:03:04 +000016762007-03-26 David Turner <david@freetype.org>
1677
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001678 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
1679 corresponding code.
1680 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +00001681
Werner Lemberga08b2172007-03-28 07:17:17 +00001682 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001683 computations in order to ignore single-point contours. These are
1684 never rasterized and correspond in certain fonts to mark-attach
1685 points that are very far from the glyph's real outline, ruining the
1686 computation.
David Turnerf58caa02007-03-26 12:39:25 +00001687
Werner Lemberga08b2172007-03-28 07:17:17 +00001688 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +00001689 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +00001690 Otherwise code that uses them will most certainly ruin the fixed
1691 advance property.
David Turner23553d62007-03-26 13:37:17 +00001692
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001693 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
1694 documentation and bump version number to 2.3.3.
1695
1696 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
1697
1698 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +00001699
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000017002007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1701
Werner Lemberg644b1ad2007-03-28 21:17:11 +00001702 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
1703 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001704 * builds/vms/ftconfig.h: Ditto.
1705 * include/freetype/config/ftconfig.h: Ditto.
1706
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000017072007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1708
Werner Lemberg14ffe092007-03-22 06:12:43 +00001709 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
1710 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +00001711 proposed by Sean McBride:
1712 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
1713
17142007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1715
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001716 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
1717 setjmp, proposed by Sean McBride:
1718 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
1719
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000017202007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1721
Werner Lembergc9f6c662007-03-21 13:30:14 +00001722 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
1723 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
1724 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001725
David Turner74c34eb2007-03-18 07:19:31 +000017262007-03-18 David Turner <david@freetype.org>
1727
Werner Lembergc9f6c662007-03-21 13:30:14 +00001728 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
1729 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +00001730
Werner Lembergc9f6c662007-03-21 13:30:14 +00001731 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +00001732
David Turner89020d92007-03-17 17:48:57 +000017332007-03-17 David Turner <david@freetype.org>
1734
Werner Lembergc9f6c662007-03-21 13:30:14 +00001735 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
1736 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +00001737
Werner Lemberg25d592a2007-03-09 07:59:35 +000017382007-03-09 Werner Lemberg <wl@gnu.org>
1739
Werner Lemberg3b0e5002007-07-03 04:48:19 +00001740
Werner Lemberg25d592a2007-03-09 07:59:35 +00001741 * Version 2.3.2 released.
1742 =========================
1743
1744
1745 Tag sources with `VER-2-3-2'.
1746
1747 * builds/win32/visualc/index.html,
1748 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001749 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +00001750 s/231/232/.
1751
David Turner3a51afa2007-03-08 10:50:38 +000017522007-03-08 David Turner <david@freetype.org>
1753
Werner Lemberg25d592a2007-03-09 07:59:35 +00001754 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +00001755
Werner Lemberg25d592a2007-03-09 07:59:35 +00001756 * builds/unix/configure.raw (version_info): Set to 9:13:3.
1757
1758 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
1759
1760 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +00001761
Werner Lemberg1e259de2007-03-08 15:39:21 +00001762 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
1763 function to work properly, over-writing user-provided buffers in
1764 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +00001765
David Turner121cad52007-03-08 16:43:50 +00001766
Werner Lemberg3d92f082007-03-06 11:59:24 +000017672007-03-05 Werner Lemberg <wl@gnu.org>
1768
1769 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
1770 macro for `strstr'.
1771
1772 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
1773 `trick_names', as suggested by Ivan Nincic.
1774
David Turner085bc6e2007-03-05 17:40:03 +000017752007-03-05 David Turner <david@freetype.org>
1776
Werner Lembergd112cf02007-03-06 12:06:56 +00001777 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
1778 case FT_Init_FreeType fails for some reason. Problem reported by
1779 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +00001780
Werner Lembergd112cf02007-03-06 12:06:56 +00001781 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
1782 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
1783 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
1784 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +00001785
Werner Lembergd112cf02007-03-06 12:06:56 +00001786 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
1787 signed values, not unsigned ones. Problem reported by Johannes
1788 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +00001789
David Turner601aefe2007-02-21 16:47:49 +000017902007-02-21 David Turner <david@freetype.org>
1791
Werner Lembergde5e6862007-02-25 21:06:43 +00001792 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
1793 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +00001794
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +000017952007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1796
1797 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
1798 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
1799 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
1800
Werner Lemberga0915172007-02-16 08:12:50 +000018012007-02-16 Werner Lemberg <wl@gnu.org>
1802
1803 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
1804 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
1805
David Turner2c4500e2007-02-14 15:08:47 +000018062007-02-14 David Turner <david@freetype.org>
1807
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00001808 It seems that the following changes fix most of the known
1809 interpreter problems with my fonts, but more testing is needed,
1810 though.
1811
1812 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
1813 (TT_MulFix14): Rewrite.
1814 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
1815 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +00001816
Werner Lembergc6a14082007-02-12 22:08:15 +000018172007-02-12 Werner Lemberg <wl@gnu.org>
1818
1819 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
1820 warnings.
1821
1822 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
1823 (bdf_interpret_style): Ditto.
1824
David Turnerc0f9c4a2007-02-12 14:55:03 +000018252007-02-12 David Turner <david@freetype.org>
1826
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00001827 Simplify projection and dual-projection code interface.
1828
Werner Lemberg406d25f2007-02-12 22:01:18 +00001829 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
1830 FT_Vector' as argument type.
1831 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
1832 Updated.
1833 (CUR_fast_project, CUR_fast_dualproj): New macros.
1834 (Project, Dual_Project, Project_x, Project_y): Updated.
1835 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
1836 macros.
1837
1838
1839 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
1840 adjustments for the non-light auto-hinted modes. Gets rid of
1841 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +00001842
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00001843 * src/autofit/aflatin.c (af_latin_hints_link_segments,
1844 af_latin_hints_compute_edges): Slight optimization of the segment
1845 linker and better handling of serif segments to get rid of broken
1846 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +00001847
David Turnerc0f9c4a2007-02-12 14:55:03 +00001848
Werner Lemberg442bfb82007-02-12 21:44:10 +00001849 Introduce new string functions and the corresponding macros to get
1850 rid of various uses of strcpy and other `evil' functions, as well as
1851 to simplify a few things.
1852
1853 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
1854 ft_mem_strcpyn): New declarations.
1855 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
1856 macros.
1857 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
1858 functions.
1859
1860 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
1861 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
1862 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
1863 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
1864 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
1865 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
1866 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
1867 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +00001868
Werner Lemberg406d25f2007-02-12 22:01:18 +00001869 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
1870
Werner Lemberg582067d2007-02-11 15:03:05 +000018712007-02-11 Werner Lemberg <wl@gnu.org>
1872
1873 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
1874 non-spacing glyphs.
1875
Werner Lemberg8f474532007-02-07 08:31:01 +000018762007-02-07 Tom Parker <palfrey@tevp.net>
1877
1878 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
1879 pointer.
1880
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000018812007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1882
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00001883 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
1884 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +00001885 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00001886 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
1887 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
1888 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
1889 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +00001890
1891 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
1892 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00001893 * builds/mac/ftmac.c: Ditto.
1894
18952007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1896
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00001897 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +00001898 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00001899 #include <ftmac.c>.
1900
19012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1902
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +00001903 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
1904 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
1905 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
1906 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
1907 FT_GetFilePath_From_Mac_ATS_Name.
1908 * builds/mac/ftmac.c: Ditto.
1909
19102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1911
Werner Lembergdcbb7082007-02-08 08:54:09 +00001912 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +00001913 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
1914 for passing to FT_New_Face_From_FSSpec.
1915
19162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1917
Werner Lembergdcbb7082007-02-08 08:54:09 +00001918 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001919 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +00001920
1921 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
1922 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001923 * builds/mac/ftmac.c (OS_INLINE): Ditto.
1924
Werner Lemberg313d7772007-02-01 08:10:45 +000019252007-02-01 Werner Lemberg <wl@gnu.org>
1926
1927 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
1928 Explain why applications shouldn't use it. Found by Alexei.
1929
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000019302007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001931
1932 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
1933 message.
1934
1935 * src/gxvalid/gxvmort1.c
1936 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
1937 message.
1938
Werner Lemberg53935932007-01-31 08:53:02 +000019392007-01-31 Werner Lemberg <wl@gnu.org>
1940
1941
1942 * Version 2.3.1 released.
1943 =========================
1944
1945
1946 Tag sources with `VER-2-3-1-FINAL'.
1947
1948 * builds/win32/visualc/freetype.dsp,
1949 builds/win32/visualc/freetype.vcproj: s/230/231/.
1950 * builds/win32/visualc/index.html: s/221/231/.
1951
1952 * vms_make.com: Add `ftgasp'.
1953
David Turnera7ee6082007-01-30 10:33:53 +000019542007-01-30 David Turner <david@freetype.org>
1955
Werner Lemberg53935932007-01-31 08:53:02 +00001956 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +00001957
Werner Lemberg53935932007-01-31 08:53:02 +00001958 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +00001959
Werner Lemberg25d592a2007-03-09 07:59:35 +00001960 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +00001961 s/2.3.0/2.3.1/.
1962
1963 * builds/unix/configure.raw (version_info): Set to 9:12:3.
1964
1965
1966 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
1967 (af_loader_load_g): Disable the warper (i.e., the light hinting
1968 improvements) to make a 2.3.1 bugfix release before introducing a
1969 new feature. This should give us more time to tune and improve the
1970 warper for the next release.
1971
1972 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +00001973
David Turnerd91eebd2007-01-26 15:05:41 +000019742007-01-25 David Turner <david@freetype.org>
1975
Werner Lembergbf241762007-01-26 16:08:49 +00001976 For light auto-hinting, improve glyph advance widths and resurrect
1977 normal/full hinting to its normal quality.
1978
1979 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
1980 and `xmax_delta'.
1981 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
1982 and `xmax_delta'.
1983
1984 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
1985 preprocessor conditional with if-clause, handling both light and
1986 normal mode.
1987
1988 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
1989 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00001990
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000019912007-01-25 Werner Lemberg <wl@gnu.org>
1992
1993 * docs/release: Updated -- Savannah uses a new uploading scheme.
1994
David Turnera42567b2007-01-25 12:23:37 +000019952007-01-25 David Turner <david@freetype.org>
1996
Werner Lembergd7855662007-01-25 13:53:56 +00001997 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00001998
Werner Lembergd7855662007-01-25 13:53:56 +00001999 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
2000 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
2001 functions.
David Turnera42567b2007-01-25 12:23:37 +00002002
Werner Lembergd7855662007-01-25 13:53:56 +00002003 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00002004
Werner Lembergb1be9e82007-01-25 11:50:00 +000020052007-01-25 Werner Lemberg <wl@gnu.org>
2006
2007 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00002008 correctly in a sanity check. Since this function is only used to
2009 load local and global functions, any charstring that called the last
2010 local/global function would fail otherwise. This fixes Savannah bug
2011 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00002012
2013 * docs/CHANGES: Document it.
2014
David Turnerb6de8d12007-01-23 15:51:50 +000020152007-01-23 David Turner <david@freetype.org>
2016
Werner Lembergb1be9e82007-01-25 11:50:00 +00002017 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
2018 prevented compilation when disabling both the unpatented and the
2019 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00002020
Werner Lembergb1be9e82007-01-25 11:50:00 +00002021
2022 Fix and enable the warper to improve `light' hinting mode. This is
2023 not necessarily a final version, but it seems to work well.
2024
2025 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
2026 Disable code.
2027 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
2028 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
2029
2030 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
2031 (af_warper_compute_line_best): Fix array size of `scores'.
2032 (af_warper_compute): Better handling of border cases.
2033 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
2034 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00002035
Werner Lemberg011d1112007-01-21 09:36:00 +000020362007-01-21 Werner Lemberg <wl@gnu.org>
2037
Werner Lemberg42b63b22007-01-21 21:01:33 +00002038 * ChangeLog: Split off older entries into...
2039 * ChangeLog.22: This new file.
2040
20412007-01-21 Werner Lemberg <wl@gnu.org>
2042
Werner Lemberg555258f2007-01-21 09:46:37 +00002043 * docs/CHANGES: Document SHZ fix.
2044
20452007-01-21 George Williams <gww@silcom.com>
2046
2047 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
2048 points.
2049
20502007-01-21 Werner Lemberg <wl@gnu.org>
2051
Werner Lemberg011d1112007-01-21 09:36:00 +00002052 * src/sfnt/ttmtx.c (tt_face_get_metrics)
2053 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
2054
Werner Lemberg87a5a432007-01-17 12:44:39 +000020552007-01-17 Werner Lemberg <wl@gnu.org>
2056
Werner Lembergb8003292007-01-17 12:56:25 +00002057
2058 * Version 2.3.0 released.
2059 =========================
2060
2061
2062 Tag sources with `VER-2-3-0-FINAL'.
2063
20642007-01-17 Werner Lemberg <wl@gnu.org>
2065
Werner Lemberg87a5a432007-01-17 12:44:39 +00002066 * docs/release: Updated.
2067
David Turner22122722007-01-16 20:06:44 +000020682007-01-16 David Turner <david@freetype.org>
2069
Werner Lemberg87a5a432007-01-17 12:44:39 +00002070 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
2071 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
2072 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
2073 warnings.
David Turner22122722007-01-16 20:06:44 +00002074
Werner Lemberg267e1d72007-01-15 07:48:09 +000020752007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
2076
2077 * builds/amiga/makefile, builds/amiga/makefile.os4,
2078 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
2079
2080 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
2081
Werner Lemberg8c4120d2007-01-15 06:42:40 +000020822007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
2083
2084 Fix various compiler warnings.
2085
2086 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
2087 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
2088 s/index/strike_index/.
2089 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
2090
2091 * src/gxvalid/gxvmorx5.c
2092 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
2093
2094 * src/truetype/ttinterp.c (Compute_Point_Displacement),
2095 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
2096 uninitialized variables.
2097
Werner Lemberg6164a9d2007-01-13 23:01:36 +000020982007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2099
2100 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
2101
Werner Lemberg281c1482007-01-13 22:50:51 +000021022007-01-13 Werner Lemberg <wl@gnu.org>
2103
2104 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
2105 versions up to 0x3FF without complaining.
2106
Werner Lembergac250b22007-01-13 14:01:36 +000021072007-01-13 Derek Clegg <dclegg@apple.com>
2108
2109 Add FT_Get_PS_Font_Info interface to CFF driver.
2110
2111 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
2112 (CFF_FontRec): Add `font_info' field.
2113
2114 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
2115 (cff_font_done): Free font->font_info if necessary.
2116
2117 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
2118 (cff_service_ps_info): Register cff_ps_get_font_info.
2119
Werner Lemberg23df31a2007-01-13 08:45:00 +000021202007-01-13 Werner Lemberg <wl@gnu.org>
2121
2122 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
2123 with C++ compiler.
2124
2125 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
2126 af_glyph_hints_dump_edges): Ditto.
2127
2128 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
2129 `modules.cfg').
2130
2131 * src/sfnt/ttsbit0.h: Remove.
2132
2133 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
2134
Werner Lemberg27cf9de2007-01-13 07:34:23 +000021352007-01-12 David Turner <david@freetype.org>
2136
2137 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
2138 bug in the bitmap emboldener if the pitch of the source bitmap is
2139 much larger than its width.
2140
2141 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
2142 compilation warning.
2143
Werner Lemberg6d96d312007-01-12 10:30:19 +000021442007-01-12 Werner Lemberg <wl@gnu.org>
2145
2146 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
2147 `automake' CVS module from sources.redhat.com.
2148
Werner Lemberg17432b52007-01-12 09:28:44 +000021492007-01-11 Werner Lemberg <wl@gnu.org>
2150
2151 * src/type1/t1load.c (is_space): Removed.
2152 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
2153 (parse_charstrings): Use IS_PS_TOKEN.
2154
2155
2156 * autogen.sh: Avoid bash specific syntax.
2157
David Turner038ace22007-01-11 15:00:59 +000021582007-01-11 David Turner <david@freetype.org>
2159
Werner Lemberg17432b52007-01-12 09:28:44 +00002160 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00002161
Werner Lemberg17432b52007-01-12 09:28:44 +00002162 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00002163
Werner Lemberg17432b52007-01-12 09:28:44 +00002164 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
2165 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00002166 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00002167
Werner Lemberg17432b52007-01-12 09:28:44 +00002168 * autogen.sh: Small fix to get it working on Mac OS X properly:
2169 The issue is that GNU libtool is called `glibtool' on this platform,
2170 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00002171
David Turner2628ea92007-01-10 13:15:56 +000021722007-01-10 David Turner <david@freetype.org>
2173
Werner Lemberg17432b52007-01-12 09:28:44 +00002174 * all-sources: Tag all sources with VER-2-3-0-RC1 and
2175 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00002176
Werner Lemberg17432b52007-01-12 09:28:44 +00002177 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
2178 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
2179 version number to 2.3.0.
2180
2181 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
2182 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00002183
2184 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00002185 include/freetype/ftlcdfil.h: Update reference documentation with
2186 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00002187
Werner Lemberg17432b52007-01-12 09:28:44 +00002188 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
2189 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00002190
Werner Lembergbf02d392007-01-10 07:07:37 +000021912007-01-10 Derek Clegg <dclegg@apple.com>
2192
2193 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
2194 values.
2195
David Turnerf48b60e2007-01-08 15:15:32 +000021962007-01-08 David Turner <david@freetype.org>
2197
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002198 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00002199
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002200 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
2201 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00002202 corresponding to a given character pixel size.
2203
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002204 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
2205 `gasp' table, in order to avoid potential problems with later
2206 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00002207
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002208 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
2209 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00002210
Werner Lembergcc7f12a2007-01-09 10:37:36 +00002211 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
2212 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
2213 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
2214 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00002215
Werner Lemberge6b6f372007-01-07 00:06:47 +000022162007-01-07 Werner Lemberg <wl@gnu.org>
2217
Werner Lembergb8004d22007-01-07 09:13:38 +00002218 * src/cid/cidparse.c (cid_parser_new): Improve error message for
2219 Type 11 fonts.
2220 Scan for `/sfnts' token.
2221
22222007-01-07 Werner Lemberg <wl@gnu.org>
2223
2224 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00002225
Werner Lembergbe5f7972007-01-06 07:51:48 +000022262007-01-06 Werner Lemberg <wl@gnu.org>
2227
2228 * src/cff/cffload.c (cff_index_init): Remove unused variable.
2229 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
2230
David Turnera8cf42b2007-01-04 16:46:46 +000022312007-01-04 David Turner <david@freetype.org>
2232
Werner Lembergf6294392007-01-06 07:47:45 +00002233 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
2234 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00002235
Werner Lembergf6294392007-01-06 07:47:45 +00002236
2237 Do not allocate interpreter-specific tables in memory if we are not
2238 going to load glyphs with the bytecode interpreter anyway.
2239
2240 * src/truetype/ttgload.c (tt_loader_init): Load execution context
2241 only if glyph is hinted.
2242 Updated.
2243 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
2244 and `cvs_ready'.
2245 Add `tt_size_ready_bytecode' declaration.
2246 * src/truetype/ttobjs.c (tt_size_done_bytecode,
2247 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
2248 (tt_size_init): Move most code into `tt_size_init_bytecode'.
2249 (tt_size_done): Move most code into `tt_size_done_bytecode'.
2250 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00002251
David Turner91a34022007-01-05 14:47:08 +00002252
Werner Lembergf6294392007-01-06 07:47:45 +00002253 Don't extract the metrics table from the SFNT font file. Instead,
2254 reparse it on each glyph load. The runtime difference is not
2255 noticeable, and it can save a lot of heap memory when memory-mapped
2256 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00002257
Werner Lembergf6294392007-01-06 07:47:45 +00002258 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
2259 `horz_metrics_offset' and `vert_metrics_ofset'.
2260 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
2261 Updated.
2262
2263
2264 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
2265
2266
2267 Do not load the CFF index offsets into memory, since this wastes a
2268 *lot* of heap memory with large Asian CFF fonts. There is no
2269 significant performance loss.
2270
2271 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
2272 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
2273 `data_size'.
2274 (CFF_CharsetRec): Add field `num_glyphs'.
2275
2276 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
2277 cff_charset_cid_to_gindex): New functions.
2278 (cff_new_index): Renamed to...
2279 (cff_index_init): This. Update all callers.
2280 Updated -- some code has been moved to `cff_index_load_offsets'.
2281 (cff_done_index): Renamed to...
2282 (cff_index_done): This. Update all callers.
2283 (cff_index_get_pointers, cff_index_access_element): Updated to use
2284 stream offsets.
2285 (cff_charset_compute_cids): Set `num_glyphs' field.
2286 (cff_encoding_load): Updated.
2287
2288 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00002289
22902007-01-04 David Turner <david@freetype.org>
2291
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002292 * docs/INSTALL.UNIX: Simplify some parts, add reference to
2293 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00002294
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002295 * README.CVS: Add common problem description and solution
2296 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00002297
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002298 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00002299
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002300 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00002301
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002302 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00002303
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002304 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
2305 (TWorker): This.
2306 Remove `count_table' and `memory'.
2307 Make `grays' a pointer.
2308 (TRaster): New structure.
2309 (count_table): New static array.
2310 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
2311 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
2312 ft_black_set_mode, ft_black_render): Updated.
2313 (ft_black_init): Don't initialize `count_table'.
2314 (ft_black_reset): Use the render pool. This saves about 6KB of
2315 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00002316
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002317 * src/smooth/ftgrays.c (TRaster): Replaced with...
2318 (TWorker): This.
2319 Remove `memory'.
2320 (TRaster): New structure.
2321
2322 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
2323 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
2324 gray_render_span, gray_raster_render): Updated.
2325 (gray_raster_reset): Use the render pool. This saves about 6KB of
2326 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00002327
David Turner8a6c44e2007-01-04 17:03:11 +00002328 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
2329 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002330 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
2331 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
2332 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00002333
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002334 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
2335 Remove a typo that results in no hinting and a memory leak with some
2336 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00002337
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002338 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00002339 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00002340 CFF_Faces in it. We need to close all faces before destroying the
2341 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00002342
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000023432007-01-02 Werner Lemberg <wl@gnu.org>
2344
2345 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
2346 Remove compiler warning.
2347
David Turner9207e002007-01-02 16:58:13 +000023482007-01-02 David Turner <david@freetype.org>
2349
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002350 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00002351
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000023522006-12-31 Masatake YAMATO <jet@gyve.org>
2353
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002354 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
2355 function.
2356 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00002357 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00002358 `gxv_kern_subtable_fmt0_pairs_validate'.
2359
David Turner115b4422006-12-22 11:37:05 +000023602006-12-22 David Turner <david@freetype.org>
2361
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002362 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
2363 warnings.
David Turner115b4422006-12-22 11:37:05 +00002364
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002365 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
2366 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00002367
Werner Lemberg4755bf72006-12-16 08:58:44 +000023682006-12-16 Anders Kaseorg <anders@kaseorg.com>
2369
2370 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
2371 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
2372
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000023732006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2374
Werner Lemberg9b774e22007-01-16 06:11:27 +00002375 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00002376 sync with the modification by Jens Claudius on 2006-08-22; cf.
2377 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 +00002378
23792006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2380
2381 * src/base/ftmac.c: Specialized for Mac OS X only.
2382 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
2383 * builds/unix/configure.raw: Ditto. When explicit switches for
2384 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
2385 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
2386
23872006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2388
2389 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
2390 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
2391 instead of src/base/ftmac.c
2392 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
2393 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
2394 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
2395 that cannot be built at present.
2396
23972006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2398
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00002399 * src/base/ftobjs.c: Improvement of resource fork handler for
2400 POSIX, cf.
2401 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00002402 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
2403 format or .dfont, to simulate the face index number counted by ftmac.c.
2404 (IsMacResource): Return the number of scalable faces correctly.
2405
Werner Lembergec5b4502006-12-10 07:51:38 +000024062006-12-10 Werner Lemberg <wl@gnu.org>
2407
2408 * builds/toplevel.mk (version): Protect against `distclean' target.
2409
Werner Lembergb26b3142006-12-09 20:01:43 +000024102006-12-09 Werner Lemberg <wl@gnu.org>
2411
2412 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
2413 or `type'.
2414
2415 * builds/freetype.mk (version): Extracted from freetype.h, using
2416 GNU make's built-in string functions.
2417 (refdoc): Use $(version) instead of static version number.
2418
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000024192006-12-08 Werner Lemberg <wl@gnu.org>
2420
2421 * builds/toplevel.mk (dist): Extract version number from freetype.h.
2422
Werner Lemberg15c29502006-12-09 07:29:54 +000024232006-12-08 Vladimir Volovich <vvv@vsu.ru>
2424
2425 * src/tools/apinames (State): Remove final comma in structure -- xlc
2426 v5 under AIX 4.3 doesn't like this.
2427
David Turnerdbf3b432006-12-07 21:18:09 +000024282006-12-07 David Turner <david@freetype.org>
2429
Werner Lemberg256a3512006-12-08 06:49:33 +00002430 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
2431 to the spacing of auto-fitted glyphs. This only impacts rare
2432 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00002433
Werner Lemberg11171312006-12-03 09:43:40 +000024342006-12-03 Werner Lemberg <wl@gnu.org>
2435
2436 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
2437
Werner Lemberg960ba592006-12-01 08:20:47 +000024382006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00002439
Werner Lemberg960ba592006-12-01 08:20:47 +00002440 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
2441 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
2442 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00002443
David Turner80658e52006-11-28 08:09:20 +00002444
Werner Lemberg960ba592006-12-01 08:20:47 +00002445 * include/freetype/ftxf86.h: Fix and extend comment so that it
2446 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00002447
Werner Lemberg960ba592006-12-01 08:20:47 +00002448 * include/freetype/ftchapters.h: Add `font_format' section.
2449
2450
2451 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
2452 to TOC in index page.
2453
24542006-11-28 David Turner <david@freetype.org>
2455
2456 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
2457 trying to render into a zero-width/height bitmap, not an error code.
2458
2459 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
2460
2461 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
2462 ones instead.
2463
2464 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
2465 variable.
David Turner80658e52006-11-28 08:09:20 +00002466
Werner Lemberg8636c292006-11-26 22:28:13 +000024672006-11-26 Pierre Hanser <hanser@club-internet.fr>
2468
2469 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
2470
Werner Lemberg960ba592006-12-01 08:20:47 +000024712006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00002472
Werner Lemberg960ba592006-12-01 08:20:47 +00002473 * src/autofit/afhints.c (af_glyph_hints_dump_points,
2474 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
2475 Add stubs to link the `ftgrid' test program when debugging is
2476 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00002477
Werner Lemberg960ba592006-12-01 08:20:47 +000024782006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00002479
2480 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00002481 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
2482
2483 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
2484 Emit more sensible information.
2485
2486 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
2487
2488 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
2489 rounding of blue values.
2490 (af_latin_hints_compute_segments): Hint segment heights.
2491 (af_latin_hints_link_segments): Reduce `len_score' value.
2492 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
2493 value and use `height' member for comparisons.
2494 (af_latin_hint_edges): Extend logging message.
2495 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00002496
Werner Lemberg91959bf2006-11-22 10:36:55 +000024972006-11-22 Werner Lemberg <wl@gnu.org>
2498
2499 Fix Savannah bug #15553.
2500
2501 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
2502 program after a change from mono to grayscaling (and vice versa).
2503 Use correct constant for comparison to get `exec->grayscale'.
2504
Werner Lemberg913a3652006-11-19 09:19:17 +000025052006-11-18 Werner Lemberg <wl@gnu.org>
2506
2507 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00002508 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00002509 This patch fixes Savannah bug #18301.
2510
2511 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
2512 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
2513 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
2514 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
2515 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
2516 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
2517 (FNT_Load_Glyph): Check validity of `glyph_index'.
2518
David Turner7bab6ae2006-11-13 11:25:06 +000025192006-11-13 David Turner <david@freetype.org>
2520
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002521 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
2522 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00002523
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002524 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
2525 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
2526 when building the library to change the default LCD filter to be
2527 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00002528
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002529 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00002530
David Turner8765c712006-11-10 16:49:42 +000025312006-11-10 David Turner <david@freetype.org>
2532
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002533 * src/smooth/ftsmooth.c: API change for the LCD
2534 filter. The FT_LcdFilter value is an enumeration describing which
2535 filter to apply, with new values FT_LCD_FILTER_LIGHT and
2536 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
2537 algorithm which produces strong color fringes for everything
2538 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00002539
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00002540 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
2541 second parameter to an enum type.
2542
2543 * src/base/ftlcdfil.c (USE_LEGACY): Define.
2544 (_ft_lcd_filter): Rename to...
2545 (_ft_lcd_filter_fir): This.
2546 Update parameters.
2547 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
2548 (FT_Library_Set_LcdFilter): Update parameters.
2549 Handle new filter modes.
2550
2551 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
2552 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
2553 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
2554 callback and update other fields.
2555
2556 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
2557 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
2558 Other minor improvements.
2559
2560 * src/autofit/aflatin.c: Various tiny improvements that drastically
2561 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
2562 (af_latin_hints_compute_edges): Fix typo.
2563 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00002564
David Turner4e9cc3c2006-11-09 16:31:52 +000025652006-11-09 David Turner <david@freetype.org>
2566
Werner Lemberg49c77a82006-11-09 21:51:57 +00002567 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
2568 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00002569
Werner Lemberg5e430892006-11-07 09:35:03 +000025702006-11-07 Zhe Su <james.su@gmail.com>
2571
2572 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
2573 also.
2574
Werner Lemberg111b5ae2006-11-03 09:40:12 +000025752006-11-03 Werner Lemberg <wl@gnu.org>
2576
2577 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
2578
David Turner40604742006-11-02 16:37:35 +000025792006-11-02 David Turner <david@freetype.org>
2580
Werner Lemberg111b5ae2006-11-03 09:40:12 +00002581 Add a few tweaks to better handle serif fonts.
2582 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00002583
Werner Lemberg111b5ae2006-11-03 09:40:12 +00002584 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
2585 segments that are less than 1.5 pixels high. This gets rid of
2586 *many* corner cases with serifs.
2587 (af_latin_align_linked_edge): Add logging message.
2588 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
2589 Add logging messages.
2590 Handle AF_EDGE_FLAG flag specially.
2591
2592 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
2593 _af_debug_disable_blue_hints, and _af_debug_hints variables.
2594
2595 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
2596 Update external declarations.
2597 (af_corner_orientation, af_corner_is_flat): Replaced by...
2598
2599 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
2600 ft_corner_is_flat): These declarations.
2601
2602 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
2603 Comment out. Replaced by...
2604
2605 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
2606 These functions. Update all callers.
2607 (FT_Add64) [!FT_LONG64]: Simplify.
2608
2609 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
2610 (af_direction_compute): Add a missing FT_ABS call. This bug caused
2611 production of garbage by missing lots of segments.
2612
2613 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
2614
2615 * src/autofit/afloader.c (af_loader_init, af_loader_done)
2616 [AF_DEBUG]: Set _af_debug_hints.
2617
2618
2619 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
2620 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
2621 and ft_corner_orientation.
2622
2623
2624 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00002625
Werner Lemberge88c5262006-10-24 05:46:26 +000026262006-10-24 Werner Lemberg <wl@gnu.org>
2627
2628 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
2629
2630 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
2631 as argument.
2632
David Turnera1861392006-10-23 16:00:59 +000026332006-10-23 Zhe Su <zsu@novell.com>
2634
Werner Lemberg715e96e2006-10-24 05:28:45 +00002635 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
2636 better deal with broken Asian fonts with strange glyphs, having
2637 self-intersections and other peculiarities. The used algorithm is
2638 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00002639
David Turnere140f142006-10-23 08:56:57 +000026402006-10-23 David Turner <david@freetype.org>
2641
Werner Lemberg715e96e2006-10-24 05:28:45 +00002642 Speed up the CFF font loader. With some large CFF fonts,
2643 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00002644
Werner Lemberg715e96e2006-10-24 05:28:45 +00002645 * src/cff/cffload.c (cff_get_offset): Removed.
2646 (cff_new_index): Inline functionality of `cff_get_offset'.
2647 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
2648 (cff_charset_done): Call `cff_charset_free_cids'.
2649 (cff_charset_load): Call `cff_charset_compute_cids'.
2650 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
2651
2652 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
2653 with FT_NEXT_XXX.
2654
2655
2656 Speed up the Postscript hinter, with more than 100% speed increase
2657 on my machine.
2658
2659 * src/pshinter/pshalgo.c (psh_corner_is_flat,
2660 psh_corner_orientation): New functions.
2661 (psh_glyph_compute_inflections): Merge loops for efficiency.
2662 Use `psh_corner_orientation'.
2663 (psh_glyph_init): Use `psh_corner_is_flat'.
2664 (psh_hint_table_find_strong_point): Renamed to...
2665 (psh_hint_table_find_strong_points): This.
2666 Rewrite, adding argument to handle all points at once.
2667 Update all callers.
2668 (PSH_MAX_STRONG_INTERNAL): New macro.
2669 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00002670
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000026712006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2672
2673 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00002674 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00002675
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000026762006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2677
2678 * docs/INSTALL.CROSS: New document file for cross-building.
2679
2680 * builds/unix/configure.raw: Preliminary cross-building support.
2681 Find native C compiler and pass it by CC_BUILD, and
2682 find suffix for native executable and pass it by EXEEXT_BUILD.
2683 Also suffix for target executable is passed by EXEEXT.
2684
Werner Lembergb9e6d692006-10-15 08:58:40 +00002685 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
2686 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00002687 CC_BUILD and EXEEXT_BUILD.
2688
Werner Lembergb9e6d692006-10-15 08:58:40 +00002689 * builds/exports.mk (APINAMES_EXE): Change the extension for
2690 apinames from the suffix for target (E) to that for building host
2691 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00002692
Werner Lemberg82a07e92006-10-12 06:20:44 +000026932006-10-12 Werner Lemberg <wl@gnu.org>
2694
2695 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
2696 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
2697 which reference those files.
2698
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000026992006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2700
Werner Lembergb9e6d692006-10-15 08:58:40 +00002701 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
2702 embedded in freetype2.pc and freetype-config. Use it to record
2703 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00002704
2705 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
2706
2707 * builds/unix/freetype-config.in: Ditto.
2708
Werner Lemberg28e17d92006-10-11 17:27:47 +000027092006-10-11 Werner Lemberg <wl@gnu.org>
2710
2711 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
2712 development.
2713
Jens Claudius336d2292006-10-03 08:53:37 +000027142006-10-03 Jens Claudius <jens.claudius@yahoo.com>
2715
2716 * include/freetype/config/ftstdlib.h: Cast away volatileness from
2717 argument to ft_setjmp.
2718
2719 * include/freetype/internal/ftvalid.h: Add comment that
2720 ft_validator_run must not be used.
2721
Werner Lemberg2863cfa2006-10-01 17:04:00 +000027222006-10-01 Werner Lemberg <wl@gnu.org>
2723
2724 * src/base/ftbase.c: Undo change from 2006-09-30.
2725
2726 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
2727
27282006-09-30 David Turner <david@freetype.org>
2729
Werner Lemberg046bf8b2006-10-03 08:43:42 +00002730 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
2731 s/unpatented_hinting/ignore_unpatented_hinter/.
2732 Update all callers.
2733
2734 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
2735 auto-hinting shall be used or not.
2736
2737 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00002738
Werner Lemberg2863cfa2006-10-01 17:04:00 +000027392006-09-30 Werner Lemberg <wl@gnu.org>
2740
Werner Lemberg1e4402e2006-09-29 22:10:36 +00002741 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
2742 in use).
2743
2744 * src/base/ftbase.c: Include `ftlcdfil.c'.
2745
Werner Lemberg9b15ea32006-09-29 18:22:11 +000027462006-09-29 Werner Lemberg <wl@gnu.org>
2747
2748 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
2749 overlapping segments. Bug reported by Stefan Koch.
2750
David Turnerad830712006-09-27 16:20:59 +000027512006-09-28 David Turner <david@freetype.org>
2752
Werner Lemberg2c002e12006-09-29 21:31:53 +00002753 Fix a bug in the automatic unpatented hinting support which prevents
2754 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00002755
Werner Lemberg2c002e12006-09-29 21:31:53 +00002756 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
2757 s/force_autohint/unpatented_hinting/. Update all callers.
2758
2759 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
2760
2761 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00002762
David Turner8a317cf2006-09-27 07:52:48 +000027632006-09-27 David Turner <david@freetype.org>
2764
Werner Lemberg2c002e12006-09-29 21:31:53 +00002765 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00002766
David Turner8a317cf2006-09-27 07:52:48 +00002767
David Turnere140f142006-10-23 08:56:57 +00002768 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00002769 In a default build, the function `FT_Library_SetLcdFilter' returns
2770 `FT_Err_Unimplemented_Feature'; you need to #define
2771 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
2772 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00002773
Werner Lemberg2c002e12006-09-29 21:31:53 +00002774 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00002775
Werner Lemberg2c002e12006-09-29 21:31:53 +00002776 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
2777 typedef.
2778 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
2779 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00002780
Werner Lemberg2c002e12006-09-29 21:31:53 +00002781 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
2782 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00002783
Werner Lemberg2c002e12006-09-29 21:31:53 +00002784 Handle subpixel rendering.
2785 Simplify function.
2786 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
2787 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
2788
2789 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
2790 pointing to <freetype/ftlcdfil.h>.
2791
2792 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
2793 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
2794
2795 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00002796
Werner Lemberge20df4a2006-09-27 06:29:21 +000027972006-09-26 David Bustin
2798
2799 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
2800 correctly. Reported as Savannah bug #17843.
2801
David Turner6f8c6222006-09-26 15:42:44 +000028022006-09-26 David Turner <david@freetype.org>
2803
Werner Lemberg110246c2006-09-26 21:55:44 +00002804 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
2805 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
2806 horizontal and vertical hinting for the purpose of debugging the
2807 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00002808
Werner Lemberg110246c2006-09-26 21:55:44 +00002809 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
2810 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00002811
Werner Lemberg110246c2006-09-26 21:55:44 +00002812 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
2813
2814 * include/freetype/config/ftoption.h, devel/ftoption.h
2815 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
2816 we want to compile LCD-optimized rendering code (à la ClearType) or
2817 not. The macro *must* be disabled in default builds of the library
2818 for patent reasons.
2819
2820 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
2821 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
2822 isn't defined at compile time. This only changes the content of the
2823 rendered glyph to match the one of normal gray-level rendering,
2824 hence clients should not need to be modified.
2825
2826 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00002827
Werner Lemberg745ff2c2006-09-19 05:48:02 +000028282006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
2829
2830 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
2831 LWFN fails and both are available.
2832
David Turnerf3050052006-09-11 12:00:32 +000028332006-09-11 David Turner <david@freetype.org>
2834
Werner Lembergf9644552006-09-12 13:48:10 +00002835 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
2836 report their English names through an Apple Roman
2837 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00002838
Werner Lembergf9644552006-09-12 13:48:10 +00002839 If the font uses another name entry with language_id == English, it
2840 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00002841
Werner Lembergf9644552006-09-12 13:48:10 +00002842 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
2843 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00002844
Werner Lemberg36d2eab2006-09-05 19:24:34 +000028452006-09-05 Werner Lemberg <wl@gnu.org>
2846
2847 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00002848 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00002849 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
2850 `HAN NOM B.ttf').
2851
2852 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
2853
David Turner772e55d2006-09-05 09:45:15 +000028542006-09-05 David Turner <david@freetype.org>
2855
Werner Lemberg36d2eab2006-09-05 19:24:34 +00002856 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00002857
Werner Lemberg36d2eab2006-09-05 19:24:34 +00002858 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
2859 (TRaster): Remove `count_ex' and `count_ey'.
2860 (gray_find_cell): Remove 2nd and 3rd argument.
2861 (gray_alloc_cell): Merged with `gray_find_cell'.
2862 (gray_record_cell): Simplify.
2863 (gray_set_cell): Rewrite.
2864 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
2865 (gray_render_span): Don't use FT_MEM_SET for small values.
2866 (gray_dump_cells) [DEBUG_GRAYS]: New function.
2867 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
2868 bitmap scanline.
2869 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00002870
David Turneraa557a92006-09-04 16:42:44 +000028712006-09-04 David Turner <david@freetype.org>
2872
Werner Lembergd1fc7d42006-09-05 07:55:42 +00002873 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
2874 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00002875
Werner Lemberg2d8629b2006-09-03 06:18:45 +000028762006-09-03 Werner Lemberg <wl@gnu.org>
2877
2878 * devel/ftoption.h: Synchronize with
2879 include/freetype/config/ftoption.h.
2880
2881 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
2882 variable declaration.
2883 (gray_convert_glyph): Fix compiler warnings.
2884
David Turner6d79f212006-09-01 14:09:35 +000028852006-09-01 David Turner <david@freetype.org>
2886
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002887 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
2888 to recognize a few fonts that require the automatic unpatented
2889 loader.
David Turnerbd502952006-09-01 19:05:24 +00002890
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002891 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
2892 rasterizer. The speed improvement is between 15% and 25%, depending
2893 on the font data.
2894
2895 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
2896 (TCell): Redefine.
2897 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
2898 (gray_init_cells): Updated.
2899 (gray_find_cell, gray_alloc_cell): New functions.
2900 (gray_record_cell): Rewritten to use `gray_find_cell' and
2901 `gray_alloc_cell'.
2902 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
2903 QSORT_THRESHOLD):
2904 Removed.
2905 (gray_shell_sort, gray_quick_sort, gray_check_sort,
2906 gray_dump_cells): Removed.
2907 (gray_sweep): Rewritten.
2908 (gray_convert_glyph): Rewrite code which used one of the sorting
2909 functions.
2910 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00002911
Werner Lembergd898aed2006-08-29 09:50:34 +000029122006-08-29 Dr. Werner Fink <werner@suse.de>
2913
2914 * configure: Make it possible to handle configure options which
2915 have strings containing spaces.
2916
29172006-08-27 David Turner <david@freetype.org>
2918
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002919 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
2920 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
2921 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
2922
2923 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
2924 src/truetype/truetype.c, src/truetype/ttdriver.c,
2925 src/truetype/ttgload.c, src/truetype/ttgload.h,
2926 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
2927 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
2928 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
2929
2930 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
2931 member `force_autohint'.
2932
2933 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
2934
2935 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
2936 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00002937
Jens Claudiusa787f452006-08-27 11:26:18 +000029382006-08-27 Jens Claudius <jens.claudius@yahoo.com>
2939
2940 Fix miscellaneous compiler warnings.
2941
Werner Lemberg32e05a62008-05-04 16:53:22 +00002942 * include/freetype/internal/ftobjs.h: Close comment with `*/' to
2943 avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00002944
Werner Lemberg32e05a62008-05-04 16:53:22 +00002945 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002946 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
2947 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00002948
Werner Lemberg32e05a62008-05-04 16:53:22 +00002949 * src/base/ftobjs.c (t_validator_error): Cast away
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002950 volatileness of argument to ft_longjmp. Spotted by Werner
2951 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00002952
Werner Lemberg32e05a62008-05-04 16:53:22 +00002953 * src/bdf/bdflib.c (bdf_load_font): Initialize local
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002954 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00002955
Werner Lemberg32e05a62008-05-04 16:53:22 +00002956 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
2957 `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00002958
Werner Lembergc4c35b72006-08-27 08:03:46 +000029592006-08-27 Werner Lemberg <wl@gnu.org>
2960
2961 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
2962 Reported by Jens.
2963
Jens Claudius088e44e2006-08-22 14:24:30 +000029642006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00002965
Jens Claudius088e44e2006-08-22 14:24:30 +00002966 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00002967 about addresses of volatile objects passed as function arguments as
2968 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00002969
Werner Lemberg32e05a62008-05-04 16:53:22 +00002970 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
2971 pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002972
Werner Lemberg32e05a62008-05-04 16:53:22 +00002973 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
2974 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002975
Werner Lemberg32e05a62008-05-04 16:53:22 +00002976 * src/otvalid/otvmod.c (otv_load_table): Make function argument
2977 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002978
Jens Claudius2652bd52006-08-18 17:20:37 +000029792006-08-18 Jens Claudius <jens.claudius@yahoo.com>
2980
Werner Lemberg32e05a62008-05-04 16:53:22 +00002981 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
2982 as volatile since it must keep its value across a call to ft_setjmp.
Jens Claudius2652bd52006-08-18 17:20:37 +00002983 (gxv_validate): Same for local variables `memory' and `valid'.
2984 (classic_kern_validate): Same for local variables `memory',
2985 `ckern', and `valid'.
2986
Werner Lemberg32e05a62008-05-04 16:53:22 +00002987 * src/otvalid/otvmod.c (otv_validate): Same for function parameter
2988 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
2989 and 'valid'.
Jens Claudius2652bd52006-08-18 17:20:37 +00002990
Werner Lemberg32e05a62008-05-04 16:53:22 +00002991 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
2992 `cmap'.
Jens Claudius2652bd52006-08-18 17:20:37 +00002993
David Turner9fbfc6a2006-08-16 09:11:31 +000029942006-08-16 David Turner <david@freetype.org>
2995
Werner Lemberg12342992006-08-19 11:18:09 +00002996 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
2997 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00002998
Werner Lemberg12342992006-08-19 11:18:09 +00002999 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
3000 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00003001
David Turner33f5f242006-08-16 16:50:55 +00003002
Werner Lemberg12342992006-08-19 11:18:09 +00003003 Improvements to native TrueType hinting. This is a first try,
3004 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
3005
3006 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
3007 `extra_points2'.
3008
3009 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
3010 `orus'.
3011
3012 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
3013 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
3014 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
3015 handle `extra_points2'.
3016
3017 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
3018 Remove compiler warning.
3019 (cur_to_arg): Remove macro.
3020 (TT_Hint_Glyph): Updated.
3021 (TT_Process_Simple_Glyph): Handle `orus'.
3022
3023 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
3024 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
3025 (LOC_Ins_IUP): Renamed to...
3026 (IUP_WorkerRec): This.
3027 Add `orus' member.
3028 (Shift): Renamed to...
3029 (_iup_worker_shift): This.
3030 Updated.
3031 (Interp): Renamed to...
3032 (_iup_worker_interpolate): This.
3033 Updated to handle `orus'.
3034 (Ins_IUP): Updated.
3035
3036 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
3037 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00003038
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000030392006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3040
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00003041 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00003042 build ftvalid in ft2demos. This has been inadvertedly changed
3043 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00003044
30452006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3046
Werner Lemberg12342992006-08-19 11:18:09 +00003047 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
3048 Jens:
3049 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00003050
Werner Lemberg32e05a62008-05-04 16:53:22 +00003051 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
3052 It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00003053
Werner Lemberg32e05a62008-05-04 16:53:22 +00003054 * src/gxvalid/gxvmod.c: Ditto.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00003055
Jens Claudius9950adc2006-08-13 12:14:36 +000030562006-08-13 Jens Claudius <jens.claudius@yahoo.com>
3057
Werner Lemberg32e05a62008-05-04 16:53:22 +00003058 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
Werner Lemberg12342992006-08-19 11:18:09 +00003059 T1_TOKEN_TYPE_KEY.
3060 (T1_FieldRec): Add `dict'.
3061 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
3062 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
3063 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00003064
Werner Lemberg32e05a62008-05-04 16:53:22 +00003065 * src/cid/cidload.c: (cid_field_records): Adjust invocations of
3066 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00003067
Werner Lemberg32e05a62008-05-04 16:53:22 +00003068 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00003069
Werner Lemberg32e05a62008-05-04 16:53:22 +00003070 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00003071 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
3072 not T1_TOKEN_TYPE_ANY.
3073 (ps_parser_load_field): Make sure a token that should be a string or
3074 name is really a string or name.
3075 Avoid memory leak if a keyword has been already encountered and its
3076 value is overwritten.
Werner Lemberg32e05a62008-05-04 16:53:22 +00003077 * src/type1/t1load.c: (t1_keywords): Adjust invocations of
Werner Lemberg12342992006-08-19 11:18:09 +00003078 T1_FIELD_XXX.
3079 (parse_dict): Ignore keywords that occur in the wrong dictionary
3080 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00003081
Werner Lemberg32e05a62008-05-04 16:53:22 +00003082 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00003083
Werner Lemberg32e05a62008-05-04 16:53:22 +00003084 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
3085 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00003086
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000030872006-07-18 Jens Claudius <jens.claudius@yahoo.com>
3088
3089 Move creation of field `buildchar' of T1_DecoderRec out of
3090 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
3091 of it.
3092
3093 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
3094 and `T1_Compute_Max_Advance'.
3095
Werner Lemberg32e05a62008-05-04 16:53:22 +00003096 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
3097 `face', add `len_buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003098
Werner Lemberg32e05a62008-05-04 16:53:22 +00003099 * include/freetype/internal/t1types.h (T1_FaceRec): Add field
3100 `buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003101
Werner Lemberg32e05a62008-05-04 16:53:22 +00003102 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
3103 for T1_Decoder.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003104 (cid_slot_load_glyph): Do not ignore failure when initializing the
3105 T1_Decoder.
3106
Werner Lemberg32e05a62008-05-04 16:53:22 +00003107 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003108 (t1_decoder_init): Remove initialization of fields `buildchar' and
3109 `len_buildchar'.
3110 (t1_decoder_done): Remove deallocation of field `buildchar'.
3111
3112 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
3113 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
3114 T1_Decoder.
3115 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
3116 `len_buildchar'; make sure to call finisher for T1_Decoder even in
3117 case of error.
3118
Werner Lemberg32e05a62008-05-04 16:53:22 +00003119 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
3120 of T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003121
Werner Lemberg32e05a62008-05-04 16:53:22 +00003122 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
3123 T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003124
Werner Lemberg1a380e02006-07-14 18:28:08 +000031252006-07-14 Jens Claudius <jens.claudius@yahoo.com>
3126
Werner Lemberg32e05a62008-05-04 16:53:22 +00003127 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
3128 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
3129 and IS_PS_BASE85 (from src/psaux/psconv.h).
Werner Lemberg1a380e02006-07-14 18:28:08 +00003130 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
3131 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
3132 (T1_DecoderRec): New fields `buildchar' and `face'.
3133 (IS_PS_TOKEN): New macro.
3134
Werner Lemberg32e05a62008-05-04 16:53:22 +00003135 * include/freetype/internal/t1types.h (T1_FaceRec): New fields
3136 `ndv_idx', `cdv_idx', and `len_buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003137
Werner Lemberg32e05a62008-05-04 16:53:22 +00003138 * include/freetype/t1tables.h (PS_BlendRec): New fields
Werner Lemberg1a380e02006-07-14 18:28:08 +00003139 `default_design_vector' and `num_default_design_vector'.
3140
Werner Lemberg32e05a62008-05-04 16:53:22 +00003141 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
3142 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
3143 IS_PS_BASE85 to include/freetype/internal/psaux.h.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003144
Werner Lemberg32e05a62008-05-04 16:53:22 +00003145 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
3146 argument to be NULL if we want only to count the number of tokens.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003147 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
3148 want to skip the array.
3149 (ps_tofixedarray): Allow `values' argument to be NULL if we just
3150 want to skip the array.
3151
Werner Lemberg32e05a62008-05-04 16:53:22 +00003152 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
3153 for (partially commented out) othersubrs 19-25, 27, and 28.
3154 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003155 (t1_decoder_done): Release new field `buildchar'.
3156
Werner Lemberg32e05a62008-05-04 16:53:22 +00003157 * src/type1/t1load.c (parse_buildchar, parse_private): New
Werner Lemberg1a380e02006-07-14 18:28:08 +00003158 functions.
3159 (t1_keywords): Register them.
3160 (t1_allocate_blend): Updated.
3161 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
3162 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
3163 (parse_dict): Remove `keyword_flags' argument.
3164 Use new macro IS_PS_TOKEN.
3165 Changed function so that later PostScript definitions override
3166 earlier ones.
3167 (t1_init_loader): Initialize new field `keywords_encountered'.
3168 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
3169 `len_buildchar'.
3170 Remove `keywords_flags'.
3171
Werner Lemberg32e05a62008-05-04 16:53:22 +00003172 * src/type1/t1load.h (T1_LoaderRect): New field
Werner Lemberg1a380e02006-07-14 18:28:08 +00003173 `keywords_encountered'.
3174 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
3175
Werner Lemberg32e05a62008-05-04 16:53:22 +00003176 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
3177 entries for parsing /NDV, /CDV, and /DesignVector.
Werner Lemberg1a380e02006-07-14 18:28:08 +00003178
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000031792006-07-07 Werner Lemberg <wl@gnu.org>
3180
3181 Add many checks to protect against malformed PCF files.
3182
3183 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
3184 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
3185
3186 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
3187 data and check that tables don't overlap (using a simple
3188 bubblesort).
3189 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
3190 New macros which give the size of data structures in the data
3191 stream.
3192 (pcf_get_properties): Use rough estimates to get array size limits.
3193 Assign `face->nprops' and `face->properties' earlier so that a call
3194 to PCF_Face_Done can do the clean-up in case of error.
3195 Protect against invalid string offsets.
3196 (pcf_get_metrics): Clean up code.
3197 Adjust tracing message levels.
3198 Use rough estimate to get array size limit.
3199 (pcf_get_bitmaps): Clean up code.
3200 Adjust tracing message levels.
3201 Use rough estimates to get offset limits.
3202 (pcf_get_encodings): Adjust tracing message level.
3203 (pcf_get_accel): Clean up code.
3204
Werner Lemberg8eb05252006-06-27 06:20:01 +000032052006-06-26 Werner Lemberg <wl@gnu.org>
3206
3207 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
3208 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
3209
Werner Lemberg24703f82006-06-26 19:12:51 +000032102006-06-26 Jens Claudius <jens.claudius@yahoo.com>
3211
3212 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
3213 (t1_decoder_parse_charstrings): Operator with
3214 opcode 15 pops its two arguments.
3215 Handle the case where the pops of an othersubr may be part of a
3216 subroutine.
3217 Handle unknown othersubrs gracefully: count their operands and let
3218 the following pop operators push the operands as the results onto
3219 the Type1 stack.
3220 Improve handling of setcurrentpoint opcode.
3221
Werner Lembergc011f4c2006-06-26 09:40:00 +000032222006-06-25 Jens Claudius <jens.claudius@yahoo.com>
3223
3224 The Type 1 parser now skips over top-level procedures as required
3225 for a `Simplified Parser'. This makes the parser more robust as it
3226 doesn't poke around in PostScript code. Additionally, it makes the
3227 FontDirectory hackery in src/type1/t1load.c unnecessary.
3228
3229 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
3230 (skip_literal_string): Add FT_Error as return value.
3231 Handle escapes better.
3232 (skip_string): Add FT_Error as return value.
3233 Don't set `parser->error' but return error code directly.
3234 (skip_procedure): New function.
3235 (ps_parser_skip_PS_token): Handle procedures.
3236 Update code.
3237 (ps_parser_to_token): Update code.
3238 (ps_parser_load_field_table): Handle bbox entries also.
3239
3240 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
3241 Add commented-out code for synthetic fonts.
3242
Werner Lemberga2da05c2006-06-25 06:27:27 +000032432006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
3244
3245 Fix two hinting bugs as reported in
3246 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
3247
3248 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
3249 `first_point' member.
3250
3251 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
3252 `first_point'.
3253 (TT_Process_Composite_Glyph): Always untouch points.
3254
3255 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
3256 `first_point' and `last_point' in case of composite glyphs.
3257 (Ins_IUP): Fix computation of `end_point'.
3258
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000032592006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3260
Werner Lembergef3d2c22006-06-25 06:07:14 +00003261 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
3262 Mac. The original patch was written by David Sachitano and Lawrence
3263 Coopet, and modified by Sean McBride for MPW compatibility. Only
3264 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00003265
Werner Lembergef3d2c22006-06-25 06:07:14 +00003266 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
3267 Mac OS X platforms.
3268 (OS_INLINE): Undefine before definition.
3269 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
3270 FontAssociation table in FOND resource.
3271 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
3272 and fontSize at each entry of FontAssociation table in FOND
3273 resource.
3274 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
3275 ffStylOff of FamilyRecord header of FOND resource, the header,
3276 fontSize, fontID at each entry of FontAssociation table, and
3277 StyleMapping table.
3278 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00003279
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000032802006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3281
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00003282 Public API of TrueTypeGX, OpenType, and classic kern table validator
3283 should return `FT_Err_Unimplemented_Feature' if validation service
3284 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00003285 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00003286 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
3287
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00003288 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
3289 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
3290 unavailable.
3291 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
3292 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00003293
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00003294 * src/base/ftotval.c (FT_OpenType_Validate): Return
3295 FT_Err_Unimplemented_Feature if OpenType validation service is
3296 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00003297
Werner Lembergb10e45a2006-06-08 07:32:56 +000032982006-06-08 Werner Lemberg <wl@gnu.org>
3299
3300 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
3301 errors.
3302
David Turner5f1f7502006-06-07 05:11:50 +000033032006-06-07 David Turner <david@freetype.org>
3304
Werner Lemberg7d48cb02006-06-08 06:00:08 +00003305 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
3306 (T1_Read_Metrics): Fix memory leak which happened when the metrics
3307 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00003308
David Turner457b4a82006-06-06 08:14:14 +000033092006-06-06 David Turner <david@freetype.org>
3310
Werner Lemberg4836f952006-06-06 12:54:08 +00003311 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00003312
Werner Lemberg4836f952006-06-06 12:54:08 +00003313 We change `ps_unicodes_init' so that it also takes a
3314 `free_glyph_name' callback to release the glyph names returned by
3315 `get_glyph_name'
3316
3317 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
3318 Renamed to ...
3319 (PS_GetGlyphNameFunc): This.
3320 (PS_FreeGlyphNameFunc): New typedef.
3321 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
3322
3323 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
3324 argument.
3325 (cff_sid_free_glyph_name): New function.
3326 (cff_cmap_unicode_init): Updated.
3327
3328 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
3329
3330 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
3331 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00003332
3333
David Turner09717352006-06-04 14:33:08 +000033342006-06-04 David Turner <david@freetype.org>
3335
Werner Lembergd724f202006-06-04 15:17:41 +00003336 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
3337 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00003338 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00003339
Werner Lembergd724f202006-06-04 15:17:41 +00003340 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
3341 of `face->num_glyphs' which missed the last glyph, due to
3342 the offset-by-1 computation, since the PFR format doesn't
3343 guarantee that glyph index 0 corresponds to the `missing
3344 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00003345
Werner Lemberg33779662006-05-26 06:30:05 +000033462006-05-25 Werner Lemberg <wl@gnu.org>
3347
3348 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
3349 `-no-undefined'. Reported by Christian Biesinger.
3350
Werner Lemberg24773d62006-05-20 08:53:13 +000033512006-05-19 Brian Weed <bw@imaginengine.com>
3352
3353 * builds/win32/visualc/freetype.dsp: Release libraries no longer
3354 have debug information, and debug libraries use `C7 compatible'
3355 debug info.
3356
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000033572006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3358
Werner Lemberga6523a62006-05-20 08:47:01 +00003359 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00003360 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00003361
Werner Lemberga6523a62006-05-20 08:47:01 +00003362 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
3363 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00003364
3365 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00003366 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00003367
33682006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3369
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00003370 * build/unix/configure.raw: Add a fallback to disable Carbon
3371 dependency, if configured with no options on Mac OS X.
3372
33732006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3374
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00003375 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00003376 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00003377 the second part of Savannah bug #16590.
3378
Werner Lemberg545c4e52006-05-17 22:55:04 +000033792006-05-18 Werner Lemberg <wl@gnu.org>
3380
3381 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
3382 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
3383
David Turnerdc3ff312006-05-17 12:59:35 +000033842006-05-17 David Turner <david@freetype.org>
3385
Werner Lemberg545c4e52006-05-17 22:55:04 +00003386 This is a major patch used to drastically improve the performance of
3387 loading glyphs. This both speeds up loading the glyph vectors
3388 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00003389
Werner Lemberg545c4e52006-05-17 22:55:04 +00003390 We now use inline assembler code with GCC to implement `FT_MulFix',
3391 which is probably the most important function related to the
3392 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00003393
Werner Lemberg545c4e52006-05-17 22:55:04 +00003394 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00003395
3396
Werner Lemberg545c4e52006-05-17 22:55:04 +00003397 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
3398 `cursor' and `limit'.
3399
3400 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
3401 New functions.
3402 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
3403 [TEST]: Remove.
3404
3405 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
3406 code.
3407
3408 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
3409 `FT_ZERO'
3410 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
3411 (af_glyph_hints_reload: Rewrite recognition of weak points.
3412
3413 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
3414 constant values out of the loops.
3415
3416 * src/autofit/aftypes.h: Updated.
3417
3418 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
3419
3420 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
3421 product to get orientation.
3422
3423 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
3424 (FT_Stream_OpenGzip): Use it to handle small files directly in
3425 memory.
3426
3427 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
3428 Improve performance.
3429
3430 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
3431 `limit'.
3432
3433 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
3434 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
3435 exceedingly large values of number of contours. Speed up by
3436 reducing the number of loops.
3437
3438 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
3439
3440
3441 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
3442 used to detect rogue clients from 4 to 16. This is to prevent some
3443 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
3444 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00003445
Werner Lembergde2d90a2006-05-17 08:54:30 +000034462007-05-17 Werner Lemberg <wl@gnu.org>
3447
3448 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00003449 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00003450
34512006-05-16 Werner Lemberg <wl@gnu.org>
3452
3453 * docs/PROBLEMS: Updated icl issues.
3454
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003455----------------------------------------------------------------------------
3456
Werner Lemberg4c933992008-01-18 05:32:55 +00003457Copyright 2006, 2007, 2008 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003458David Turner, Robert Wilhelm, and Werner Lemberg.
3459
3460This file is part of the FreeType project, and may only be used, modified,
3461and distributed under the terms of the FreeType project license,
3462LICENSE.TXT. By continuing to use, modify, or distribute this file you
3463indicate that you have read the license and understand and accept it
3464fully.
3465
3466
3467Local Variables:
3468version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00003469coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003470End: