blob: 6ab60841d92897661ca1ab494536ba41bc01cbe9 [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)2dc10792009-01-09 05:07:15 +000012009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
Suzuki, Toshiya (鈴木俊哉)a7c00b72009-01-09 07:21:16 +00003 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
4 FT_Get_Advances): Extend the type of load_flags from FT_UInt to
5 FT_UInt32, to pass 32-bit flags on 16bit platforms.
6 * src/cff/cffdrivr.c (cff_get_advances): Ditto.
7 * src/truetype/ttdriver.c (tt_get_advances): Ditto.
8 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
9 Ditto.
10 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
11 Ditto.
12
132009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
14
Suzuki, Toshiya (鈴木俊哉)2dc10792009-01-09 05:07:15 +000015 * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
16 FT_Done_Face() cannot free all faces. If the list of the opened
17 faces includes broken face which FT_Done_Face() cannot free,
18 FT_Done_Library() retries FT_Done_Face() and it can fall into
19 an endless loop. See the discussion:
20 http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
21 http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
22
Werner Lemberga79de112009-01-07 08:27:37 +0000232009-01-07 Werner Lemberg <wl@gnu.org>
24
25 * docs/CHANGES: Document new key `a' in ftdiff.
26
Werner Lemberga86f1b92009-01-06 09:07:22 +0000272009-01-06 Werner Lemberg <wl@gnu.org>
28
Werner Lembergc3263722009-01-06 21:00:47 +000029 * autogen.sh: Don't use GNUisms while calling sed. Problem reported
30 by Sean McBride.
31
322009-01-06 Werner Lemberg <wl@gnu.org>
33
Werner Lemberga86f1b92009-01-06 09:07:22 +000034 * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
35 and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen
36 <chint@necsv.com>.
37
Werner Lembergc6791152009-01-06 07:07:39 +0000382009-01-06 Diego Pettenò <flameeyes@gmail.com>
39
40 * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
41 AC_CANONICAL_TARGET and use $host_os only. A nice explanation for
42 this change can be found at
43 http://blog.flameeyes.eu/s/canonical-target.
44
45 From Savannah patch #6712.
46
Werner Lembergf2e33c12009-01-06 06:59:36 +0000472009-01-06 Sean McBride <sean@rogue-research.com>
48
49 * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
50
51 * src/base/ftmac.c: Remove some #undefs.
52
Werner Lemberg1ad384d2008-12-25 23:52:00 +0000532008-12-26 Werner Lemberg <wl@gnu.org>
54
55 Set `face_index' field in FT_Face for all font formats.
56
57 * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
58 sfnt/sfobjs.c (sfnt_init_face): Do it.
59
60 * docs/CHANGES: Document it.
61
Werner Lemberg66043b12008-12-22 18:09:48 +0000622008-12-22 Steve Grubb
63
64 * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
65 Patch from Savannah bug #25151.
66
Werner Lemberg478cca12008-12-21 17:38:23 +0000672008-12-21 Werner Lemberg <wl@gnu.org>
68
Werner Lemberg3c5ad952008-12-21 17:51:12 +000069 * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
70 src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
71 s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for
72 errors in the bytecode interpreter only.
73
742008-12-21 Werner Lemberg <wl@gnu.org>
75
Werner Lemberg478cca12008-12-21 17:38:23 +000076 * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
77 arguments.
78 Fix return value for non-PFR fonts. Both problems reported by Chi
79 Nguyen <chint@necsv.com>.
80
Werner Lembergce33a312008-12-21 10:29:30 +0000812008-12-21 anonymous
82
83 FT_USE_MODULE declares things as:
84
85 extern const FT_Module_Class
86
87 (or similar for C++). However, the actual types of the variables
88 being declared are often different, e.g., FT_Driver_ClassRec or
89 FT_Renderer_Class. (Some are, indeed, FT_Module_Class.)
90
91 This works with most C compilers (since those structs begin with an
92 FT_Module_Class struct), but technically it's undefined behavior.
93
94 To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
95 paragraph 2:
96
97 All declarations that refer to the same object or function shall
98 have compatible type; otherwise, the behavior is undefined.
99
100 (And they are not compatible types.)
101
102 Most C compilers don't reject (or even detect!) code which has this
103 issue, but the GCC LTO development branch compiler does. (It
104 outputs the types of the objects while generating .o files, along
105 with a bunch of other information, then compares them when doing the
106 final link-time code generation pass.)
107
108 Patch from Savannah bug #25133.
109
110 * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
111
112 * builds/amiga/include/freetype/config/ftmodule.h,
113 include/freetype/config/ftmodule.h, */module.mk: Updated to declare
114 pass correct types to FT_USE_MODULE.
115
Werner Lembergb6fa8452008-12-21 09:46:31 +00001162008-12-21 Hongbo Ni <hongbo@njstar.com>
117
118 * src/autofit/aflatin.c (af_latin_hint_edges),
119 src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
Werner Lembergce33a312008-12-21 10:29:30 +0000120 (af_cjk_hint_edges): Protect against division by zero. This fixes
121 Savannah bug #25124.
Werner Lembergb6fa8452008-12-21 09:46:31 +0000122
Werner Lemberg05bf6872008-12-18 06:32:10 +00001232008-12-18 Werner Lemberg <wl@gnu.org>
124
125 * docs/CHANGES: Updated.
126
1272008-12-18 Bevan, David <dbevan@emtex.com>
128
129 Provide API for accessing embedding and subsetting restriction
130 information.
131
132 * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
133 FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
134 FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
135 FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
136 macros.
137 (FT_Get_FSType_Flags): New function declaration.
138
139 * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
140
141 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
142 (t42_keywords): Handle `FSType'.
143
144 * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
145
Werner Lembergc8c4cc82008-12-17 10:50:31 +00001462008-12-17 Werner Lemberg <wl@gnu.org>
147
Werner Lembergcfc514e2008-12-17 11:03:26 +0000148 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
149 macros so that copying the source code into an application works
150 out of the box.
151
1522008-12-17 Werner Lemberg <wl@gnu.org>
153
154 * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
Werner Lembergc8c4cc82008-12-17 10:50:31 +0000155 FT_GlyphSlot_Own_Bitmap to...
156 * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
157
158 * docs/CHANGES: Document it.
159
Werner Lembergb972a2a2008-12-11 08:55:48 +00001602008-12-10 Werner Lemberg <wl@gnu.org>
161
162 Generalize the concept of `tricky' fonts by introducing
163 FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
164 engine is necessary for correct rendering.
165
166 At the same time, slightly modify the behaviour of tricky fonts:
167 FT_LOAD_NO_HINTING is now ignored. To really force raw loading
168 of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
169 FT_LOAD_NO_AUTOHINT must be used.
170
171 Finally, tricky TrueType fonts always use the bytecode interpreter
172 even if the patented code is used.
173
174 * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
175 New macros.
176
177 * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
178 semantics as described above.
179
180 * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
181 code of ...
182 (tt_face_init): This function, now simplified and updated to new
183 semantics.
184
185 * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
186 fonts.
187
188 * docs/CHANGES: Document it.
189
Werner Lemberg1474f432008-12-09 06:51:56 +00001902008-12-09 Werner Lemberg <wl@gnu.org>
191
192 Really fix Savannah bug #25010: An SFNT font with neither outlines
193 nor bitmaps can be considered as containing space `glyphs' only.
194
195 * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
196 a `glyf' table is missing.
197
198 * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
199 `glyf' table but a non-zero `loca' entry.
200 (tt_loader_init): Handle missing `glyf' table.
201
202 * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
203
204 * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
205 nor bitmaps is scalable.
206
Werner Lemberg76fffcd2008-12-05 18:37:44 +00002072008-12-05 Werner Lemberg <wl@nu.org>
208
Werner Lemberge3b083c2008-12-05 22:50:40 +0000209 * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This
210 fixes Savannah bug #21190 which also provides a basic patch.
211
2122008-12-05 Werner Lemberg <wl@nu.org>
213
Werner Lemberg76fffcd2008-12-05 18:37:44 +0000214 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
215 0x100 instead of 0x10000; the latter value is already occupied by
216 FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos.
217
218
219 Handle SFNT with neither outlines nor bitmaps. This fixes Savannah
220 bug #25010.
221
222 * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
223 outlines nor bitmaps.
224
225 * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
226 is no table with glyphs.
227
228
229 * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
230 message.
231
Werner Lembergafe60162008-12-01 12:53:00 +00002322008-12-01 Werner Lemberg <wl@gnu.org>
233
234 GDEF tables need `glyph_count' too for validation. Problem reported
235 by Chi Nguyen <chint@necsv.com>.
236
237 * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
238 (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
239 `glyph_count'.
240
Werner Lemberg1a5d5612008-11-29 22:50:24 +00002412008-11-29 Werner Lemberg <wl@gnu.org>
242
243 * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
244 src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
245 src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
246 src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
247 src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
248 (Atari PureC).
249
Werner Lembergb2cb6ce2008-11-29 09:32:12 +00002502008-11-29 James Cloos <cloos@jhcloos.com>
251
Werner Lemberg8f9b7f52008-11-29 17:35:58 +0000252 * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
253 it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
254 in the /BlendDesignMap space).
255
2562008-11-29 James Cloos <cloos@jhcloos.com>
257
Werner Lembergb2cb6ce2008-11-29 09:32:12 +0000258 * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
259 whereas `design_points' is FT_Long*. Therefore, return blend rather
260 than design points.
261
Werner Lembergc7597ed2008-11-27 21:55:20 +00002622008-11-27 Werner Lemberg <wl@gnu.org>
263
264 * src/cff/cffparse.c (cff_parse_real): Handle more than nine
265 significant digits correctly. This fixes Savannah bug #24953.
266
Werner Lemberg0a263a82008-11-25 05:44:41 +00002672008-11-25 Daniel Zimmermann <netzimme@aol.com>
268
269 * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
270 before the NULL check. From Savannah patch #6681.
271
Werner Lemberg52cd0fc2008-11-24 08:15:05 +00002722008-11-24 Werner Lemberg <wl@gnu.org>
273
274 Fixes from the gnuwin32 port.
275
276 * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
277
278 * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
279
280 * src/psaux/psobjs.c (ps_table_add): Check `length'.
281
Werner Lemberg105721a2008-11-15 10:35:51 +00002822008-11-15 Werner Lemberg <wl@gnu.org>
283
284 * src/truetype/ttinterp.c (tt_default_graphics_state): The default
285 value for `scan_type' is zero, as confirmed by Greg Hitchcock from
286 Microsoft. Problem reported by Michal Nowakowski
287 <miszka@limes.com.pl>.
288
Werner Lemberg312043f2008-11-12 06:29:41 +00002892008-11-12 Tor Andersson <tor.andersson@gmail.com>
290
291 * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
292 This fixes Savannah bug #24819.
293
Werner Lemberge7aad022008-11-08 22:00:55 +00002942008-11-08 Werner Lemberg <wl@gnu.org>
295
296 * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
297 since OpenType version 1.5 has been released.
298
299 * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
300 TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
301 (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
302 TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
303 TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
304 TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
305 TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
306 TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
307 TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
308 TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
309 TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
310 TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
311 TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
312 macros for OpenType 1.5.
313
Werner Lembergb6192822008-11-08 07:28:39 +00003142008-11-08 Wenlin Institute <wenlin@wenlin.com>
315
316 * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
317 slot->internal == NULL. Reported by Graham Asher.
318
Werner Lemberg95120922008-11-08 07:20:25 +00003192008-11-08 Werner Lemberg <wl@gnu.org>
320
321 * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
322 code so that memory allocation problems can be distinguished from
323 missing table entries. Reported by Graham Asher.
324 (GET_NAME): New macro.
325 (sfnt_load_face): Use it.
326
Werner Lembergc321b9b2008-11-05 14:34:29 +00003272008-11-05 Werner Lemberg <wl@gnu.org>
328
329 * devel/ftoption.h, include/freetype/config/ftoption.h
330 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
331 TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of
332 `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
333 Reported in bug #441638 of bugzilla.novell.com.
334
335 * docs/CHANGES: Document it.
336
Werner Lemberge0ed07d2008-11-04 10:37:30 +00003372008-11-03 Werner Lemberg <wl@gnu.org>
338
339 * src/type1/t1load.c (parse_subrs): Use an endless loop. There are
340 fonts (like HELVI.PFB version 003.001, used on OS/2) which define
341 some `subrs' elements more than once. Problem reported by Peter
342 Weilbacher <mozilla@weilbacher.org>.
343
Werner Lembergf31072c2008-10-15 20:03:37 +00003442008-10-15 Graham Asher <graham.asher@btinternet.com>
345
346 * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
347
3482008-10-15 David Turner <david@freetype.org>
Suzuki, Toshiya (鈴木俊哉)69222662008-10-15 15:22:39 +0000349
350 * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
351 meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
352
Werner Lemberg822604c2008-10-14 07:28:03 +00003532008-10-14 Werner Lemberg <wl@gnu.org>
354
355 * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
356 Suggested by Bram Tassyns in Savannah patch #6651.
357
Werner Lemberg174b8de2008-10-12 11:47:29 +00003582008-10-12 Graham Asher <graham.asher@btinternet.com>
359
360 * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
361 `underline_position'.
362
3632008-10-12 Werner Lemberg <wl@gnu.org>
364
365 * docs/CHANGES: Updated.
366
Suzuki, Toshiya (鈴木俊哉)1464bc52008-10-09 05:44:23 +00003672008-10-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
368
369 Fix Savannah bug #24468.
370
371 According to include/freetype/internal/ftobjs.h, the appropriate
372 type to interchange single character codepoint is FT_UInt32. It
373 should be distinguished from FT_UInt which can be 16bit integer.
374
375 * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
376 of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
377 (tt_cmap4_char_map_binary): Ditto.
378 (tt_cmap14_get_nondef_chars): Change the type of return value
379 from FT_UInt* to FT_UInt32*.
380
3812008-10-08 John Tytgat <John.Tytgat@esko.com>
Werner Lembergfa9d3992008-10-08 16:04:46 +0000382
383 Fix Savannah bug #24485.
384
385 * src/type1/t1load.c (parse_charstrings): Assure that we always have
386 a .notdef glyph.
387
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +00003882008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
389
Suzuki, Toshiya (鈴木俊哉)96d87be2008-10-05 03:08:10 +0000390 * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
391 * builds/mac/ftmac.c: Ditto.
392
3932008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
394
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000395 * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
Suzuki, Toshiya (鈴木俊哉)af48cb02008-10-05 02:53:06 +0000396 * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
397
3982008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
399
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000400 * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
401 the beginning of sfnt container.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000402 * src/sfnt/ttload.c (check_table_dir): Return
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000403 `SFNT_Err_Table_Missing' when sfnt table directory structure is
404 correct but essential tables for TrueType fonts (`head', `bhed' or
405 `SING') are missing. Other errors are returned by
406 SFNT_Err_Unknown_File_Format.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000407
408 * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000409 `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is
410 enabled only when old mac font support is configured.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000411
Suzuki, Toshiya (鈴木俊哉)72eb2702008-10-04 17:49:58 +00004122008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
413
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000414 * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
415 TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
416 the repeated calculations of these values in ftobjs.c and ftmac.c.
Suzuki, Toshiya (鈴木俊哉)21bd5162008-10-04 18:10:28 +0000417 * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
418 * src/base/ftmac.c: Ditto.
419 * builds/mac/ftmac.c: Ditto.
420
4212008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
422
Suzuki, Toshiya (鈴木俊哉)72eb2702008-10-04 17:49:58 +0000423 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
424 initialization of *is_sfnt_cid.
425
Werner Lemberg45489582008-10-04 11:39:03 +00004262008-10-04 Werner Lemberg <wl@gnu.org>
427
428 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
429 warnings.
430
Suzuki, Toshiya (鈴木俊哉)1137d042008-10-04 07:11:58 +00004312008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
432
433 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
434 (ft_lookup_PS_in_sfnt_stream): This.
Werner Lemberg45489582008-10-04 11:39:03 +0000435 (open_face_PS_from_sfnt_stream): New function. It checks whether
436 the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
437 font, then try to open a face for given face_index.
Suzuki, Toshiya (鈴木俊哉)1137d042008-10-04 07:11:58 +0000438 (Mac_Read_sfnt_Resource): Replace the combination of
439 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
440 `open_face_PS_from_sfnt_stream'.
441 * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
442 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
443 * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
444 `open_face_PS_from_sfnt_stream'.
445
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +00004462008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
447
Werner Lemberg45489582008-10-04 11:39:03 +0000448 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
449 FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
Suzuki, Toshiya (鈴木俊哉)bc2c4982008-10-03 12:28:52 +0000450
4512008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
452
Werner Lemberg45489582008-10-04 11:39:03 +0000453 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
454 MrC compiler of MPW is used. These compilers do not define the
455 macro __APPLE__ by themselves.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000456 * builds/unix/ftconfig.in: Ditto.
457 * builds/vms/ftconfig.h: Ditto.
Werner Lemberg45489582008-10-04 11:39:03 +0000458 * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
459 include ftmac.c if FreeType 2 is built by MPW.
460 * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
461 enable shared functions for ftmac.c if FreeType 2 is built by MPW.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000462
463 * builds/mac/ftmac.c: Include ftbase.h.
464 (memory_stream_close): Removed.
465 (new_memory_stream): Ditto.
466 (open_face_from_buffer): Removed. Use the implementation in
467 ftobjs.c.
468 (ft_lookup_PS_in_sfnt): Ditto.
469
470 * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
Werner Lemberg45489582008-10-04 11:39:03 +0000471 included part of ftbase.c, to share the functions in ftobjs.c. The
472 rule compiling ftmac.c separately is removed and the rule copying
473 ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000474 * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
475 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
476 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
477
Werner Lembergb17fb112008-10-02 10:17:32 +00004782008-10-02 Bram Tassyns <bramt@enfocus.be>
479
480 * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This
481 fixes Savannah bug #24430.
482
Werner Lemberg89a1a512008-10-02 06:48:10 +00004832008-10-02 Werner Lemberg <wl@gnu.org>
484
485 * builds/freetype.mk (BASE_H): Rename to...
486 (INTERNAL_H): This.
487 (FREETYPE_H): Updated.
488 * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
489 * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
490 * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
491 * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
492 * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
493 * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
494
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +00004952008-10-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
496
497 * src/base/ftbase.h: New file to declare the private utility
Werner Lembergcff15b02008-10-02 05:38:29 +0000498 functions shared by the sources of base modules. Currently,
499 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
500 share between ftobjs.c and ftmac.c.
501
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000502 * src/base/rule.mk: Add ftbase.h.
Werner Lembergcff15b02008-10-02 05:38:29 +0000503
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000504 * src/base/ftobjs.c: Include ftbase.h.
Werner Lembergcff15b02008-10-02 05:38:29 +0000505 (memory_stream_close): Build on any platform when old MacOS font
506 support is enabled.
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000507 (new_memory_stream): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000508 (open_face_from_buffer): Build on any platform when old MacOS font
509 support is enabled. The counting of the face in a font file is
510 slightly different between Carbon-dependent parser and Carbon-free
511 parser. They are merged with the platform-specific conditional.
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000512 (ft_lookup_PS_in_sfnt): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000513
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000514 * src/base/ftmac.c: Include ftbase.h.
515 (memory_stream_close): Removed.
516 (new_memory_stream): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000517 (open_face_from_buffer): Removed. Use the implementation in
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000518 ftobjs.c.
519 (ft_lookup_PS_in_sfnt): Ditto.
520
Werner Lembergce1bad02008-10-01 22:46:26 +00005212008-10-02 Werner Lemberg <wl@gnu.org>
522
523 * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
524 if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
525
Werner Lembergd03d8562008-10-01 22:39:05 +00005262008-10-01 Werner Lemberg <wl@gnu.org>
527
528 * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
529 (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
530 src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
531 (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
532 src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
533 Reported by Graham Asher.
534
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +00005352008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
536
Werner Lembergfce4e232008-10-01 04:41:46 +0000537 * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
Werner Lembergcff15b02008-10-02 05:38:29 +0000538 multi' on Mac OS X. If the macro $(ftmac_c) is defined,
Werner Lembergfce4e232008-10-01 04:41:46 +0000539 $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the
540 lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
541 ftmac.c.
Suzuki, Toshiya (鈴木俊哉)ef4a9152008-09-30 16:21:07 +0000542 * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
543 * builds/unix/configure.raw: Add procedure to set up appropriate
Werner Lembergfce4e232008-10-01 04:41:46 +0000544 value of $(ftmac_c) with the consideration of the availability of
545 Carbon framework.
Suzuki, Toshiya (鈴木俊哉)ef4a9152008-09-30 16:21:07 +0000546
5472008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
548
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +0000549 * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
Werner Lembergfce4e232008-10-01 04:41:46 +0000550 * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
551 function for MPW building. It is synchronized the condition to
552 include ftmac.c source into ftbase.c.
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +0000553
Werner Lembergb4c810e2008-09-22 11:28:46 +00005542008-09-22 Werner Lemberg <wl@gnu.org>
555
556 * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
557 cff_decoder_parse_charstrings): Handle (invalid)
558 `callothersubr' and `pop' instructions.
559
Werner Lembergbd0f71a2008-09-22 08:55:44 +00005602008-09-22 John Tytgat <John.Tytgat@esko.com>
561
562 Fix Savannah bug #24307.
563
564 * include/freetype/internal/t1types.h (CID_FaceRec),
565 src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
566
5672008-09-21 Werner Lemberg <wl@gnu.org>
568
569 * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
570 `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by
571 Stephan T. Lavavej <stl@nuwen.net>.
572
Suzuki, Toshiya (鈴木俊哉)815e1862008-09-21 18:33:57 +00005732008-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
574
575 * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
576 by jam.
577 * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
578 jam.
579
Werner Lemberg6874d852008-09-20 11:50:47 +00005802008-09-20 Werner Lemberg <wl@gnu.org>
581
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000582 * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values
583 passed to this function are already `normalized'. Problem reported
Werner Lembergbd0f71a2008-09-22 08:55:44 +0000584 by Stephan T. Lavavej <stl@nuwen.net>.
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000585
586 * docs/CHANGES: Document it.
587
5882008-09-20 Werner Lemberg <wl@gnu.org>
589
Werner Lemberg6874d852008-09-20 11:50:47 +0000590 * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
591 (FT_Outline_Decompose): Decorate with tracing messages.
592
593 * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
594 FT_DEBUG_LEVEL_TRACE.
595 [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
596 stdarg.h.
597
598 (FT_TRACE) [_STANDALONE_]: Remove.
599 (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
600 (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
601 (FT_ERROR) [_STANDALONE_]: Updated.
602
603 (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
604 Use FT_TRACE7.
605 (gray_dump_cells): Make it `static void'.
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000606 (gray_convert_glyph): Use FT_TRACE7.
Werner Lemberg6874d852008-09-20 11:50:47 +0000607
608 (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
609 ftoutln.c.
610
611 * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
612 FT_ERROR_BASE.
613
Werner Lemberg22e970a2008-09-20 12:20:21 +0000614 * docs/formats.txt: Updated.
615
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +00006162008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
617
Suzuki, Toshiya (鈴木俊哉)3afbee82008-09-19 17:46:01 +0000618 * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
619 CID-keyed font support.
620 * builds/mac/ftmac.c: Ditto.
621
6222008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
623
Werner Lemberg22e970a2008-09-20 12:20:21 +0000624 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
625 sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
626 `open_face_from_buffer' frees the passed buffer if it cannot open a
627 face from the buffer, so the caller must not free it.
Suzuki, Toshiya (鈴木俊哉)dec8e7b2008-09-19 16:47:01 +0000628
6292008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
630
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +0000631 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
632 for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
633 (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
Werner Lemberg22e970a2008-09-20 12:20:21 +0000634 table in sfnt table directory. It is used before loading TrueType
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +0000635 font driver.
636
Suzuki, Toshiya (鈴木俊哉)dec8e7b2008-09-19 16:47:01 +0000637 * docs/CHANGES: Add note about the current status of sfnt-wrapped
638 Type1 and sfnt-wrapped CID-keyed font support.
639
Werner Lemberg55c40632008-09-18 11:20:12 +00006402008-09-18 Werner Lemberg <wl@gnu.org>
641
642 * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
643 orthogonality (ft_free and ft_sfree could belong to different memory
644 pools). This fixes Savannah bug #24297.
645
Suzuki, Toshiya (鈴木俊哉)0c0db3e2008-09-18 04:36:56 +00006462008-09-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
647
648 * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
649 in ttags.h instead of numerical value 0x4F54544FL.
650
Werner Lemberg634df6e2008-09-16 07:25:31 +00006512008-09-16 Werner Lemberg <wl@gnu.org>
652
653 * src/cff/cffgload.h, src/cff/cffgload.c
654 (cff_decoder_set_width_only): Eliminate function call.
655
Werner Lemberged6c0e02008-09-15 07:49:40 +00006562008-09-15 George Williams <gww@silcom.com>
657
658 Fix Savannah bug #24179, reported by Bram Tassyns.
659
660 * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
661 of default values.
662
6632008-09-15 Werner Lemberg <wl@gnu.org>
664
665 * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
666 and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
667 prevent unconditional definition. This fixes Savannah bug #24241.
668
669 * src/psnames/pstables.h: Regenerated.
670
Werner Lembergb2116512008-09-12 16:27:48 +00006712008-09-13 Werner Lemberg <wl@gnu.org>
672
673 * autogen.sh, builds/unix/configure.raw,
674 include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
675 beautifying.
676
677 * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
678 include/freetype/ftlcdfil.h: Protect against FreeType 1.
679 Some other minor fixes.
680
681 * devel/ftoption.h: Synchronize with
682 include/freetype/config/ftoption.h.
683
Werner Lemberg8d3e6ec2008-09-11 08:29:14 +00006842008-09-11 Werner Lemberg <wl@gnu.org>
685
686 * src/base/ftbase.c: Include ftadvanc.c.
687
Werner Lembergb2116512008-09-12 16:27:48 +00006882008-09-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +0000689
690 * builds/unix/ftconfig.in: Duplicate the cpp computation of
691 FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
Werner Lembergb2116512008-09-12 16:27:48 +0000692 (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp
693 computation is disabled and the statically configured sizes are
694 used. This fixes Savannah bug #21250.
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +0000695
Werner Lembergb2116512008-09-12 16:27:48 +0000696 * builds/unix/configure.raw: Add the checks to compare the cpp
697 computation results of the bit length of int and long versus the
698 sizes detected by running `configure'. If the results are
699 different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
700 results.
701 New option --{enable|disable}-biarch-config is added to define or
702 undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +0000703
Werner Lembergb2116512008-09-12 16:27:48 +00007042008-09-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)8e296452008-09-05 03:21:21 +0000705
Werner Lembergb2116512008-09-12 16:27:48 +0000706 * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
707 ApplicationService framework is missing. Although this value is not
708 used in building of FreeType2, it is written in `freetype2.pc' and
709 `freetype-config'.
Suzuki, Toshiya (鈴木俊哉)8e296452008-09-05 03:21:21 +0000710
Werner Lembergb2116512008-09-12 16:27:48 +00007112008-09-01 david turner <david@freetype.org>
David Turner28534d62008-09-01 21:35:21 +0000712
Werner Lembergb2116512008-09-12 16:27:48 +0000713 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
714 index to mean `use default cached FT_Face's charmap'. This fixes
715 Savannah bug #22625.
716 * include/freetype/ftcache.h: Document it.
David Turner17cd6872008-09-02 02:34:29 +0000717
Werner Lembergb2116512008-09-12 16:27:48 +0000718
719 Make FT_MulFix an inlined function. This is done to speed up
David Turnerf47d2632008-09-02 02:21:58 +0000720 FreeType a little (on x86 3% when loading+hinting, 10% when
Werner Lembergb2116512008-09-12 16:27:48 +0000721 rendering, ARM savings are more important though). Disable this by
722 undefining FT_CONFIG_OPTION_INLINE_MULFIX.
David Turnerf47d2632008-09-02 02:21:58 +0000723
Werner Lembergb2116512008-09-12 16:27:48 +0000724 Use of assembler code can now be controlled with
725 FT_CONFIG_OPTION_NO_ASSEMBLER.
David Turner28534d62008-09-01 21:35:21 +0000726
Werner Lembergb2116512008-09-12 16:27:48 +0000727 * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
728 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
729 implementation.
730 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
731 implementation taken from `ftcalc.c'.
732 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
733 which is defined to the platform-specific assembler implementation
734 of FT_MulFix.
735 [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
736 (FT_MULFIX_INLINED): New macro.
David Turner28534d62008-09-01 21:35:21 +0000737
Werner Lembergb2116512008-09-12 16:27:48 +0000738 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
739 FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
740
741 * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
742
743 * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
744 FT_MULFIX_INLINED.
745
746
747 Add a new header named FT_ADVANCES_H declaring some new APIs to
748 extract the advances of one or more glyphs without necessarily
749 loading their outlines. Also provide `fast loaders' for the
750 TrueType, Type1, and CFF font drivers (more to come later).
751
752 * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
753
754 * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
755 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
756
757 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
758 `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
759 respectively.
760
761 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
762 ftadvanc.c.
763
764 * src/cff/cffdrivr.c (cff_get_advances): New function.
765 (cff_driver_class): Register it.
766
767 * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
768 (cff_decoder_parse_charstrings): Handle `width_only'.
769 (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
770
771 * src/cff/cffgload.h (cff_decoder): New element `width_only'.
772 (cff_decoder_set_width_only): New declaration.
773
774 * src/truetype/ttdriver.c (tt_get_advances): New function.
775 (tt_driver_class): Register it.
776
777 * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
778 (TT_Get_HMetrics, TT_Get_VMetrics): This.
779 Update callers.
780 * src/truetype/ttgload.h: Declare them.
781
782 * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
783 function.
784 * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
785
786
787 Add checks for minimum version of the `autotools' stuff.
788
789 * autogen.sh: Implement it.
790 (get_major_version, get_minor_version, get_patch_version,
791 compare_to_minimum_version, check_tool_version): New auxiliary
792 functions.
793
794 * README.CVS: Document it.
795
7962008-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)7981fe22008-08-29 06:09:03 +0000797
798 * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
799 ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
800
Werner Lemberg4dbf00a2008-08-28 16:12:48 +00008012008-08-28 Werner Lemberg <wl@gnu.org>
802
803 * src/type1/t1load.c (parse_encoding): Protect against infinite
804 loop. This fixes Savannah bug #24150 (where a patch has been posted
805 too).
806
Werner Lemberga4cb0d92008-08-23 19:54:06 +00008072008-08-23 Werner Lemberg <wl@gnu.org>
808
809 * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
810 (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug
811 #24119.
812
Werner Lembergb2116512008-09-12 16:27:48 +00008132008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)4c60bd92008-08-19 15:35:44 +0000814
Werner Lemberga4cb0d92008-08-23 19:54:06 +0000815 * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
816 even if passed library or arguments are invalid. This fixes a bug
817 that an uninitialized stream is freed when an invalid library handle
818 is passed. Originally proposed by Mike Fabian, 2008/08/18 on
819 freetype-devel.
Suzuki, Toshiya (鈴木俊哉)4c60bd92008-08-19 15:35:44 +0000820 (FT_Open_Face): Ditto (stream).
821 (load_face_in_embedded_rfork): Ditto (stream2).
822
Werner Lembergb2116512008-09-12 16:27:48 +00008232008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +0000824
Werner Lemberg77f73582008-08-19 04:53:02 +0000825 * src/base/ftmac.c: Add a fallback to guess the availability of the
826 `ResourceIndex' type. It is used when built without configure
827 (e.g., a build with Jam).
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +0000828 * builds/mac/ftmac.c: Ditto.
Werner Lemberg77f73582008-08-19 04:53:02 +0000829 * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
830 explicitly, even if `ResourceIndex' is unavailable.
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +0000831
Werner Lembergb2116512008-09-12 16:27:48 +00008322008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +0000833
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +0000834 * builds/unix/configure.raw: In checking of Mac OS X features,
Werner Lemberg77f73582008-08-19 04:53:02 +0000835 all-in-one header file `Carbon.h' is replaced by the minimum
836 header file `CoreServices.h', similar to current src/base/ftmac.c.
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +0000837
Werner Lembergb2116512008-09-12 16:27:48 +00008382008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +0000839
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +0000840 * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
Werner Lemberg77f73582008-08-19 04:53:02 +0000841 sub-header when its code_count is 0. Many Japanese Dynalab fonts
842 include such an empty sub-header (code_count == 0, first_code == 0
843 delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +0000844
Werner Lemberg7fd20182008-08-04 18:46:37 +00008452008-08-04 Werner Lemberg <wl@gnu.org>
846
847 * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes
848 Savannah bug #23995.
849
850 * src/cid/cidload.c (parse_expansion_factor): New callback function.
851 (cid_field_records): Use it for `ExpansionFactor'.
852 * src/cod/cidtoken.h: Handle `ForceBold' keyword.
853 Don't handle `ExpansionFactor'.
854
Werner Lembergeba3eee2008-08-04 15:54:24 +00008552008-08-04 Bram Tassyns <bramt@enfocus.be>
856
857 * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
858 resulted in incorrect scaling. This fixes Savannah bug #23973.
859
Werner Lemberg17e69012008-08-04 05:45:41 +00008602008-08-04 Werner Lemberg <wl@gnu.org>
861
862 Be more tolerant w.r.t. invalid entries in SFNT table directory.
863
864 * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
865 adjust table count.
866 Add more trace messages.
867 (tt_face_load_font_dir): Updated.
868
Werner Lemberg806f5932008-07-30 05:28:37 +00008692008-07-30 Werner Lemberg <wl@gnu.org>
870
871 * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
872 assume that the first argument on the stack is the bottom-most
873 element. Two reasons:
874
875 o According to people from Adobe it is missing in the Type 2
876 specification that pushing of additional, superfluous arguments
877 on the stack is prohibited.
878
879 o Acroread in general handles fonts differently, namely by popping
880 the number of arguments needed for a particular operand (as a PS
881 interpreter would do). In case of buggy fonts this causes a
882 different interpretation which of the elements on the stack are
883 superfluous and which not.
884
885 Since there are CFF subfonts (embedded in PDFs) which rely on
886 Acroread's behaviour, FreeType now does the same.
887
Werner Lemberg7f30c0c2008-07-27 05:43:59 +00008882008-07-27 Werner Lemberg <wl@gnu.org>
889
890 Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This
Werner Lemberg57586882009-01-06 09:40:22 +0000891 fixes Savannah bug #23940.
Werner Lemberg7f30c0c2008-07-27 05:43:59 +0000892
893 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
894 (EXTRA_GLYPH_LIST_SIZE): This.
895 Increase by 2.
896 (ft_wgl_extra_unicodes): Rename to...
897 (ft_extra_glyph_unicodes): This.
898 Add two code values.
899 (ft_wgl_extra_glyph_names): Rename to...
900 (ft_extra_glyph_names): This.
901 Add two glyphs.
902 (ft_wgl_extra_glyph_name_offsets): Rename to...
903 (ft_extra_glyph_name_offsets): This.
904 Add two offsets.
905
906 (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
907 (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
908 Updated.
909 (ps_unicodes_init): Updated.
910
Werner Lembergbdcfddc2008-07-26 21:22:20 +00009112008-07-26 Werner Lemberg <wl@gnu.org>
912
913 * src/cff/cffgload.c (cff_decoder_prepare,
914 cff_decoder_parse_charstrings): Improve debug output.
915
Werner Lemberge75da452008-07-22 20:59:59 +00009162008-07-22 Martin McBride <mmcbride@emtex.com>
917
918 * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
919 tt_cmap4_char_map_binary): Handle fonts which treat the last segment
920 specially. According to the specification, such fonts would be
921 invalid but acroread accepts them.
922
Werner Lemberg50997cd2008-07-16 21:03:40 +00009232008-07-16 Jon Foster <Jon.Foster@cabot.co.uk>
924
925 * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
926
927 * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
928
929 * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
930 Fix compiler warning.
931
Werner Lemberg3d2f06f2008-07-16 06:13:34 +00009322008-07-16 Werner Lemberg <wl@gnu.org>
933
Werner Lemberge75da452008-07-22 20:59:59 +0000934 Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
Werner Lemberg3d2f06f2008-07-16 06:13:34 +0000935
936 * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
937 Invert sids table only if `pure_cff' is set.
938 * src/cff/cffload.h: Udpated.
939
940 * src/cff/cffobjs.c (cff_face_init): Updated.
Werner Lembergbd48d352008-07-16 07:05:11 +0000941 Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
Werner Lemberg3d2f06f2008-07-16 06:13:34 +0000942
Werner Lemberge75da452008-07-22 20:59:59 +0000943 * docs/CHANGES: Updated.
944
Werner Lemberg6b19e092008-07-09 06:20:12 +00009452008-07-09 Werner Lemberg <wl@gnu.org>
946
947 * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
948 where num_locations < num_glyphs. Problem reported by Ding Li.
949
Werner Lemberg4e33f9e2008-07-05 06:35:28 +00009502008-07-05 Werner Lemberg <wl@gnu.org>
951
952 Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
Werner Lembergca6fc732008-07-05 06:36:39 +0000953 newer. This fixes Savannah bug #23648.
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000954
955 * configure: zsh doesn't like ${1+"$@"}.
956 Update needed GNU make version.
957 * builds/toplevel.mk: Check for `$(eval ...)'.
958 * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
959 it.
960
Werner Lemberg71b8f3f2008-07-04 07:22:06 +00009612008-07-04 Werner Lemberg <wl@gnu.org>
962
963 * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
964 pixel, only check for dropouts if neither start nor end point lies
965 on a pixel center. This fixes Savannah bug #23762.
966
Werner Lembergbe54a682008-06-29 07:43:41 +00009672008-06-29 Werner Lemberg <wl@gnu.org>
968
969 * Version 2.3.7 released.
970 =========================
971
972
973 Tag sources with `VER-2-3-7'.
974
975 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
976 version number to 2.3.7.
977
978 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
979 builds/win32/visualc/freetype.dsp,
980 builds/win32/visualc/freetype.vcproj,
981 builds/win32/visualce/index.html,
982 builds/win32/visualce/freetype.dsp,
983 builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
984
985 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
986
987 * builds/unix/configure.raw (version_info): Set to 9:18:3.
988
989 * docs/release: Updated.
990
Werner Lemberg4e7d9842008-06-27 22:26:11 +00009912008-06-28 Werner Lemberg <wl@gnu.org>
992
Werner Lembergbe54a682008-06-29 07:43:41 +0000993 * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
Werner Lemberg4e7d9842008-06-27 22:26:11 +0000994 * src/ftcalc.c: Here. This fixes Savannah bug #23729.
995
Werner Lemberga741c6f2008-06-27 06:58:48 +00009962008-06-27 Werner Lemberg <wl@gnu.org>
997
998 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
999 Horizontal_Gray_Sweep_Drop): Test for intersections which
1000 degenerate to a single point can be ignored; this has been confirmed
1001 by Greg Hitchcock from Microsoft. (This was commented out code.)
1002
Werner Lemberg8a9b6392008-06-26 19:56:51 +000010032008-06-26 Werner Lemberg <wl@gnu.org>
1004
1005 Improve navigation in API reference.
1006
1007 * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
1008 (html_header_6): This.
1009 (html_header_3, html_header_3i, html_header_4, html_header_5,
1010 html_header_5t): New strings.
1011 (toc_footer_start, toc_footer_end): New strings.
1012 (HtmlFormatter::html_header): Updated.
1013 (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
1014 New strings.
1015 (HtmlFormatter::index_enter): Use `html_index_header'.
1016 (HtmlFormatter::index_exit): Print `html_footer'.
1017 (HtmlFormatter::toc_enter): Use `html_toc_header'.
1018 (HtmlFormatter::toc_exit): Print proper footer.
1019
1020 Convert ~ to non-breakable space.
1021
1022 * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
1023 Update header files accordingly.
1024
Werner Lembergb2116512008-09-12 16:27:48 +000010252008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001026
Werner Lemberg8a9b6392008-06-26 19:56:51 +00001027 * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
Werner Lemberge172c332008-06-25 22:21:42 +00001028 and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5
1029 bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
1030 ResourceIndex type definition. The macro does not inform the type
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001031 availability.
1032 * src/base/ftmac.c: More parentheses are inserted to clarify the
Werner Lemberge172c332008-06-25 22:21:42 +00001033 conditionals to disable legacy APIs in `10.5 and later' cases. If
1034 HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001035
Werner Lemberg5563bea2008-06-24 05:44:28 +000010362008-06-24 Werner Lemberg <wl@gnu.org>
1037
Werner Lemberg830846e2008-07-27 06:27:21 +00001038 * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
1039 mode.
Werner Lembergce8853a2008-06-24 11:19:03 +00001040
1041 * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
1042 Draw_Sweep): No-dropout mode is value 2, not value 0.
1043 (Draw_Sweep): Really skip dropout handling for no-dropout mode.
1044
10452008-06-24 Werner Lemberg <wl@gnu.org>
1046
Werner Lemberg5563bea2008-06-24 05:44:28 +00001047 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
1048 if it consists of one point only. Based on a patch from Savannah
1049 bug #23683 (from John Tytgat).
1050
Werner Lemberg745a4f42008-06-22 22:41:24 +000010512008-06-22 Werner Lemberg <wl@gnu.org>
1052
1053 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
1054 with IS_HINTED.
1055
1056 * docs/CHANGES: Updated.
1057
Werner Lembergb2116512008-09-12 16:27:48 +000010582008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +00001059
Werner Lemberg745a4f42008-06-22 22:41:24 +00001060 * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
1061 but LDFLAGS does not, import it to LDFLAGS. The option is used to
1062 specify non-default SDK on Mac OS X (e.g., universal binary SDK for
1063 Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
1064 recommends to add the option only to CFLAGS, LDFLAGS should include
1065 it because libfreetype.la is built with -no-undefined. This fixes a
1066 bug reported by Ryan Schmidt in MacPorts,
1067 http://trac.macports.org/ticket/15331.
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +00001068
Werner Lemberg5df5dbb2008-06-22 13:40:08 +000010692008-06-21 Werner Lemberg <wl@gnu.org>
1070
1071 Enable access to the various dropout rules of the B&W rasterizer.
1072 Pass dropout rules from the TT bytecode interpreter to the
Werner Lemberg959cb8e2008-06-25 20:58:33 +00001073 rasterizer.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +00001074
1075 * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
1076 FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
1077
1078 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
1079 Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
1080 OpenType specification.
1081 Fix mode 4 computation.
1082 (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
1083
Werner Lemberg959cb8e2008-06-25 20:58:33 +00001084 * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
1085 mode to FT_OUTLINE_XXX flags.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +00001086
1087 * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
1088
Werner Lembergcd6dcca2008-06-19 06:20:21 +000010892008-06-19 Werner Lemberg <wl@gnu.org>
1090
Werner Lemberg5b631d82008-06-19 16:23:43 +00001091 * src/cff/cffobjs.c (cff_face_init): Compute final
1092 `dict->units_per_em' value before assigning it to
Werner Lembergbe54a682008-06-29 07:43:41 +00001093 `cffface->units_per_EM'. Otherwise, CFFs without subfonts are
Werner Lemberg5b631d82008-06-19 16:23:43 +00001094 scaled incorrectly if the font matrix is non-standard. This fixes
1095 Savannah bug #23630.
1096
1097 * docs/CHANGES: Updated.
1098
10992008-06-19 Werner Lemberg <wl@gnu.org>
1100
Werner Lembergbe54a682008-06-29 07:43:41 +00001101 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
1102 from 2008-06-19.
Werner Lembergcd6dcca2008-06-19 06:20:21 +00001103
Werner Lembergd57a5e92008-06-18 06:16:39 +000011042008-06-18 Werner Lemberg <wl@gnu.org>
1105
1106 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
1107 Reported by Peter Weilbacher <mozilla@weilbacher.org>.
1108
1109 * docs/CHANGES: Updated.
1110
Werner Lembergca947c22008-06-16 05:33:51 +000011112008-06-15 George Williams <gww@silcom.com>
1112
1113 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
1114 `valid->extra2' to 1. This is undocumented in the OpenType 1.5
1115 specification.
1116
Werner Lembergad83e052008-06-15 11:06:12 +000011172008-06-15 Werner Lemberg <wl@gnu.org>
1118
1119 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
1120 from clobbering. Patch from Savannah bug report #23556.
1121
1122 * docs/CHANGES: Document it.
1123
Werner Lemberg102bb832008-06-10 04:57:19 +000011242008-06-10 Werner Lemberg <wl@gnu.org>
1125
Werner Lembergb796adb2008-06-10 17:15:35 +00001126 * autogen.sh: Add option `--install' to libtoolize.
1127
11282008-06-10 Werner Lemberg <wl@gnu.org>
1129
Werner Lemberg6174e172008-06-10 05:58:25 +00001130 * Version 2.3.6 released.
1131 =========================
1132
1133
1134 Tag sources with `VER-2-3-6'.
1135
1136 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1137 version number to 2.3.6.
1138
1139 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1140 builds/win32/visualc/freetype.dsp,
1141 builds/win32/visualc/freetype.vcproj,
1142 builds/win32/visualce/index.html,
1143 builds/win32/visualce/freetype.dsp,
1144 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
1145
1146 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
1147
1148 * builds/unix/configure.raw (version_info): Set to 9:17:3.
1149
1150
1151 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
1152 and `scale_y'.
1153 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
1154
1155
1156 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
1157 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
1158
11592008-06-10 Werner Lemberg <wl@gnu.org>
1160
Werner Lemberg102bb832008-06-10 04:57:19 +00001161 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
1162 `clazz->done_face'.
1163
Werner Lemberg630e24d2008-06-09 21:20:18 +000011642008-06-09 VaDiM <s_sliva@rambler.ru>
1165
1166 Support debugging on WinCE. From Savannah patch #6536; this fixes
1167 bug #23497.
1168
1169 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
1170 as a replacement for OutputDebugStringA (which WinCE doesn't have).
1171 Update all callers.
1172 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
1173 environment variables.
1174
Werner Lemberga984fda2008-06-09 21:02:13 +000011752008-06-09 Werner Lemberg <wl@gnu.org>
1176
1177 * README.CVS: Updated.
1178
Werner Lemberg26bd7a22008-06-09 21:27:17 +00001179 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
1180 for newer versions of autoconf and friends.
Werner Lemberga984fda2008-06-09 21:02:13 +00001181
Werner Lemberg7cb9ec02008-06-09 20:49:29 +000011822008-06-08 Werner Lemberg <wl@gnu.org>
1183
1184 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
1185 `private_len' unsigned.
1186
1187 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
1188 it as such.
1189 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
1190
1191
1192 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
1193
1194
1195 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
1196 for sane value.
1197 Fix typo.
1198
1199
1200 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
1201
1202
1203 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
1204 `last_point'.
1205
1206
1207 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
1208 `maxTwilightPoints'.
1209
Werner Lembergd77e7222008-06-05 22:07:19 +000012102008-06-06 Werner Lemberg <wl@gnu.org>
1211
1212 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
1213 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
1214
Werner Lemberg4c3cc762008-06-03 20:53:49 +000012152008-06-03 Werner Lemberg <wl@gnu.org>
1216
1217 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
1218 FT_Pointer. Reported by Ian Britten <britten@caris.com>.
1219
Werner Lemberg8e3539b2008-06-02 13:53:54 +000012202008-06-02 Werner Lemberg <wl@gnu.org>
1221
1222 Emit header info for defined FreeType objects in reference.
1223
1224 * src/tools/docmaker/content.py (re_header_macro): New regexp.
1225 (ContentProcessor::__init__): Initialize new dictionary `headers'.
1226 (DocBlock::__init__): Collect macro header definitions.
1227
1228 * src/tools/docmaker/tohtml.py (header_location_header,
1229 header_location_footer): New strings.
1230 (HtmlFormatter::__init__): Pass `headers' dictionary.
1231 (HtmlFormatter::print_html_field): Don't emit paragraph tags.
1232 (HtmlFormatter::print_html_field_list): Emit empty paragraph.
1233 (HtmlFormatter::block_enter): Emit header info.
1234
12352008-06-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg7493ea12008-06-02 07:24:36 +00001236
1237 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
1238 FT_INCREMENTAL_H): Added.
1239
Werner Lembergc94fa662008-05-27 23:24:07 +000012402008-05-28 Werner Lemberg <wl@gnu.org>
1241
Werner Lembergde0d0052008-05-28 21:51:15 +00001242 * src/tools/docmaker/sources.py (SourceBlock::__init__): While
1243 looking for markup tags, return immediately as soon a single one is
1244 found.
1245
12462008-05-28 Werner Lemberg <wl@gnu.org>
1247
Werner Lembergc94fa662008-05-27 23:24:07 +00001248 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
1249 original, unscaled input values. Confirmed by Greg Hitchcock from
1250 Microsoft.
1251
Werner Lemberg35a90b72008-05-27 18:16:03 +000012522008-05-27 Werner Lemberg <wl@gnu.org>
1253
1254 * src/tools/docmaker/tohtml.py (block_footer_start,
1255 block_footer_middle): Beautify output.
1256
Werner Lembergc9381312008-05-25 12:19:34 +000012572008-05-25 Werner Lemberg <wl@gnu.org>
1258
1259 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
1260 trying to render into a zero-width/height bitmap, not an error code.
1261
Werner Lembergffa49652008-05-25 12:43:57 +00001262 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
1263 of the graphics state for subglyphs to...
1264 (TT_Hint_Glyph): This function.
1265 Hinting instructions for a composite glyph apparently refer to the
1266 just hinted subglyphs, not the unhinted, unscaled outline. This
1267 seems to fix Savannah bugs #20973 and (at least partially) #23310.
1268
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +000012692008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1270
1271 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
Werner Lemberg355f1b12008-05-22 06:12:23 +00001272 `aface' is returned by FT_New_Face_From_FOND(). The patch was
1273 proposed by an anonymous reporter of Savannah bug #23204.
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +00001274
Werner Lemberg16dc51f2008-05-18 17:36:15 +000012752008-05-18 Werner Lemberg <wl@gnu.org>
1276
Werner Lemberg5e8a3682008-05-18 21:49:02 +00001277 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
1278 correction for pixel boundary. Without this patch, the effect can
1279 be cumulative under certain circumstances, making glyphs taller and
1280 taller after each call. This fixes Savannah bug #19976.
1281
12822008-05-18 Werner Lemberg <wl@gnu.org>
1283
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001284 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
1285 This fixes Savannah bug #23280.
1286
1287 * docs/CHANGES: Updated.
1288
Werner Lembergb2116512008-09-12 16:27:48 +000012892008-05-18 David Turner <david@freetype.org>
David Turnera92cec52008-05-18 14:08:57 +00001290
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001291 * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
1292 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
1293 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
1294 declarations non-global.
David Turnera92cec52008-05-18 14:08:57 +00001295
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001296 * src/type1/t1load.c: Add missing comment.
David Turnera92cec52008-05-18 14:08:57 +00001297
Werner Lemberg89d64fa2008-05-17 20:06:13 +000012982008-05-17 Sam Hocevar <samh>
1299
1300 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
1301 glyphs correctly. Patch from Savannah bug #23277.
1302
Werner Lemberga2f17cc2008-05-17 10:01:45 +000013032008-05-16 Werner Lemberg <wl@gnu.org>
1304
1305 * docs/CHANGES: Updated.
1306
13072008-05-16 Sergey Tolstov <stolstov@esri.com>
1308
1309 Improve support for WGL4 encoded fonts.
1310
1311 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
1312 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
1313 ft_wgl_extra_glyph_name_offsets): New arrays.
1314 (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
1315 (ps_unicodes_init): Use them to add additional Unicode mappings.
1316
Werner Lemberg504645e2008-05-14 23:26:20 +000013172008-05-15 Werner Lemberg <wl@gnu.org>
1318
Werner Lembergbcc750e2008-05-16 04:50:00 +00001319 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1320 <op_closepath>: `closepath' without a path is a no-op, not an error
1321 (cf. the PS reference manual).
1322
1323 Reported by Martin McBride.
1324
13252008-05-15 Werner Lemberg <wl@gnu.org>
1326
Werner Lembergbcfcc712008-05-15 09:14:39 +00001327 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
1328
13292008-05-15 Werner Lemberg <wl@gnu.org>
1330
Werner Lemberg504645e2008-05-14 23:26:20 +00001331 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
Werner Lemberg2d738992008-05-14 23:33:53 +00001332 which contains a single but empty entry. This is technically
1333 invalid (since it must end with `return'), but...
Werner Lemberg504645e2008-05-14 23:26:20 +00001334
1335 Reported by Martin McBride.
1336
Werner Lemberge6e6ead2008-05-14 23:05:38 +000013372008-05-14 Werner Lemberg <wl@gnu.org>
1338
1339 Finish fix of scaling bug of CID-keyed CFF subfonts.
1340
1341 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
1342 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
1343 functions.
1344
1345 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
1346 provide global hinting data for both the top-font and all subfonts
1347 (with proper scaling).
1348
1349 * src/cff/cffobjs.c (cff_make_private_dict): New function, using
1350 code from `cff_size_init'.
1351 (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
1352 Use CFF_Internal and handle subfonts.
1353 (cff_face_init): Handle top-dict and subfont matrices correctly;
1354 apply some heuristic in case of unlikely matrix concatenation
1355 results. This has been discussed with people from Adobe (thanks
1356 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
1357 and not correct.
1358
1359 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
1360
1361 * src/cff/cffgload.c (cff_builder_init): Updated.
1362 (cff_decoder_prepare): Handle hints globals for subfonts.
1363 Update all callers.
1364 (cff_slot_load): Handling scaling of subfonts properly.
1365
1366 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
1367 (cff_parse_font_matrix): Use it.
1368
1369 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
1370 FT_ULong.
1371
1372 * docs/CHANGES: Document it.
1373
Werner Lembergfb572282008-05-13 12:10:04 +000013742008-05-13 Werner Lemberg <wl@gnu.org>
1375
1376 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
1377 Handle case `face_index < 0'.
1378 * docs/CHANGES: Document it.
1379
Werner Lemberg551dd3c2008-05-04 13:37:38 +000013802008-05-04 Werner Lemberg <wl@gnu.org>
1381
1382 First steps to fix the scaling bug of CID-keyed CFF subfonts,
1383 reported by Ding Li on 2008/03/28 on freetype-devel.
1384
1385 * src/base/cff/cffparse.c (power_tens): New array.
1386 (cff_parse_real): Rewritten to introduce a fourth parameter which
1387 returns the `scaling' of the real number so that we have no
1388 precision loss. This is not used yet.
1389 Update all callers.
1390 (cff_parse_fixed_thousand): Replace with...
1391 (cff_parse_fixed_scaled): This function. Update all callers.
1392
Werner Lemberg6d29f0f2008-05-03 15:54:15 +000013932008-05-03 Werner Lemberg <wl@gnu.org>
1394
1395 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
1396 transformation since it recursively calls FT_Load_Glyph. This fixes
1397 Savannah bug #23143.
1398
Werner Lembergde9479a2008-04-26 12:52:57 +000013992008-04-26 Werner Lemberg <wl@gnu.org>
1400
1401 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
1402 and `scale_y' as obsolete since they aren't used.
1403 * src/psaux/psobjs.c (t1_builder_init): Updated.
1404
1405 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
1406 obsolete since they aren't used.
1407 * src/cff/cffgload.c (cff_builder_init): Updated.
1408
Werner Lemberg4ebc8902008-04-13 22:06:12 +000014092008-04-14 Werner Lemberg <wl@gnu.org>
1410
1411 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
1412 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
1413 bug #22909.
1414
Werner Lemberg048b7562008-04-13 05:55:36 +000014152008-04-13 Werner Lemberg <wl@gnu.org>
1416
1417 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
1418 integer part is zero.
1419
Werner Lembergc32e83f2008-04-01 06:07:37 +000014202008-04-01 Werner Lemberg <wl@gnu.org>
1421
1422 Fix compilation with g++ 4.1 (with both `single' and `multi'
1423 targets).
1424
1425 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
1426 which is crossed by a `goto'.
1427
1428 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
1429
Werner Lemberg210d6182008-04-01 05:55:48 +000014302008-03-31 Werner Lemberg <wl@gnu.org>
1431
1432 Fix support for subsetted CID-keyed CFFs.
1433
1434 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
1435 FT_IS_CID_KEYED): New macros.
1436
1437 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
1438 maximum CID value in CID-keyed CFFs.
1439 Handle FT_FACE_FLAG_CID_KEYED flag.
1440
1441 * docs/CHANGES: Document it.
1442
1443
1444 Fix CFF font matrix calculation and improve precision.
1445
1446 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
1447 part is zero.
1448 (cff_parse_font_matrix): Simplify computation of `units_per_em';
1449 this prevents overflow also.
1450
1451
1452 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
1453
1454 * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
1455 (cid_get_ros): New function.
1456 (cid_service_cid_info): New service structure.
1457 (cid_services): Register it.
1458
Werner Lemberga56e5262008-03-23 14:53:44 +000014592008-03-23 Werner Lemberg <wl@gnu.org>
1460
1461 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
1462
1463 * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
1464 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
1465
Werner Lemberg85751172008-03-21 07:16:00 +000014662008-03-21 Laurence Darby <ldarby>
1467
1468 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
1469 Savannah bug #22675.
1470
Werner Lemberg3863c952008-03-13 06:38:37 +000014712008-03-13 Derek Clegg <dclegg@apple.com>
1472
1473 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
1474 Patch from Savannah bug #22541.
1475
Werner Lembergfc293932008-03-03 08:08:12 +000014762008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
1477
1478 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
1479 tt_cmap14_find_variant): Return correct value.
1480 (tt_cmap14_variant_chars): Fix check for `di'.
1481
Werner Lemberg5057e362008-02-29 07:23:02 +000014822008-02-29 Wermer Lemberg <wl@gnu.org>
1483
1484 * docs/CHANGES: Updated.
1485
Werner Lemberg7faa1552008-02-29 07:14:38 +000014862008-02-29 Wolf
1487
1488 Add build support for symbian platform. From Savannah bug #22440.
1489
1490 * builds/symbian/*: New files.
1491
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +000014922008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1493
Werner Lemberg9b9d3342008-02-21 23:22:06 +00001494 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
1495 synthesis. For any face of a specified FOND, always the name for
1496 the first face was used. Except of a FOND that refers multiple
1497 Type1 font files, wrong synthesized font names are not used at all,
1498 so this is an invisible bug. A few limit checks are added too.
Suzuki, Toshiya (鈴木俊哉)6cb2faa2008-02-21 18:46:07 +00001499
1500 * builds/mac/ftmac.c: Ditto.
1501
15022008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1503
Werner Lemberg31093cc2008-02-21 17:10:04 +00001504 * builds/unix/configure.raw: Split compiler option to link Carbon
1505 frameworks to one option for CoreServices framework and another
1506 option for ApplicationServices framework. The split options can be
1507 managed by GNU libtool to avoid unrequired duplication when FreeType
1508 is linked with other applications. Suggested by Daniel Macks,
1509 Savannah bug #22366.
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +00001510
Werner Lemberg28464c42008-02-18 20:34:42 +000015112008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
1512
1513 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
1514 from Savannah bug #22356.
1515
Werner Lemberg44c655b2008-02-17 08:22:08 +000015162008-02-17 Jonathan Blow <jon@number-none.com>
1517
1518 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1519 Check for valid callback pointers.
1520
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +000015212008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1522
1523 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
1524 handle by its value instead of ResError(), fix provided by Deron
Werner Lembergc903f2f2008-02-17 08:23:04 +00001525 Kazmaier. According to the Resource Manager Reference,
1526 GetResource(), Get1Resource(), GetNamedResource(),
1527 Get1NamedResource() and RGetResource() set noErr but return NULL
1528 handle when they can not find the requested resource. These
1529 functions never return undefined values, so it is sufficient to
1530 check if the handle is not NULL.
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +00001531
1532 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
1533
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +000015342008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1535
1536 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
Werner Lembergaa722df2008-02-14 10:46:40 +00001537 inclusion styles. Now it always includes src/base/ftmac.c;
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00001538 builds/mac/ftmac.c is never included in any configuration.
Werner Lembergaa722df2008-02-14 10:46:40 +00001539
1540 * builds/unix/configure.raw: Print warning if configure is executed
1541 with options to specify Carbon functionalities explicitly.
1542
1543 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00001544 included automatically and manual replacement is required.
1545
Werner Lemberg744dd452008-02-11 08:22:40 +000015462008-02-11 Werner Lemberg <wl@gnu.org>
1547
1548 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
1549 (dos_setup), builds/freetype.mk (clean_project_dos,
1550 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
1551 Murdoch.
1552
Werner Lemberg4c933992008-01-18 05:32:55 +000015532008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
1554
1555 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
1556 mention intra-pixel algorithm.
1557
1558 * include/freetype/freetype.h (FT_Render_Mode): Mention that
1559 FT_Library_SetLcdFilter can be used to reduce fringes.
1560
Werner Lemberg1ddd1b72008-01-16 06:58:54 +000015612008-01-16 Werner Lemberg <wl@gnu.org>
1562
1563 * src/raster/ftraster.c (ft_black_render): Check `outline' before
1564 using it. Reported by Allan Yang.
1565
Werner Lembergeca1f272008-01-12 07:46:09 +000015662008-01-12 Werner Lemberg <wl@gnu.org>
1567
1568 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
1569
15702008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
1571
1572 * src/raster/ftraster.c (ft_black_init)
1573 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
1574
Werner Lembergbf391cb2008-01-10 08:47:08 +000015752008-01-10 Werner Lemberg <wl@gnu.org>
1576
1577 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
1578 where the number of contours in a simple glyph is zero (and which
1579 does contain an entry in the `glyf' table). This fixes Savannah bug
1580 #21990.
1581
Suzuki, Toshiya (鈴木俊哉)75696862008-01-04 01:43:23 +000015822008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1583
1584 Formatting suggested by Sean McBride.
1585
1586 * builds/mac/ftmac.c: Formatting (tab expanded).
1587 * src/autofit/afindic.c: Ditto.
1588 * src/base/ftcid.c: Ditto.
1589 * src/base/ftmac.c: Ditto.
1590
Werner Lembergd2e15732007-12-30 23:49:14 +000015912007-12-30 Werner Lemberg <wl@gnu.org>
1592
1593 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
1594 correctly.
1595
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +000015962007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1597
1598 Improvement of POSIX resource-fork accessor to load unsorted
Werner Lembergd2e15732007-12-30 23:49:14 +00001599 references in a resource. In HelveLTMM (resource-fork PostScript
1600 Type1 font bundled with Mac OS X since 10.3.x), the appearance order
1601 of PFB chunks is not sorted; sorting the chunks by reference IDs is
1602 required.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001603
Werner Lembergd2e15732007-12-30 23:49:14 +00001604 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
1605 type to store a pair of reference ID and offset to the chunk.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001606
Werner Lembergd2e15732007-12-30 23:49:14 +00001607 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
1608 sort FT_RFork_Ref by their reference IDs.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001609
Werner Lembergd2e15732007-12-30 23:49:14 +00001610 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
1611 sorted by reference ID.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001612
Werner Lembergd156cab2007-12-14 07:48:32 +000016132007-12-14 Werner Lemberg <wl@gnu.org>
1614
1615 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
1616 division too early; otherwise the most significant digit(s) of the
1617 final result are lost as the value is truncated to an integer. This
1618 fixes Savannah bug #21794 (where the patch has been posted too).
1619
Werner Lembergbd7e1c32007-12-06 17:17:30 +000016202007-12-06 Fix <4d876b82@gmail.com>
1621
1622 Pass options from one configure script to another as-is (not
1623 expanded). This is needed for options like
1624 --includedir='${prefix}/include'.
1625
1626 * builds/unix/detect.mk, configure: Prevent argument expansion in
1627 call to the (real) `configure' script.
1628
16292007-12-06 Werner Lemberg <wl@gnu.org>
1630
1631 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
1632 TT_USE_BYTECODE_INTERPRETER isn't defined.
1633
16342007-12-06 Werner Lemberg <wl@gnu.org>
1635
1636 There exist CFFs which contain opcodes for the Type 1 operators
1637 `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
1638 However, it doesn't harm to support them.
1639
1640 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
1641 `cff_op_closepath.'
1642 (cff_argument_counts): Ditto.
1643
1644 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
1645 and 13 (hsbw) which are invalid in Type 2 charstrings.
1646
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +000016472007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1648
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001649 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
1650 support new pathname syntax `..namedfork/rsrc' to access a resource
1651 fork on Mac OS X. The legacy syntax `/rsrc' does not work on
1652 case-sensitive HFS+.
Suzuki, Toshiya (鈴木俊哉)a6d36572007-12-06 10:27:15 +00001653 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
1654 buffer size to store a pathname.
1655 * include/freetype/internal/ftrfork.h: Increment the number of
1656 resource fork guessing rule.
1657
16582007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1659
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001660 * builds/unix/configure.raw: Improve the compile tests to search
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +00001661 Carbon functions.
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001662 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +00001663 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
1664
16652007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1666
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +00001667 The documents and comments for Mac OS X are improved by Sean
1668 McBride.
1669
1670 * src/base/ftmac.c: Fix a comment.
1671 * include/freetype/ftmac.h: Ditto.
1672 * docs/INSTALL.MAC: Improve English and add comment on lowest
1673 system version specified by MACOSX_DEPLOYMENT_TARGET.
1674
Werner Lemberga10d2b72007-12-04 22:05:54 +000016752007-12-04 Werner Lemberg <wl@gnu.org>
1676
1677 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
1678 concatenate error codes.
1679 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
1680
Werner Lembergd496b922007-12-04 21:49:59 +000016812007-12-04 Graham Asher <graham.asher@btinternet.com>
1682
1683 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
1684 concatenate error codes.
1685
Werner Lembergc0da5232007-12-04 21:44:32 +000016862007-12-04 Sean McBride <sean@rogue-research.com>
1687
1688 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
1689 warning.
1690
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +000016912007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1692
Werner Lemberg6174e172008-06-10 05:58:25 +00001693 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
Werner Lemberg24fe6182007-11-23 09:18:07 +00001694 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
1695 cannot mmap() the specified file and cannot seek to head of the
1696 specified file, it returns NULL stream and FT_Open_New() returns the
1697 error immediately. On MacOS, most legacy MacOS fonts fall into such
1698 a scenario because their data forks are zero-sized and cannot be
1699 sought. To proceed to guessing of resource fork fonts, the
1700 functions for legacy MacOS font must properly handle the NULL stream
1701 returned by FT_New_Stream().
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001702
Werner Lemberg24fe6182007-11-23 09:18:07 +00001703 * src/base/ftobjs.c (IsMacBinary): Return error
1704 FT_Err_Invalid_Stream_Operation immediately when NULL stream is
1705 passed.
1706 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
1707 to fallback. Originally, legacy MacOS font is tested in the cases
1708 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
1709 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
1710 .dfont header is combined). Now the case of
1711 FT_Err_Cannot_Open_Stream is included.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001712
Werner Lemberg24fe6182007-11-23 09:18:07 +00001713 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
1714 skip FT_Stream_Seek(), which seeks to the head of stream, and
1715 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
1716 for a NULL stream causes a Bus error on Mac OS X.
1717 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001718 immediately if passed stream is NULL.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001719 (raccess_guess_apple_single): Ditto.
1720
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000017212007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1722
Suzuki, Toshiya (鈴木俊哉)a5470682007-11-16 16:29:36 +00001723 Fix for Carbon incompatibilities since Mac OS X 10.5,
1724 proposed by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001725
1726 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
1727
1728 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
Werner Lemberg830846e2008-07-27 06:27:21 +00001729 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001730 Carbon functions from a forked process is classified as unsafe
Werner Lemberg830846e2008-07-27 06:27:21 +00001731 by Apple. All Carbon-dependent functions should be deprecated.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001732
Werner Lembergf2e33c12009-01-06 06:59:36 +00001733 * src/base/ftmac.c: Use essential header files
1734 <CoreServices/CoreServices.h> and
1735 <ApplicationServices/ApplicationServices.h> instead of
1736 all-in-one header file <Carbon/Carbon.h>.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001737
1738 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
1739 genuine macro PATH_MAX.
1740
1741 Add fallback macro for kATSOptionFlagsUnRestrictedScope which
1742 is not found in Mac OS X 10.0.
1743
1744 Multi-character constants ('POST', 'sfnt' etc) are replaced by
1745 64bit constants calculated by FT_MAKE_TAG() macro.
1746
1747 For the index in the segment of resource fork, new portable
1748 type ResourceIndex is introduced for better compatibility.
1749 This type is since Mac OS X 10.5, so it is defined as short
1750 when built on older platforms.
1751
1752 (FT_ATSFontGetFileReference): If build target is only the systems
1753 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
1754
1755 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
1756 and newer or 64bit platform, because legacy type FSSpec type is
1757 removed completely.
1758
1759 (FT_New_Face_From_FSSpec): Ditto.
1760
17612007-11-01 Werner Lemberg <wl@gnu.org>
Werner Lembergd503fc52007-11-01 09:19:44 +00001762
1763 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
1764 fixes Savannah bug #21485.
1765
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000017662007-10-29 Daniel Svoboda <dasvo@planeta@cz>
Werner Lemberg27649fb2007-10-29 22:00:58 +00001767
1768 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
1769 can handle the font at all, then check `face_index'. Otherwise, the
1770 driver might return the wrong error code. This fixes Savannah bug
1771 #21468.
1772
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000017732007-10-21 Werner Lemberg <wl@gnu.org>
Werner Lemberg7d9c1892007-10-21 08:12:30 +00001774
1775 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
Werner Lemberge77b6c42007-10-21 08:18:40 +00001776 support for bit 8 of the `fsSelection' field in the `OS/2' table.
1777 MS is already using this; hopefully, this becomes part of OpenType
1778 1.5.
Werner Lemberg7d9c1892007-10-21 08:12:30 +00001779 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
1780 (WWS_SUBFAMILY).
1781
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000017822007-10-20 Werner Lemberg <wl@gnu.org>
Werner Lemberg66842572007-10-20 16:17:28 +00001783
1784 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
1785 Add `td.left' element to CSS.
1786 (toc_section_enter): Use it.
1787
David Turnercf432db2007-10-19 12:36:40 +000017882007-10-18 David Turner <david@freetype.org>
1789
Werner Lemberg7f2425f2007-10-20 16:15:07 +00001790 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
1791 functions related to cmap type 14 support to the
1792 `FT_Object_ActionName' scheme:
David Turnercf432db2007-10-19 12:36:40 +00001793
Werner Lemberg7f2425f2007-10-20 16:15:07 +00001794 FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
1795 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
1796 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
1797 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
1798 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
1799
1800 Update documentation accordingly.
1801
1802 * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
1803 Make the code a little more consistent with FreeType coding
1804 conventions and modify the cmap14 functions that returned a newly
1805 allocated array to use a persistent vector from the TT_CMap14 object
David Turnercf432db2007-10-19 12:36:40 +00001806 instead.
1807
Werner Lemberg7f2425f2007-10-20 16:15:07 +00001808 (TT_CMap14Rec): Provide array and auxiliary data for result.
1809 (tt_cmap14_done, tt_cmap14_ensure): New functions.
1810
1811 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
1812 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
1813 tt_cmap14_char_var_index, tt_cmap14_variants,
1814 tt_cmap14_char_variants, tt_cmap14_def_char_count,
1815 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
1816 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
1817
Werner Lemberg9a966b72007-10-15 17:21:32 +000018182007-10-15 George Williams <gww@silcom.com>
1819
1820 Add support for cmap type 14.
1821
1822 * devel/ftoption.h, include/freetype/config/ftoption.h
1823 (TT_CONFIG_CMAP_FORMAT_14): New macro.
1824
1825 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
1826 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
1827 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
1828 support function prototypes.
1829 (FT_CMap_ClassRec): Add them.
1830 Update all users.
1831
1832 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
1833 macro.
1834
1835 * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
1836 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
1837 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
1838 functions.
1839
1840 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
1841 function.
1842 (FT_Set_Charmap): Disallow cmaps of type 14.
1843 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
1844 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
1845 FT_Get_Chars_Of_Variant): New API functions.
1846
1847 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
1848
1849 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
1850 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
1851 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
1852 tt_cmap14_find_variant, tt_cmap14_char_var_index,
1853 tt_cmap14_char_var_isdefault, tt_cmap14_variants,
1854 tt_cmap14_char_variants, tt_cmap14_def_char_count,
1855 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
1856 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
1857 structures for cmap 14 support.
1858 (tt_cmap_classes): Register tt_cmap14_class_rec.
1859 (tt_face_build_cmaps): One more error message.
1860
1861 * docs/CHANGES: Mention cmap 14 support.
1862
Werner Lemberg74597cc2007-10-01 07:08:56 +000018632007-10-01 Werner Lemberg <wl@gnu.org>
1864
1865 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
David Turnercf432db2007-10-19 12:36:40 +00001866 charmap fails, do the loop again while searching a UCS-2 charmap.
Werner Lemberg74597cc2007-10-01 07:08:56 +00001867 This favours MS charmaps over Apple ones.
1868
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +000018692007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1870
Werner Lemberg9a966b72007-10-15 17:21:32 +00001871 * src/base/ftmac.c: Introduction of abstract `short' data types,
1872 ResFileRefNum and ResID. These types were introduced for Copland,
1873 then backported to MPW. The variables exchanged with FileManager
1874 QuickDraw frameworks are redefined by these data types. Patch was
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +00001875 proposed by Sean McBride.
1876 * builds/mac/ftmac.c: Ditto.
1877
Werner Lembergabc44f52007-08-18 06:38:07 +000018782007-08-18 Werner Lemberg <wl@gnu.org>
1879
1880 * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
1881 by Imran Yousaf. Fixes Savannah bug #20773.
1882
1883 (otv_Lookup_validate): Correct handling of LookupType. Found by
1884 Imran Yousaf. Fixes Savannah bug #20782.
1885
Werner Lemberg23a424f2007-08-17 20:16:44 +000018862007-08-17 George Williams <gww@silcom.com>
1887
1888 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
1889 SingleSubstFormat1.
1890
Suzuki, Toshiya (鈴木俊哉)4fc0cce2007-08-11 16:35:06 +000018912007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1892
1893 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
1894 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
1895 Found by Ryan Hill.
1896
Werner Lemberg3f1905b2007-08-11 15:45:32 +000018972007-08-11 George Williams <gww@silcom.com>
1898
1899 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
1900 (otv_Coverage_validate): Add fourth argument to pass an expected
1901 count value. Update all users.
1902 Check glyph IDs.
1903 (otv_ClassDef_validate): Check `StartGlyph'.
1904
1905 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
1906 checks.
1907
1908 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
1909 56 constants.
1910 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
1911 Check glyph IDs.
1912
Werner Lembergd76fe5a2007-08-08 06:38:06 +000019132007-08-08 Werner Lemberg <wl@gnu.org>
1914
1915 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
1916 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
1917 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
1918 appropriate. Reported by George.
1919
1920 * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
1921
1922 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
1923
1924 * docs/CHANGES: Updated.
1925
19262007-08-08 George Williams <gww@silcom.com>
1927
1928 Add `MATH' validating support to otvalid module.
1929
1930 * include/freetype/tttags.h (TTAG_MATH): New macro.
1931 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
1932 (FT_VALIDATE_OT): Updated.
1933
1934 * src/otvalid/otmath.c: New file.
1935
1936 * src/otvalid/otvalid.c: Include otvmath.c.
1937 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
1938
Werner Lembergb6617882007-08-04 22:17:48 +000019392007-08-04 Werner Lemberg <wl@gnu.org>
1940
David Turnercf432db2007-10-19 12:36:40 +00001941 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
Werner Lembergb6617882007-08-04 22:17:48 +00001942 Fixes Savannah bug #20686.
1943
Werner Lembergd6752a62007-08-02 22:03:30 +000019442007-08-03 Werner Lemberg <wl@gnu.org>
1945
1946 * src/psnames/psmodule.c: Fix usage of
1947 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
1948
Suzuki, Toshiya (鈴木俊哉)cf093cd2007-07-31 03:58:09 +000019492007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1950
1951 * src/base/ftmac.c (open_face_from_buffer): The argument
1952 `driver_name' is typed as `const char*' to match with the
1953 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
1954 This is same with open_face_from_buffer in src/base/ftobjs.c.
1955 Found and fixed by Sean McBride.
1956
Werner Lemberg39c91ad2007-07-28 05:40:40 +000019572007-07-28 Werner Lemberg <wl@gnu.org>
1958
1959 * src/raster/ftraster.c (count_table): Make it conditional.
1960 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
1961 a preprocessor statement.
1962
Werner Lemberg71dd6872007-07-27 04:44:36 +000019632007-07-27 Werner Lemberg <wl@gnu.org>
1964
1965 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
1966 first usage. From Savannah patch #6115.
1967
Werner Lembergef915c32007-07-16 20:46:05 +000019682007-07-16 Werner Lemberg <wl@gnu.org>
1969
1970 * docs/CHANGES: Updated.
1971
19722007-07-16 Derek Clegg <dclegg@apple.com>
1973
1974 Add new service for getting the ROS from a CID font.
1975
1976 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
1977 * include/freetype/ftcid.h: New file.
1978
1979 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
1980 * include/freetype/internal/services/svcid.h: New file.
1981
1982 * src/base/ftcid.c: New file.
1983
1984 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
1985 (cff_get_ros): New function.
1986 (cff_service_cid_info): New service structure.
1987 (cff_services): Register it.
1988
1989 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
1990
1991 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
1992
1993 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
1994
Werner Lemberg2f109562007-07-11 05:32:00 +000019952007-07-11 Derek Clegg <dclegg@apple.com>
1996
1997 Add support for postscript name service to CFF driver.
1998
1999 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
2000 (cff_get_ps_name): New function.
2001 (cff_service_ps_name): New service structure.
2002 (cff_services): Register it.
2003
Werner Lembergb003b3e2007-07-08 07:13:12 +000020042007-07-07 Werner Lemberg <wl@gnu.org>
2005
2006 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
2007 `target'. Reported by Sean McBride.
2008
Werner Lemberg1e1b6df2007-07-07 07:30:40 +000020092007-07-06 Werner Lemberg <wl@gnu.org>
2010
2011 * src/pfr/pfrcmap.c: Include pfrerror.h.
2012
2013 * src/autofit/afindic.c: Add some external declarations to pacify
2014 `make multi' compilation.
2015
2016 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
2017
2018 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
2019 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
2020 src/autofit/aflatin.c (af_latin_hints_compute_edges),
2021 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
2022 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
2023 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
2024
2025 * docs/release: Mention test compilation targets.
2026
Werner Lemberg986ea4b2007-07-04 04:53:15 +000020272007-07-04 Werner Lemberg <wl@gnu.org>
2028
2029 * docs/PROBLEMS: Mention that some PS based fonts can't be
2030 handled correctly by FreeType.
2031
Werner Lemberg3033f432007-07-04 14:12:19 +00002032 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
2033 recursion depth of 1. This was the maximum value in TrueType 1.0,
2034 and some older fonts don't set this field correctly.
2035
2036 * src/gxvalid/gxvmort1.c
2037 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
2038
Werner Lemberg3b0e5002007-07-03 04:48:19 +000020392007-07-03 Werner Lemberg <wl@gnu.org>
2040
2041 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
2042 `round' to pacify compiler.
2043
20442007-07-02 Werner Lemberg <wl@gnu.org>
2045
2046
2047 * Version 2.3.5 released.
2048 =========================
2049
2050
2051 Tag sources with `VER-2-3-5'.
2052
2053 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2054 version number to 2.3.5.
2055
2056 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2057 builds/win32/visualc/freetype.dsp,
2058 builds/win32/visualc/freetype.vcproj,
2059 builds/win32/visualce/index.html,
2060 builds/win32/visualce/freetype.dsp,
2061 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
2062
2063 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
2064
2065 * builds/unix/configure.raw (version_info): Set to 9:16:3.
2066
David Turner0ba89912007-07-01 09:34:04 +000020672007-07-01 David Turner <david@freetype.org>
2068
Werner Lemberge3be90b2007-07-02 14:58:58 +00002069 * include/freetype/freetype.h, src/base/ftpatent.c
2070 (FT_Face_SetUnpatentedHinting): New function to dynamically change
2071 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +00002072
Werner Lemberge3be90b2007-07-02 14:58:58 +00002073 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
2074 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +00002075
David Turner74cc0e92007-06-30 22:54:12 +000020762007-06-30 David Turner <david@freetype.org>
2077
Werner Lemberge3be90b2007-07-02 14:58:58 +00002078 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
2079 initialization.
David Turner74cc0e92007-06-30 22:54:12 +00002080
Werner Lemberge3be90b2007-07-02 14:58:58 +00002081 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
2082 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +00002083
Werner Lemberg7723dc32007-06-26 04:44:35 +000020842007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
2085
2086 Add autofit module for Indic scripts. This currently just reuses
2087 the CJK-specific functions.
2088
2089 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
2090 macro.
2091 * devel/ftoption.h: Synchronize with
2092 include/freetype/config/ftoption.h.
2093
2094 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
2095
2096 * src/autofit/afglobal.c, src/autofit/aftypes.h,
2097 src/autofit/autofit.c: Updated.
2098
2099 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
2100 (AUTOF_DRV_SRC): Updated.
2101
David Turner8f626b02007-06-22 22:22:38 +000021022007-06-23 David Turner <david@freetype.org>
2103
Werner Lemberg7854c4a2007-06-23 07:16:20 +00002104 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
2105 2007-06-16 that prevented the TrueType module from loading most
2106 glyphs.
David Turner8f626b02007-06-22 22:22:38 +00002107
Werner Lemberg5b4d4352007-06-20 07:07:55 +000021082007-06-20 Werner Lemberg <wl@gnu.org>
2109
2110 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
2111 change.
2112
Werner Lemberg9fe58152007-06-19 07:57:30 +000021132007-06-19 Werner Lemberg <wl@gnu.org>
2114
2115 * src/type1/t1load.c (parse_encoding): Handle one more error.
2116
Werner Lemberg5a829392007-06-19 04:53:30 +000021172007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
2118
2119 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
2120 FNT_Err_Invalid_File_Format if file format was recognized but
2121 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
2122 Add verbose debug logs to make it easier to debug failing load
2123 attempts.
2124 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
2125 so return an error if requested face index is > 0.
2126 Do not do further attempt to load fonts if a previous attempt has
2127 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
2128 file format has been recognized but no fonts found in the file.
2129
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000021302007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2131
2132 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
2133 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
2134 the compiler warnings against unused arguments.
2135 (FT_ATSFontGetFileReference): Ditto.
2136 (FT_GetFile_From_Mac_ATS_Name): Ditto.
2137 (FT_New_Face_From_FSSpec): Ditto.
2138 (lookup_lwfn_by_fond): Fix wrong comment.
2139 Replace `const StringPtr' by more appropriate type
2140 `ConstStr255Param'.
2141 FSRefMakePathPath always returns UTF8 POSIX pathname in
2142 Mach-O, thus HFS pathname support is dropped.
2143 (count_faces): Remove HLock and HUnlock which is not
2144 required on Mac OS X anymore.
2145 (FT_New_Face_From_SFNT): Ditto.
2146 (FT_New_Face_From_FOND): Ditto.
2147 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
2148 except of HFS pathname support and HLock/HUnlock.
2149 They are required on classic CFM environment.
2150
21512007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +00002152
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002153 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
2154 assertion.
2155 (ps_parser_to_bytes): Fix error message.
2156
Werner Lembergbb2510d2007-06-18 17:07:49 +00002157 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002158 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
2159 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +00002160 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +00002161 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002162
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000021632007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002164
Werner Lembergf48aec72007-06-18 07:07:55 +00002165 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
2166 logic.
2167 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
2168 correctly.
2169 (ps_parser_load_field_table): Use `fields->array_max' instead of
2170 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
2171
Werner Lemberg95104a42007-06-18 07:33:10 +00002172 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
2173 2007-06-06.
2174
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000021752007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +00002176
2177 * src/tools/ftrandom.c (font_size): New global variable.
2178 (TestFace): Use it.
2179 (main): Handle new option `--size' to set `font_size'.
2180 (Usage): Updated.
2181
Werner Lembergbe183eb2007-06-17 11:27:17 +00002182 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
2183 invalid font.
2184 (FNT_Load_Glyph): Protect against invalid bitmap width.
2185
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000021862007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +00002187
Werner Lemberge12ed562007-06-17 05:31:23 +00002188 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
2189 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +00002190
Werner Lemberge12ed562007-06-17 05:31:23 +00002191 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
2192 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +00002193
Werner Lemberge12ed562007-06-17 05:31:23 +00002194 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
2195 and `zp2'.
2196 (Ins_IP): Check argument ranges to reject bogus operations properly.
2197 (IUP_WorkerRec): Add `max_points' member.
2198 (_iup_worker_interpolate): Check argument ranges.
2199 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +00002200
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000022012007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +00002202
2203 * src/winfonts/winfnt.h: Add necessary structures for PE resource
2204 parsing.
2205 (WinPE32_HeaderRec): New structure.
2206 (WinPE32_SectionRec): New structure.
2207 (WinPE_RsrcDirRec): New structure.
2208 (WinPE_RsrcDirEntryRec): New structure.
2209 (WinPE_RsrcDataEntryRec): New structure.
2210 (FNT_FontRec): Remove unused `size_shift' field.
2211
2212 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
2213 loading bitmap .fon files in PE format.
2214
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000022152007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +00002216
2217 * builds/win32/ftdebug.c: Unify debug level handling with other
2218 platforms.
2219
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000022202007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +00002221
2222 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
2223 console as well as to the debugger.
2224
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000022252007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +00002226
2227 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
2228 cover all ranges which could possibly be handled by the aflatin
2229 module (since the default fallback for unknown ranges is now the
2230 afcjk module). It might be necessary to fine-tune this further by
2231 splitting off modules for Greek, Cyrillic, or other blocks.
2232
David Turnerb7920172007-06-11 05:37:35 +000022332007-06-11 David Turner <david@freetype.org>
2234
Werner Lemberg49e18b82007-06-11 21:15:09 +00002235 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
2236 incorrect segment linking computation. This was the root cause of
2237 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +00002238
2239
Werner Lemberg49e18b82007-06-11 21:15:09 +00002240 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
2241 to improve the Latin auto-hinter. Note that the new code is
2242 disabled by default since it is not stabilized yet.
2243
2244 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
2245 (disabled currently).
2246
2247 * src/autofit/afhints.c: Remove dead code.
2248 (af_axis_hints_new_edge): Add argument to handle segment directions.
2249 (af_edge_flags_to_string): New function.
2250 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
2251 option flags.
2252 (af_glyph_hints_reload): Add argument to handle inflections.
2253 Simplify.
2254 (af_direction_compute): Fine tuning.
2255 (af_glyph_hints_align_edge_points): Fix logic.
2256 (af_glyph_hints_align_strong_points): Do linear search for small
2257 edge counts.
2258 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
2259 (af_iup_shift): Handle zero `delta'.
2260
2261 * src/autofit/afhints.h: Updated.
2262 (AF_SORT_SEGMENTS): New macro (disabled).
2263 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
2264
2265 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
2266 argument to pass option flags for handling scripts.
2267 * src/autofit/afglobal.h: Updated.
2268
2269 * src/autofit/afcjk.c: Updated.
2270 * src/autofit/aflatin.c: Updated.
2271 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
2272
2273 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
2274 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
2275 Don't set `edge->dir'
2276 (af_latin_hint_edges): Add more logging.
2277
2278 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +00002279
Werner Lembergf6c120f2007-06-11 04:55:58 +000022802007-06-11 Werner Lemberg <wl@gnu.org>
2281
Werner Lembergcf7b7642007-06-11 04:58:01 +00002282 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +00002283
David Turner84c6f882007-06-10 20:51:04 +000022842007-06-10 David Turner <david@freetype.org>
2285
Werner Lembergf6c120f2007-06-11 04:55:58 +00002286 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
2287 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +00002288
Werner Lembergf6c120f2007-06-11 04:55:58 +00002289 * include/freetype/config/ftoption.h: Clarify documentation
2290 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +00002291
Werner Lembergf6c120f2007-06-11 04:55:58 +00002292
2293 Add new `FT_Face_CheckTrueTypePatents' API.
2294
2295 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
2296 declaration.
2297
2298 * include/freetype/internal/services/svttglyf.h,
2299 src/base/ftpatent.c: New files.
2300
2301 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
2302 New macro.
2303
2304 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
2305 `ttpload.h'.
2306 (tt_service_truetype_glyf): New service structure.
2307 (tt_services): Register it.
2308
2309 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
2310 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +00002311
Werner Lemberg33db39e2007-06-08 06:30:29 +000023122007-06-08 Werner Lemberg <wl@gnu.org>
2313
David Turner84c6f882007-06-10 20:51:04 +00002314 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +00002315 Fonts without a cmap must be handled correctly by FreeType (anything
2316 else would be a bug).
2317
2318
2319 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
2320 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
2321
Werner Lemberg88ab6382007-06-07 05:01:56 +000023222007-06-07 Werner Lemberg <wl@gnu.org>
2323
2324 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
2325 tt_sbit_decoder_load_image): Protect against integer overflows.
2326
2327
2328 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
2329 for `x_control' and `y_control'.
2330
Werner Lemberg2a2dca62007-06-06 04:39:37 +000023312007-06-06 Werner Lemberg <wl@gnu.org>
2332
2333 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
2334
Werner Lemberga8d65492007-06-06 04:47:49 +00002335
2336 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
2337 FreeType error.
2338
Werner Lemberg470210b2007-06-06 10:05:49 +00002339
2340 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
2341 `font_count'.
2342
2343
2344 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
2345
2346
2347 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
2348 `FT_Error'.
2349 Check `fd_index'.
2350 (cff_slot_load): Updated.
2351 * src/cff/cffgload.h: Updated.
2352
Werner Lemberg6c054752007-06-05 05:27:54 +000023532007-06-05 Werner Lemberg <wl@gnu.org>
2354
2355 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
2356 (pfr_glyph_load_simple): Convert assertion into normal FreeType
2357 error.
2358 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +00002359 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
2360 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +00002361
2362 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
2363
Werner Lembergf4bc3f42007-06-05 07:32:15 +00002364
Werner Lemberg470210b2007-06-06 10:05:49 +00002365 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +00002366
Werner Lemberge5c14d92007-06-05 20:50:37 +00002367
2368 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
2369 in case of parsing error.
2370 (ps_parser_load_field): Updated.
2371
2372 * src/type1/t1load.c (parse_font_matrix): Updated.
2373
Werner Lembergad18b362007-06-04 07:04:05 +000023742007-06-04 Werner Lemberg <wl@gnu.org>
2375
2376 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
2377
2378 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
2379
Werner Lemberg3d507fe2007-06-03 16:54:55 +000023802007-06-03 Werner Lemberg <wl@gnu.org>
2381
Werner Lemberg99a320b2007-06-03 19:21:26 +00002382 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
2383 George Williams (with some modifications).
2384
23852007-06-03 Werner Lemberg <wl@gnu.org>
2386
Werner Lemberg3d507fe2007-06-03 16:54:55 +00002387 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
2388 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
2389 face == NULL. Suggested by Graham Asher.
2390
Werner Lembergce280a22007-06-03 05:58:30 +000023912007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
2392
2393 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
2394
Werner Lemberg5b591e42007-06-01 22:16:43 +000023952007-06-02 Werner Lemberg <wl@gnu.org>
2396
2397 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
2398 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
2399
2400 * src/bdf/bdflib.c (bdf_load_font): Use them.
2401
2402 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
2403
Werner Lembergb9933f42007-06-01 21:27:12 +000024042007-06-01 Werner Lemberg <wl@gnu.org>
2405
2406 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
2407 (FTC_CMapCache_Lookup): Remove unused code.
2408
Werner Lembergc793d902007-06-01 20:51:11 +000024092007-06-01 Sean McBride <sean@rogue-research.com>
2410
2411 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
2412 unused.
2413
Werner Lembergbebc7b12007-06-01 06:32:30 +000024142007-06-01 Werner Lemberg <wl@gnu.org>
2415
2416 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
2417 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +00002418 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +00002419
Werner Lembergcb37b3b2007-06-01 06:49:03 +00002420 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
2421 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
2422
Werner Lembergba03af62007-05-30 13:57:02 +000024232007-05-30 Werner Lemberg <wl@gnu.org>
2424
2425 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
2426 against too small binary data strings.
2427
2428 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
2429
David Turnerf0cd69c2007-05-28 15:42:09 +000024302007-05-28 David Turner <david@freetype.org>
2431
Werner Lemberg99e0c182007-05-29 07:00:23 +00002432 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
2433 transformation. This significantly reduces the loading time of CFF
2434 glyphs.
David Turner552a9562007-05-28 15:45:35 +00002435
Werner Lemberg99e0c182007-05-29 07:00:23 +00002436 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +00002437
Werner Lemberg99e0c182007-05-29 07:00:23 +00002438 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
2439 hinting script to CJK, since it works well with more scripts than
2440 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
2441 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +00002442
Werner Lemberg1c8980e2007-05-25 07:11:12 +000024432007-05-25 Werner Lemberg <wl@gnu.org>
2444
2445 * docs/CHANGES: Updated.
2446
Werner Lemberg6ff2ff52007-05-24 19:39:14 +000024472007-05-24 Werner Lemberg <wl@gnu.org>
2448
2449 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
2450 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
2451
24522007-05-24 Graham Asher <graham.asher@btinternet.com>
2453
2454 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
2455 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
2456
David Turner0d0365e2007-05-22 09:53:44 +000024572007-05-22 David Turner <david@freetype.org>
2458
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002459 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
2460 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +00002461
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002462
2463 Avoid heap blowup with very large .Z font files. This fixes
2464 Savannah bug #19910.
2465
2466 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
2467 `in_limit', `pad', `pad_bits', and `in_buff' members.
2468 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
2469 `buf_total' members.
2470
2471 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
2472 only one argument.
2473 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +00002474
24752007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +00002476
2477 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
2478 (ps_dimension_set_mask_bits): Remove `const'.
2479
David Turner0d0365e2007-05-22 09:53:44 +000024802007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +00002481
2482 * src/sfnt/ttmtx.c (tt_face_get_metrics)
2483 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
2484
Werner Lembergb826fa72007-05-19 07:18:48 +000024852007-05-19 Derek Clegg <dclegg@apple.com>
2486
2487 Savannah patch #5929.
2488
2489 * include/freetype/tttables.h, src/base/ftobjcs.c
2490 (FT_Get_CMap_Format): New function.
2491
2492 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
2493 `format' member.
2494 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
2495 cmap_info->format.
2496
Werner Lemberg6f99c882007-05-19 07:01:49 +000024972007-05-19 Werner Lemberg <wl@gnu.org>
2498
2499 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
2500 before handling subglyphs so that it can be reinitialized each time.
2501 This fixes Savannah bug #19859.
2502
Werner Lemberg95bc9d32007-05-16 15:19:42 +000025032007-05-16 Werner Lemberg <wl@gnu.org>
2504
2505 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
2506 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
2507 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
2508 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
2509 tt_face_get_metrics): Fix type-punning issues.
2510
David Turner0a24bd22007-05-15 10:54:10 +000025112007-05-15 David Turner <david@freetype.org>
2512
2513 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00002514 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
2515 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +00002516 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00002517 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +00002518
Werner Lemberg607dec72007-05-15 06:49:37 +000025192007-05-15 Graham Asher <graham.asher@btinternet.com>
2520
2521 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
2522 variable.
2523 * src/autofit/afloader.c (af_loader_load_g): Ditto.
2524
2525 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
2526 (open_face_from_buffer): Initialize `stream'.
2527 (FT_Request_Metrics): Remove unused variable.
2528 Remove redundant `break' statements.
2529 (FT_Get_Track_Kerning): Remove unused variable.
2530
2531 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
2532 afm_parse_kern_data): Remove redundant
2533 `break' statements.
2534 (afm_parser_parse): Ditto.
2535 Don't use uninitialized variables.
2536
2537 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
2538 Use `|' operator instead of `^' to set it.
2539 Update all users.
2540
2541 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
2542 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
2543
2544 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
2545 comparison.
2546 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
2547 (TT_Load_Glyph): Remove unused variable.
2548
Werner Lemberg8d463a52007-05-13 16:01:55 +000025492007-05-13 Derek Clegg <dclegg@apple.com>
2550
2551 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
2552 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
2553
David Turner711cf842007-05-11 14:36:24 +000025542007-05-11 David Turner <david@freetype.org>
2555
Werner Lemberg56ceaa42007-05-14 18:53:58 +00002556 * src/cache/ftbasic.c, include/freetype/ftcache.h
2557 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
2558 functions that allow us to look up glyphs using an FTC_Scaler object
2559 to specify the size, making it possible to use fractional pixel
2560 sizes.
2561
2562 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
2563 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +00002564
Werner Lemberg94be20e2007-05-09 20:02:55 +000025652007-05-09 Graham Asher <graham.asher@btinternet.com>
2566
2567 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
2568 (af_latin_metrics_scale_dim): Fix compiler warnings.
2569
Werner Lemberg41271032007-05-06 04:51:48 +000025702007-05-06 Werner Lemberg <wl@gnu.org>
2571
2572 * builds/win32/visualce/freetype.sln: Removed, as requested by
2573 Vincent.
2574
Werner Lembergdf49e692007-05-04 06:30:05 +000025752007-05-04 Vincent RICHOMME <richom.v@free.fr>
2576
2577 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
2578 PC targets.
2579
2580 * docs/CHANGES: Document them.
2581
25822007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +00002583
2584 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
2585 mmap (which might happen on some RTOS). From Savannah patch #5909.
2586
Werner Lemberg106eaf12007-05-03 07:07:47 +000025872007-05-03 Werner Lemberg <wl@gnu.org>
2588
2589 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
2590 * include/freetype/freetype.h (FT_Set_Char_Size): Update
2591 documentation.
2592
Werner Lemberg1b5267d2007-04-28 21:06:15 +000025932007-04-28 Victor Stinner <victor.stinner@inl.fr>
2594
2595 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
2596 `cmap'.
2597
Werner Lembergcc712a22007-04-27 17:16:50 +000025982007-04-27 Werner Lemberg <wl@gnu.org>
2599
2600 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
2601 number of points in contours. Problem reported by Victor Stinner
2602 <victor.stinner@haypocalc.com>.
2603 (TT_Process_Simple_Glyph): Synchronize variable types.
2604
Werner Lemberg45bb18f2007-04-26 06:26:35 +000026052007-04-26 Werner Lemberg <wl@gnu.org>
2606
2607 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
2608 zero in case of error. This fixes Savannah bug #19689.
2609
Werner Lembergb2116512008-09-12 16:27:48 +000026102007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
David Turnera8b45e62007-05-11 14:10:30 +00002611
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002612 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
2613 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +00002614
Werner Lembergfcc1f472007-04-10 11:51:50 +000026152007-04-10 Martin Horak <horakm@centrum.cz>
2616
2617 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
2618 Ignore `hhea' table. This fixes Savannah bug #19261.
2619
Werner Lemberg14bf82e2007-04-10 04:09:49 +000026202007-04-09 Werner Lemberg <wl@gnu.org>
2621
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002622
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002623 * Version 2.3.4 released.
2624 =========================
2625
2626
2627 Tag sources with `VER-2-3-4'.
2628
2629 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2630 version number to 2.3.4.
2631
2632 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2633 builds/win32/visualc/freetype.dsp,
2634 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
2635
2636 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
2637
2638 * builds/unix/configure.raw (version_info): Set to 9:15:3.
2639
Werner Lembergf4a52a62007-04-09 08:40:11 +000026402007-04-09 Martin Horak <horakm@centrum.cz>
2641
2642 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
2643 memory stream to avoid a crash with the incremental memory
2644 interface (Savannah bug #19260).
2645
David Turner1dcb4442007-04-06 08:19:04 +000026462007-04-06 David Turner <david@freetype.org>
2647
Werner Lembergc81cf612007-04-06 09:28:23 +00002648 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
2649 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +00002650
Werner Lemberg9f83e052007-04-05 02:28:23 +000026512007-04-04 Werner Lemberg <wl@gnu.org>
2652
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002653
Werner Lemberg9f83e052007-04-05 02:28:23 +00002654 * Version 2.3.3 released.
2655 =========================
2656
2657
2658 Tag sources with `VER-2-3-3'.
2659
2660 * docs/CHANGES: Mention CVE-2007-1351.
2661
David Turner7338ec22007-04-03 14:30:34 +000026622007-04-03 David Turner <david@freetype.org>
2663
2664 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +00002665 if one of the resolution values is 0, treat it as if it were the
2666 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +00002667
David Turnere6472c12007-04-02 13:13:54 +000026682007-04-02 David Turner <david@freetype.org>
2669
Werner Lemberg94f12272007-04-03 07:19:53 +00002670 Add special code to detect `extra-light' fonts and do not snap their
2671 stem widths too much to avoid bizarre hinting effects.
2672
2673 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
2674 `extra_light' members.
2675
2676 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
2677 them.
2678 (af_latin_metrics_scale_dim): Set `extra_light'.
2679 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +00002680
David Turner3f539692007-03-28 14:53:40 +000026812007-03-28 David Turner <david@freetype.org>
2682
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002683 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +00002684 padding.
2685
Werner Lemberga08b2172007-03-28 07:17:17 +000026862007-03-28 Werner Lemberg <wl@gnu.org>
2687
2688 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
2689 gracefully.
2690 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +00002691 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +00002692 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
2693 number of code points in Unicode.
2694
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002695 * builds/win32/visualc/index.html,
2696 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002697 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002698 s/232/233/.
2699
2700 * docs/CHANGES: Mention ftdiff.
2701
David Turner3b242d32007-03-26 12:03:04 +000027022007-03-26 David Turner <david@freetype.org>
2703
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002704 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
2705 corresponding code.
2706 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +00002707
Werner Lemberga08b2172007-03-28 07:17:17 +00002708 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002709 computations in order to ignore single-point contours. These are
2710 never rasterized and correspond in certain fonts to mark-attach
2711 points that are very far from the glyph's real outline, ruining the
2712 computation.
David Turnerf58caa02007-03-26 12:39:25 +00002713
Werner Lemberga08b2172007-03-28 07:17:17 +00002714 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +00002715 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +00002716 Otherwise code that uses them will most certainly ruin the fixed
2717 advance property.
David Turner23553d62007-03-26 13:37:17 +00002718
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002719 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
2720 documentation and bump version number to 2.3.3.
2721
2722 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
2723
2724 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +00002725
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000027262007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2727
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002728 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
2729 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002730 * builds/vms/ftconfig.h: Ditto.
2731 * include/freetype/config/ftconfig.h: Ditto.
2732
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000027332007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2734
Werner Lemberg14ffe092007-03-22 06:12:43 +00002735 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
2736 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +00002737 proposed by Sean McBride:
2738 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
2739
27402007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2741
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002742 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
2743 setjmp, proposed by Sean McBride:
2744 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
2745
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000027462007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2747
Werner Lembergc9f6c662007-03-21 13:30:14 +00002748 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
2749 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
2750 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00002751
David Turner74c34eb2007-03-18 07:19:31 +000027522007-03-18 David Turner <david@freetype.org>
2753
Werner Lembergc9f6c662007-03-21 13:30:14 +00002754 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
2755 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +00002756
Werner Lembergc9f6c662007-03-21 13:30:14 +00002757 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +00002758
David Turner89020d92007-03-17 17:48:57 +000027592007-03-17 David Turner <david@freetype.org>
2760
Werner Lembergc9f6c662007-03-21 13:30:14 +00002761 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
2762 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +00002763
Werner Lemberg25d592a2007-03-09 07:59:35 +000027642007-03-09 Werner Lemberg <wl@gnu.org>
2765
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002766
Werner Lemberg25d592a2007-03-09 07:59:35 +00002767 * Version 2.3.2 released.
2768 =========================
2769
2770
2771 Tag sources with `VER-2-3-2'.
2772
2773 * builds/win32/visualc/index.html,
2774 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002775 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +00002776 s/231/232/.
2777
David Turner3a51afa2007-03-08 10:50:38 +000027782007-03-08 David Turner <david@freetype.org>
2779
Werner Lemberg25d592a2007-03-09 07:59:35 +00002780 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +00002781
Werner Lemberg25d592a2007-03-09 07:59:35 +00002782 * builds/unix/configure.raw (version_info): Set to 9:13:3.
2783
2784 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
2785
2786 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +00002787
Werner Lemberg1e259de2007-03-08 15:39:21 +00002788 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
2789 function to work properly, over-writing user-provided buffers in
2790 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +00002791
David Turner121cad52007-03-08 16:43:50 +00002792
Werner Lemberg3d92f082007-03-06 11:59:24 +000027932007-03-05 Werner Lemberg <wl@gnu.org>
2794
2795 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
2796 macro for `strstr'.
2797
2798 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
2799 `trick_names', as suggested by Ivan Nincic.
2800
David Turner085bc6e2007-03-05 17:40:03 +000028012007-03-05 David Turner <david@freetype.org>
2802
Werner Lembergd112cf02007-03-06 12:06:56 +00002803 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
2804 case FT_Init_FreeType fails for some reason. Problem reported by
2805 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +00002806
Werner Lembergd112cf02007-03-06 12:06:56 +00002807 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
2808 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
2809 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
2810 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +00002811
Werner Lembergd112cf02007-03-06 12:06:56 +00002812 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
2813 signed values, not unsigned ones. Problem reported by Johannes
2814 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +00002815
David Turner601aefe2007-02-21 16:47:49 +000028162007-02-21 David Turner <david@freetype.org>
2817
Werner Lembergde5e6862007-02-25 21:06:43 +00002818 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
2819 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +00002820
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +000028212007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2822
2823 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
2824 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
2825 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
2826
Werner Lemberga0915172007-02-16 08:12:50 +000028272007-02-16 Werner Lemberg <wl@gnu.org>
2828
2829 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
2830 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
2831
David Turner2c4500e2007-02-14 15:08:47 +000028322007-02-14 David Turner <david@freetype.org>
2833
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00002834 It seems that the following changes fix most of the known
2835 interpreter problems with my fonts, but more testing is needed,
2836 though.
2837
2838 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
2839 (TT_MulFix14): Rewrite.
2840 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
2841 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +00002842
Werner Lembergc6a14082007-02-12 22:08:15 +000028432007-02-12 Werner Lemberg <wl@gnu.org>
2844
2845 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
2846 warnings.
2847
2848 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
2849 (bdf_interpret_style): Ditto.
2850
David Turnerc0f9c4a2007-02-12 14:55:03 +000028512007-02-12 David Turner <david@freetype.org>
2852
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00002853 Simplify projection and dual-projection code interface.
2854
Werner Lemberg406d25f2007-02-12 22:01:18 +00002855 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
2856 FT_Vector' as argument type.
2857 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
2858 Updated.
2859 (CUR_fast_project, CUR_fast_dualproj): New macros.
2860 (Project, Dual_Project, Project_x, Project_y): Updated.
2861 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
2862 macros.
2863
2864
2865 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
2866 adjustments for the non-light auto-hinted modes. Gets rid of
2867 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +00002868
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00002869 * src/autofit/aflatin.c (af_latin_hints_link_segments,
2870 af_latin_hints_compute_edges): Slight optimization of the segment
2871 linker and better handling of serif segments to get rid of broken
2872 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +00002873
David Turnerc0f9c4a2007-02-12 14:55:03 +00002874
Werner Lemberg442bfb82007-02-12 21:44:10 +00002875 Introduce new string functions and the corresponding macros to get
2876 rid of various uses of strcpy and other `evil' functions, as well as
2877 to simplify a few things.
2878
2879 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
2880 ft_mem_strcpyn): New declarations.
2881 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
2882 macros.
2883 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
2884 functions.
2885
2886 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
2887 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
2888 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
2889 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
2890 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
2891 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
2892 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
2893 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +00002894
Werner Lemberg406d25f2007-02-12 22:01:18 +00002895 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
2896
Werner Lemberg582067d2007-02-11 15:03:05 +000028972007-02-11 Werner Lemberg <wl@gnu.org>
2898
2899 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
2900 non-spacing glyphs.
2901
Werner Lemberg8f474532007-02-07 08:31:01 +000029022007-02-07 Tom Parker <palfrey@tevp.net>
2903
2904 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
2905 pointer.
2906
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000029072007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2908
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00002909 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
2910 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +00002911 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00002912 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
2913 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
2914 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
2915 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +00002916
2917 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
2918 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00002919 * builds/mac/ftmac.c: Ditto.
2920
29212007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2922
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00002923 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +00002924 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00002925 #include <ftmac.c>.
2926
29272007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2928
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +00002929 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
2930 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
2931 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
2932 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
2933 FT_GetFilePath_From_Mac_ATS_Name.
2934 * builds/mac/ftmac.c: Ditto.
2935
29362007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2937
Werner Lembergdcbb7082007-02-08 08:54:09 +00002938 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +00002939 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
2940 for passing to FT_New_Face_From_FSSpec.
2941
29422007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2943
Werner Lembergdcbb7082007-02-08 08:54:09 +00002944 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002945 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +00002946
2947 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
2948 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002949 * builds/mac/ftmac.c (OS_INLINE): Ditto.
2950
Werner Lemberg313d7772007-02-01 08:10:45 +000029512007-02-01 Werner Lemberg <wl@gnu.org>
2952
2953 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
2954 Explain why applications shouldn't use it. Found by Alexei.
2955
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000029562007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002957
2958 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
2959 message.
2960
2961 * src/gxvalid/gxvmort1.c
2962 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
2963 message.
2964
Werner Lemberg53935932007-01-31 08:53:02 +000029652007-01-31 Werner Lemberg <wl@gnu.org>
2966
2967
2968 * Version 2.3.1 released.
2969 =========================
2970
2971
2972 Tag sources with `VER-2-3-1-FINAL'.
2973
2974 * builds/win32/visualc/freetype.dsp,
2975 builds/win32/visualc/freetype.vcproj: s/230/231/.
2976 * builds/win32/visualc/index.html: s/221/231/.
2977
2978 * vms_make.com: Add `ftgasp'.
2979
David Turnera7ee6082007-01-30 10:33:53 +000029802007-01-30 David Turner <david@freetype.org>
2981
Werner Lemberg53935932007-01-31 08:53:02 +00002982 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +00002983
Werner Lemberg53935932007-01-31 08:53:02 +00002984 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +00002985
Werner Lemberg25d592a2007-03-09 07:59:35 +00002986 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +00002987 s/2.3.0/2.3.1/.
2988
2989 * builds/unix/configure.raw (version_info): Set to 9:12:3.
2990
2991
2992 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
2993 (af_loader_load_g): Disable the warper (i.e., the light hinting
2994 improvements) to make a 2.3.1 bugfix release before introducing a
2995 new feature. This should give us more time to tune and improve the
2996 warper for the next release.
2997
2998 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +00002999
David Turnerd91eebd2007-01-26 15:05:41 +000030002007-01-25 David Turner <david@freetype.org>
3001
Werner Lembergbf241762007-01-26 16:08:49 +00003002 For light auto-hinting, improve glyph advance widths and resurrect
3003 normal/full hinting to its normal quality.
3004
3005 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
3006 and `xmax_delta'.
3007 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
3008 and `xmax_delta'.
3009
3010 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
3011 preprocessor conditional with if-clause, handling both light and
3012 normal mode.
3013
3014 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
3015 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00003016
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000030172007-01-25 Werner Lemberg <wl@gnu.org>
3018
3019 * docs/release: Updated -- Savannah uses a new uploading scheme.
3020
David Turnera42567b2007-01-25 12:23:37 +000030212007-01-25 David Turner <david@freetype.org>
3022
Werner Lembergd7855662007-01-25 13:53:56 +00003023 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00003024
Werner Lembergd7855662007-01-25 13:53:56 +00003025 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
3026 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
3027 functions.
David Turnera42567b2007-01-25 12:23:37 +00003028
Werner Lembergd7855662007-01-25 13:53:56 +00003029 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00003030
Werner Lembergb1be9e82007-01-25 11:50:00 +000030312007-01-25 Werner Lemberg <wl@gnu.org>
3032
3033 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00003034 correctly in a sanity check. Since this function is only used to
3035 load local and global functions, any charstring that called the last
3036 local/global function would fail otherwise. This fixes Savannah bug
3037 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00003038
3039 * docs/CHANGES: Document it.
3040
David Turnerb6de8d12007-01-23 15:51:50 +000030412007-01-23 David Turner <david@freetype.org>
3042
Werner Lembergb1be9e82007-01-25 11:50:00 +00003043 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
3044 prevented compilation when disabling both the unpatented and the
3045 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00003046
Werner Lembergb1be9e82007-01-25 11:50:00 +00003047
3048 Fix and enable the warper to improve `light' hinting mode. This is
3049 not necessarily a final version, but it seems to work well.
3050
3051 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
3052 Disable code.
3053 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
3054 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
3055
3056 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
3057 (af_warper_compute_line_best): Fix array size of `scores'.
3058 (af_warper_compute): Better handling of border cases.
3059 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
3060 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00003061
Werner Lemberg011d1112007-01-21 09:36:00 +000030622007-01-21 Werner Lemberg <wl@gnu.org>
3063
Werner Lemberg42b63b22007-01-21 21:01:33 +00003064 * ChangeLog: Split off older entries into...
3065 * ChangeLog.22: This new file.
3066
30672007-01-21 Werner Lemberg <wl@gnu.org>
3068
Werner Lemberg555258f2007-01-21 09:46:37 +00003069 * docs/CHANGES: Document SHZ fix.
3070
30712007-01-21 George Williams <gww@silcom.com>
3072
3073 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
3074 points.
3075
30762007-01-21 Werner Lemberg <wl@gnu.org>
3077
Werner Lemberg011d1112007-01-21 09:36:00 +00003078 * src/sfnt/ttmtx.c (tt_face_get_metrics)
3079 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
3080
Werner Lemberg87a5a432007-01-17 12:44:39 +000030812007-01-17 Werner Lemberg <wl@gnu.org>
3082
Werner Lembergb8003292007-01-17 12:56:25 +00003083
3084 * Version 2.3.0 released.
3085 =========================
3086
3087
3088 Tag sources with `VER-2-3-0-FINAL'.
3089
30902007-01-17 Werner Lemberg <wl@gnu.org>
3091
Werner Lemberg87a5a432007-01-17 12:44:39 +00003092 * docs/release: Updated.
3093
David Turner22122722007-01-16 20:06:44 +000030942007-01-16 David Turner <david@freetype.org>
3095
Werner Lemberg87a5a432007-01-17 12:44:39 +00003096 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
3097 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
3098 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
3099 warnings.
David Turner22122722007-01-16 20:06:44 +00003100
Werner Lemberg267e1d72007-01-15 07:48:09 +000031012007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
3102
3103 * builds/amiga/makefile, builds/amiga/makefile.os4,
3104 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
3105
3106 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
3107
Werner Lemberg8c4120d2007-01-15 06:42:40 +000031082007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
3109
3110 Fix various compiler warnings.
3111
3112 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
3113 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
3114 s/index/strike_index/.
3115 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
3116
3117 * src/gxvalid/gxvmorx5.c
3118 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
3119
3120 * src/truetype/ttinterp.c (Compute_Point_Displacement),
3121 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
3122 uninitialized variables.
3123
Werner Lemberg6164a9d2007-01-13 23:01:36 +000031242007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3125
3126 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
3127
Werner Lemberg281c1482007-01-13 22:50:51 +000031282007-01-13 Werner Lemberg <wl@gnu.org>
3129
3130 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
3131 versions up to 0x3FF without complaining.
3132
Werner Lembergac250b22007-01-13 14:01:36 +000031332007-01-13 Derek Clegg <dclegg@apple.com>
3134
3135 Add FT_Get_PS_Font_Info interface to CFF driver.
3136
3137 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
3138 (CFF_FontRec): Add `font_info' field.
3139
3140 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
3141 (cff_font_done): Free font->font_info if necessary.
3142
3143 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
3144 (cff_service_ps_info): Register cff_ps_get_font_info.
3145
Werner Lemberg23df31a2007-01-13 08:45:00 +000031462007-01-13 Werner Lemberg <wl@gnu.org>
3147
3148 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
3149 with C++ compiler.
3150
3151 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
3152 af_glyph_hints_dump_edges): Ditto.
3153
3154 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
3155 `modules.cfg').
3156
3157 * src/sfnt/ttsbit0.h: Remove.
3158
3159 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
3160
Werner Lemberg27cf9de2007-01-13 07:34:23 +000031612007-01-12 David Turner <david@freetype.org>
3162
3163 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
3164 bug in the bitmap emboldener if the pitch of the source bitmap is
3165 much larger than its width.
3166
3167 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
3168 compilation warning.
3169
Werner Lemberg6d96d312007-01-12 10:30:19 +000031702007-01-12 Werner Lemberg <wl@gnu.org>
3171
3172 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
3173 `automake' CVS module from sources.redhat.com.
3174
Werner Lemberg17432b52007-01-12 09:28:44 +000031752007-01-11 Werner Lemberg <wl@gnu.org>
3176
3177 * src/type1/t1load.c (is_space): Removed.
3178 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
3179 (parse_charstrings): Use IS_PS_TOKEN.
3180
3181
3182 * autogen.sh: Avoid bash specific syntax.
3183
David Turner038ace22007-01-11 15:00:59 +000031842007-01-11 David Turner <david@freetype.org>
3185
Werner Lemberg17432b52007-01-12 09:28:44 +00003186 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00003187
Werner Lemberg17432b52007-01-12 09:28:44 +00003188 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00003189
Werner Lemberg17432b52007-01-12 09:28:44 +00003190 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
3191 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00003192 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00003193
Werner Lemberg17432b52007-01-12 09:28:44 +00003194 * autogen.sh: Small fix to get it working on Mac OS X properly:
3195 The issue is that GNU libtool is called `glibtool' on this platform,
3196 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00003197
David Turner2628ea92007-01-10 13:15:56 +000031982007-01-10 David Turner <david@freetype.org>
3199
Werner Lemberg17432b52007-01-12 09:28:44 +00003200 * all-sources: Tag all sources with VER-2-3-0-RC1 and
3201 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00003202
Werner Lemberg17432b52007-01-12 09:28:44 +00003203 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
3204 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
3205 version number to 2.3.0.
3206
3207 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
3208 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00003209
3210 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00003211 include/freetype/ftlcdfil.h: Update reference documentation with
3212 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00003213
Werner Lemberg17432b52007-01-12 09:28:44 +00003214 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
3215 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00003216
Werner Lembergbf02d392007-01-10 07:07:37 +000032172007-01-10 Derek Clegg <dclegg@apple.com>
3218
3219 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
3220 values.
3221
David Turnerf48b60e2007-01-08 15:15:32 +000032222007-01-08 David Turner <david@freetype.org>
3223
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003224 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00003225
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003226 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
3227 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00003228 corresponding to a given character pixel size.
3229
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003230 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
3231 `gasp' table, in order to avoid potential problems with later
3232 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00003233
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003234 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
3235 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00003236
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003237 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
3238 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
3239 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
3240 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00003241
Werner Lemberge6b6f372007-01-07 00:06:47 +000032422007-01-07 Werner Lemberg <wl@gnu.org>
3243
Werner Lembergb8004d22007-01-07 09:13:38 +00003244 * src/cid/cidparse.c (cid_parser_new): Improve error message for
3245 Type 11 fonts.
3246 Scan for `/sfnts' token.
3247
32482007-01-07 Werner Lemberg <wl@gnu.org>
3249
3250 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00003251
Werner Lembergbe5f7972007-01-06 07:51:48 +000032522007-01-06 Werner Lemberg <wl@gnu.org>
3253
3254 * src/cff/cffload.c (cff_index_init): Remove unused variable.
3255 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
3256
David Turnera8cf42b2007-01-04 16:46:46 +000032572007-01-04 David Turner <david@freetype.org>
3258
Werner Lembergf6294392007-01-06 07:47:45 +00003259 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
3260 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00003261
Werner Lembergf6294392007-01-06 07:47:45 +00003262
3263 Do not allocate interpreter-specific tables in memory if we are not
3264 going to load glyphs with the bytecode interpreter anyway.
3265
3266 * src/truetype/ttgload.c (tt_loader_init): Load execution context
3267 only if glyph is hinted.
3268 Updated.
3269 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
3270 and `cvs_ready'.
3271 Add `tt_size_ready_bytecode' declaration.
3272 * src/truetype/ttobjs.c (tt_size_done_bytecode,
3273 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
3274 (tt_size_init): Move most code into `tt_size_init_bytecode'.
3275 (tt_size_done): Move most code into `tt_size_done_bytecode'.
3276 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00003277
David Turner91a34022007-01-05 14:47:08 +00003278
Werner Lembergf6294392007-01-06 07:47:45 +00003279 Don't extract the metrics table from the SFNT font file. Instead,
3280 reparse it on each glyph load. The runtime difference is not
3281 noticeable, and it can save a lot of heap memory when memory-mapped
3282 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00003283
Werner Lembergf6294392007-01-06 07:47:45 +00003284 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
3285 `horz_metrics_offset' and `vert_metrics_ofset'.
3286 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
3287 Updated.
3288
3289
3290 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
3291
3292
3293 Do not load the CFF index offsets into memory, since this wastes a
3294 *lot* of heap memory with large Asian CFF fonts. There is no
3295 significant performance loss.
3296
3297 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
3298 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
3299 `data_size'.
3300 (CFF_CharsetRec): Add field `num_glyphs'.
3301
3302 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
3303 cff_charset_cid_to_gindex): New functions.
3304 (cff_new_index): Renamed to...
3305 (cff_index_init): This. Update all callers.
3306 Updated -- some code has been moved to `cff_index_load_offsets'.
3307 (cff_done_index): Renamed to...
3308 (cff_index_done): This. Update all callers.
3309 (cff_index_get_pointers, cff_index_access_element): Updated to use
3310 stream offsets.
3311 (cff_charset_compute_cids): Set `num_glyphs' field.
3312 (cff_encoding_load): Updated.
3313
3314 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00003315
33162007-01-04 David Turner <david@freetype.org>
3317
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003318 * docs/INSTALL.UNIX: Simplify some parts, add reference to
3319 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00003320
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003321 * README.CVS: Add common problem description and solution
3322 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00003323
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003324 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00003325
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003326 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00003327
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003328 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00003329
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003330 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
3331 (TWorker): This.
3332 Remove `count_table' and `memory'.
3333 Make `grays' a pointer.
3334 (TRaster): New structure.
3335 (count_table): New static array.
3336 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
3337 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
3338 ft_black_set_mode, ft_black_render): Updated.
3339 (ft_black_init): Don't initialize `count_table'.
3340 (ft_black_reset): Use the render pool. This saves about 6KB of
3341 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00003342
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003343 * src/smooth/ftgrays.c (TRaster): Replaced with...
3344 (TWorker): This.
3345 Remove `memory'.
3346 (TRaster): New structure.
3347
3348 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
3349 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
3350 gray_render_span, gray_raster_render): Updated.
3351 (gray_raster_reset): Use the render pool. This saves about 6KB of
3352 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00003353
David Turner8a6c44e2007-01-04 17:03:11 +00003354 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
3355 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003356 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
3357 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
3358 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00003359
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003360 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
3361 Remove a typo that results in no hinting and a memory leak with some
3362 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00003363
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003364 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00003365 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003366 CFF_Faces in it. We need to close all faces before destroying the
3367 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00003368
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000033692007-01-02 Werner Lemberg <wl@gnu.org>
3370
3371 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
3372 Remove compiler warning.
3373
David Turner9207e002007-01-02 16:58:13 +000033742007-01-02 David Turner <david@freetype.org>
3375
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003376 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00003377
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000033782006-12-31 Masatake YAMATO <jet@gyve.org>
3379
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003380 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
3381 function.
3382 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00003383 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003384 `gxv_kern_subtable_fmt0_pairs_validate'.
3385
David Turner115b4422006-12-22 11:37:05 +000033862006-12-22 David Turner <david@freetype.org>
3387
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003388 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
3389 warnings.
David Turner115b4422006-12-22 11:37:05 +00003390
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003391 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
3392 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00003393
Werner Lemberg4755bf72006-12-16 08:58:44 +000033942006-12-16 Anders Kaseorg <anders@kaseorg.com>
3395
3396 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
3397 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
3398
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000033992006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3400
Werner Lemberg9b774e22007-01-16 06:11:27 +00003401 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00003402 sync with the modification by Jens Claudius on 2006-08-22; cf.
3403 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 +00003404
34052006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3406
3407 * src/base/ftmac.c: Specialized for Mac OS X only.
3408 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
Werner Lemberg830846e2008-07-27 06:27:21 +00003409 * builds/unix/configure.raw: Ditto. When explicit switches for
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +00003410 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
3411 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
3412
34132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3414
3415 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
3416 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
3417 instead of src/base/ftmac.c
3418 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
3419 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
3420 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
3421 that cannot be built at present.
3422
34232006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3424
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00003425 * src/base/ftobjs.c: Improvement of resource fork handler for
3426 POSIX, cf.
3427 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003428 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
3429 format or .dfont, to simulate the face index number counted by ftmac.c.
3430 (IsMacResource): Return the number of scalable faces correctly.
3431
Werner Lembergec5b4502006-12-10 07:51:38 +000034322006-12-10 Werner Lemberg <wl@gnu.org>
3433
3434 * builds/toplevel.mk (version): Protect against `distclean' target.
3435
Werner Lembergb26b3142006-12-09 20:01:43 +000034362006-12-09 Werner Lemberg <wl@gnu.org>
3437
3438 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
3439 or `type'.
3440
3441 * builds/freetype.mk (version): Extracted from freetype.h, using
3442 GNU make's built-in string functions.
3443 (refdoc): Use $(version) instead of static version number.
3444
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000034452006-12-08 Werner Lemberg <wl@gnu.org>
3446
3447 * builds/toplevel.mk (dist): Extract version number from freetype.h.
3448
Werner Lemberg15c29502006-12-09 07:29:54 +000034492006-12-08 Vladimir Volovich <vvv@vsu.ru>
3450
3451 * src/tools/apinames (State): Remove final comma in structure -- xlc
3452 v5 under AIX 4.3 doesn't like this.
3453
David Turnerdbf3b432006-12-07 21:18:09 +000034542006-12-07 David Turner <david@freetype.org>
3455
Werner Lemberg256a3512006-12-08 06:49:33 +00003456 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
3457 to the spacing of auto-fitted glyphs. This only impacts rare
3458 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00003459
Werner Lemberg11171312006-12-03 09:43:40 +000034602006-12-03 Werner Lemberg <wl@gnu.org>
3461
3462 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
3463
Werner Lemberg960ba592006-12-01 08:20:47 +000034642006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00003465
Werner Lemberg960ba592006-12-01 08:20:47 +00003466 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
3467 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
3468 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00003469
David Turner80658e52006-11-28 08:09:20 +00003470
Werner Lemberg960ba592006-12-01 08:20:47 +00003471 * include/freetype/ftxf86.h: Fix and extend comment so that it
3472 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00003473
Werner Lemberg960ba592006-12-01 08:20:47 +00003474 * include/freetype/ftchapters.h: Add `font_format' section.
3475
3476
3477 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
3478 to TOC in index page.
3479
34802006-11-28 David Turner <david@freetype.org>
3481
3482 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
3483 trying to render into a zero-width/height bitmap, not an error code.
3484
3485 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
3486
3487 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
3488 ones instead.
3489
3490 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
3491 variable.
David Turner80658e52006-11-28 08:09:20 +00003492
Werner Lemberg8636c292006-11-26 22:28:13 +000034932006-11-26 Pierre Hanser <hanser@club-internet.fr>
3494
3495 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
3496
Werner Lemberg960ba592006-12-01 08:20:47 +000034972006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00003498
Werner Lemberg960ba592006-12-01 08:20:47 +00003499 * src/autofit/afhints.c (af_glyph_hints_dump_points,
3500 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
3501 Add stubs to link the `ftgrid' test program when debugging is
3502 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00003503
Werner Lemberg960ba592006-12-01 08:20:47 +000035042006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00003505
3506 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00003507 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
3508
3509 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
3510 Emit more sensible information.
3511
3512 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
3513
3514 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
3515 rounding of blue values.
3516 (af_latin_hints_compute_segments): Hint segment heights.
3517 (af_latin_hints_link_segments): Reduce `len_score' value.
3518 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
3519 value and use `height' member for comparisons.
3520 (af_latin_hint_edges): Extend logging message.
3521 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00003522
Werner Lemberg91959bf2006-11-22 10:36:55 +000035232006-11-22 Werner Lemberg <wl@gnu.org>
3524
3525 Fix Savannah bug #15553.
3526
3527 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
3528 program after a change from mono to grayscaling (and vice versa).
3529 Use correct constant for comparison to get `exec->grayscale'.
3530
Werner Lemberg913a3652006-11-19 09:19:17 +000035312006-11-18 Werner Lemberg <wl@gnu.org>
3532
3533 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00003534 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00003535 This patch fixes Savannah bug #18301.
3536
3537 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
3538 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
3539 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
3540 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
3541 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
3542 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
3543 (FNT_Load_Glyph): Check validity of `glyph_index'.
3544
David Turner7bab6ae2006-11-13 11:25:06 +000035452006-11-13 David Turner <david@freetype.org>
3546
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003547 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
3548 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00003549
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003550 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
3551 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
3552 when building the library to change the default LCD filter to be
3553 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00003554
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003555 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00003556
David Turner8765c712006-11-10 16:49:42 +000035572006-11-10 David Turner <david@freetype.org>
3558
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003559 * src/smooth/ftsmooth.c: API change for the LCD
3560 filter. The FT_LcdFilter value is an enumeration describing which
3561 filter to apply, with new values FT_LCD_FILTER_LIGHT and
3562 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
3563 algorithm which produces strong color fringes for everything
3564 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00003565
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003566 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
3567 second parameter to an enum type.
3568
3569 * src/base/ftlcdfil.c (USE_LEGACY): Define.
3570 (_ft_lcd_filter): Rename to...
3571 (_ft_lcd_filter_fir): This.
3572 Update parameters.
3573 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
3574 (FT_Library_Set_LcdFilter): Update parameters.
3575 Handle new filter modes.
3576
3577 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
3578 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
3579 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
3580 callback and update other fields.
3581
3582 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
3583 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
3584 Other minor improvements.
3585
3586 * src/autofit/aflatin.c: Various tiny improvements that drastically
3587 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
3588 (af_latin_hints_compute_edges): Fix typo.
3589 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00003590
David Turner4e9cc3c2006-11-09 16:31:52 +000035912006-11-09 David Turner <david@freetype.org>
3592
Werner Lemberg49c77a82006-11-09 21:51:57 +00003593 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
3594 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00003595
Werner Lemberg5e430892006-11-07 09:35:03 +000035962006-11-07 Zhe Su <james.su@gmail.com>
3597
3598 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
3599 also.
3600
Werner Lemberg111b5ae2006-11-03 09:40:12 +000036012006-11-03 Werner Lemberg <wl@gnu.org>
3602
3603 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
3604
David Turner40604742006-11-02 16:37:35 +000036052006-11-02 David Turner <david@freetype.org>
3606
Werner Lemberg111b5ae2006-11-03 09:40:12 +00003607 Add a few tweaks to better handle serif fonts.
3608 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00003609
Werner Lemberg111b5ae2006-11-03 09:40:12 +00003610 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
3611 segments that are less than 1.5 pixels high. This gets rid of
3612 *many* corner cases with serifs.
3613 (af_latin_align_linked_edge): Add logging message.
3614 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
3615 Add logging messages.
3616 Handle AF_EDGE_FLAG flag specially.
3617
3618 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
3619 _af_debug_disable_blue_hints, and _af_debug_hints variables.
3620
3621 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
3622 Update external declarations.
3623 (af_corner_orientation, af_corner_is_flat): Replaced by...
3624
3625 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
3626 ft_corner_is_flat): These declarations.
3627
3628 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
3629 Comment out. Replaced by...
3630
3631 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
3632 These functions. Update all callers.
3633 (FT_Add64) [!FT_LONG64]: Simplify.
3634
3635 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
3636 (af_direction_compute): Add a missing FT_ABS call. This bug caused
3637 production of garbage by missing lots of segments.
3638
3639 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
3640
3641 * src/autofit/afloader.c (af_loader_init, af_loader_done)
3642 [AF_DEBUG]: Set _af_debug_hints.
3643
3644
3645 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
3646 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
3647 and ft_corner_orientation.
3648
3649
3650 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00003651
Werner Lemberge88c5262006-10-24 05:46:26 +000036522006-10-24 Werner Lemberg <wl@gnu.org>
3653
3654 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
3655
3656 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
3657 as argument.
3658
David Turnera1861392006-10-23 16:00:59 +000036592006-10-23 Zhe Su <zsu@novell.com>
3660
Werner Lemberg715e96e2006-10-24 05:28:45 +00003661 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
3662 better deal with broken Asian fonts with strange glyphs, having
3663 self-intersections and other peculiarities. The used algorithm is
3664 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00003665
David Turnere140f142006-10-23 08:56:57 +000036662006-10-23 David Turner <david@freetype.org>
3667
Werner Lemberg715e96e2006-10-24 05:28:45 +00003668 Speed up the CFF font loader. With some large CFF fonts,
3669 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00003670
Werner Lemberg715e96e2006-10-24 05:28:45 +00003671 * src/cff/cffload.c (cff_get_offset): Removed.
3672 (cff_new_index): Inline functionality of `cff_get_offset'.
3673 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
3674 (cff_charset_done): Call `cff_charset_free_cids'.
3675 (cff_charset_load): Call `cff_charset_compute_cids'.
3676 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
3677
3678 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
3679 with FT_NEXT_XXX.
3680
3681
3682 Speed up the Postscript hinter, with more than 100% speed increase
3683 on my machine.
3684
3685 * src/pshinter/pshalgo.c (psh_corner_is_flat,
3686 psh_corner_orientation): New functions.
3687 (psh_glyph_compute_inflections): Merge loops for efficiency.
3688 Use `psh_corner_orientation'.
3689 (psh_glyph_init): Use `psh_corner_is_flat'.
3690 (psh_hint_table_find_strong_point): Renamed to...
3691 (psh_hint_table_find_strong_points): This.
3692 Rewrite, adding argument to handle all points at once.
3693 Update all callers.
3694 (PSH_MAX_STRONG_INTERNAL): New macro.
3695 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00003696
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000036972006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3698
3699 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00003700 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00003701
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000037022006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3703
3704 * docs/INSTALL.CROSS: New document file for cross-building.
3705
3706 * builds/unix/configure.raw: Preliminary cross-building support.
3707 Find native C compiler and pass it by CC_BUILD, and
3708 find suffix for native executable and pass it by EXEEXT_BUILD.
3709 Also suffix for target executable is passed by EXEEXT.
3710
Werner Lembergb9e6d692006-10-15 08:58:40 +00003711 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
3712 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00003713 CC_BUILD and EXEEXT_BUILD.
3714
Werner Lembergb9e6d692006-10-15 08:58:40 +00003715 * builds/exports.mk (APINAMES_EXE): Change the extension for
3716 apinames from the suffix for target (E) to that for building host
3717 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00003718
Werner Lemberg82a07e92006-10-12 06:20:44 +000037192006-10-12 Werner Lemberg <wl@gnu.org>
3720
3721 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
3722 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
3723 which reference those files.
3724
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000037252006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3726
Werner Lembergb9e6d692006-10-15 08:58:40 +00003727 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
3728 embedded in freetype2.pc and freetype-config. Use it to record
3729 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00003730
3731 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
3732
3733 * builds/unix/freetype-config.in: Ditto.
3734
Werner Lemberg28e17d92006-10-11 17:27:47 +000037352006-10-11 Werner Lemberg <wl@gnu.org>
3736
3737 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
3738 development.
3739
Jens Claudius336d2292006-10-03 08:53:37 +000037402006-10-03 Jens Claudius <jens.claudius@yahoo.com>
3741
3742 * include/freetype/config/ftstdlib.h: Cast away volatileness from
3743 argument to ft_setjmp.
3744
3745 * include/freetype/internal/ftvalid.h: Add comment that
3746 ft_validator_run must not be used.
3747
Werner Lemberg2863cfa2006-10-01 17:04:00 +000037482006-10-01 Werner Lemberg <wl@gnu.org>
3749
3750 * src/base/ftbase.c: Undo change from 2006-09-30.
3751
3752 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
3753
37542006-09-30 David Turner <david@freetype.org>
3755
Werner Lemberg046bf8b2006-10-03 08:43:42 +00003756 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
3757 s/unpatented_hinting/ignore_unpatented_hinter/.
3758 Update all callers.
3759
3760 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
3761 auto-hinting shall be used or not.
3762
3763 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00003764
Werner Lemberg2863cfa2006-10-01 17:04:00 +000037652006-09-30 Werner Lemberg <wl@gnu.org>
3766
Werner Lemberg1e4402e2006-09-29 22:10:36 +00003767 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
3768 in use).
3769
3770 * src/base/ftbase.c: Include `ftlcdfil.c'.
3771
Werner Lemberg9b15ea32006-09-29 18:22:11 +000037722006-09-29 Werner Lemberg <wl@gnu.org>
3773
3774 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
3775 overlapping segments. Bug reported by Stefan Koch.
3776
David Turnerad830712006-09-27 16:20:59 +000037772006-09-28 David Turner <david@freetype.org>
3778
Werner Lemberg2c002e12006-09-29 21:31:53 +00003779 Fix a bug in the automatic unpatented hinting support which prevents
3780 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00003781
Werner Lemberg2c002e12006-09-29 21:31:53 +00003782 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
3783 s/force_autohint/unpatented_hinting/. Update all callers.
3784
3785 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
3786
3787 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00003788
David Turner8a317cf2006-09-27 07:52:48 +000037892006-09-27 David Turner <david@freetype.org>
3790
Werner Lemberg2c002e12006-09-29 21:31:53 +00003791 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00003792
David Turner8a317cf2006-09-27 07:52:48 +00003793
David Turnere140f142006-10-23 08:56:57 +00003794 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00003795 In a default build, the function `FT_Library_SetLcdFilter' returns
3796 `FT_Err_Unimplemented_Feature'; you need to #define
3797 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
3798 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00003799
Werner Lemberg2c002e12006-09-29 21:31:53 +00003800 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00003801
Werner Lemberg2c002e12006-09-29 21:31:53 +00003802 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
3803 typedef.
3804 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
3805 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00003806
Werner Lemberg2c002e12006-09-29 21:31:53 +00003807 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
3808 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00003809
Werner Lemberg2c002e12006-09-29 21:31:53 +00003810 Handle subpixel rendering.
3811 Simplify function.
3812 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
3813 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
3814
3815 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
3816 pointing to <freetype/ftlcdfil.h>.
3817
3818 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
3819 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
3820
3821 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00003822
Werner Lemberge20df4a2006-09-27 06:29:21 +000038232006-09-26 David Bustin
3824
3825 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
3826 correctly. Reported as Savannah bug #17843.
3827
David Turner6f8c6222006-09-26 15:42:44 +000038282006-09-26 David Turner <david@freetype.org>
3829
Werner Lemberg110246c2006-09-26 21:55:44 +00003830 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
3831 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
3832 horizontal and vertical hinting for the purpose of debugging the
3833 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00003834
Werner Lemberg110246c2006-09-26 21:55:44 +00003835 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
3836 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00003837
Werner Lemberg110246c2006-09-26 21:55:44 +00003838 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
3839
3840 * include/freetype/config/ftoption.h, devel/ftoption.h
3841 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
3842 we want to compile LCD-optimized rendering code (à la ClearType) or
3843 not. The macro *must* be disabled in default builds of the library
3844 for patent reasons.
3845
3846 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
3847 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
3848 isn't defined at compile time. This only changes the content of the
3849 rendered glyph to match the one of normal gray-level rendering,
3850 hence clients should not need to be modified.
3851
3852 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00003853
Werner Lemberg745ff2c2006-09-19 05:48:02 +000038542006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
3855
3856 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
3857 LWFN fails and both are available.
3858
David Turnerf3050052006-09-11 12:00:32 +000038592006-09-11 David Turner <david@freetype.org>
3860
Werner Lembergf9644552006-09-12 13:48:10 +00003861 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
3862 report their English names through an Apple Roman
3863 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00003864
Werner Lembergf9644552006-09-12 13:48:10 +00003865 If the font uses another name entry with language_id == English, it
3866 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00003867
Werner Lembergf9644552006-09-12 13:48:10 +00003868 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
3869 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00003870
Werner Lemberg36d2eab2006-09-05 19:24:34 +000038712006-09-05 Werner Lemberg <wl@gnu.org>
3872
3873 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00003874 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00003875 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
3876 `HAN NOM B.ttf').
3877
3878 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
3879
David Turner772e55d2006-09-05 09:45:15 +000038802006-09-05 David Turner <david@freetype.org>
3881
Werner Lemberg36d2eab2006-09-05 19:24:34 +00003882 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00003883
Werner Lemberg36d2eab2006-09-05 19:24:34 +00003884 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
3885 (TRaster): Remove `count_ex' and `count_ey'.
3886 (gray_find_cell): Remove 2nd and 3rd argument.
3887 (gray_alloc_cell): Merged with `gray_find_cell'.
3888 (gray_record_cell): Simplify.
3889 (gray_set_cell): Rewrite.
3890 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
3891 (gray_render_span): Don't use FT_MEM_SET for small values.
3892 (gray_dump_cells) [DEBUG_GRAYS]: New function.
3893 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
3894 bitmap scanline.
3895 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00003896
David Turneraa557a92006-09-04 16:42:44 +000038972006-09-04 David Turner <david@freetype.org>
3898
Werner Lembergd1fc7d42006-09-05 07:55:42 +00003899 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
3900 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00003901
Werner Lemberg2d8629b2006-09-03 06:18:45 +000039022006-09-03 Werner Lemberg <wl@gnu.org>
3903
3904 * devel/ftoption.h: Synchronize with
3905 include/freetype/config/ftoption.h.
3906
3907 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
3908 variable declaration.
3909 (gray_convert_glyph): Fix compiler warnings.
3910
David Turner6d79f212006-09-01 14:09:35 +000039112006-09-01 David Turner <david@freetype.org>
3912
Werner Lemberg2d8629b2006-09-03 06:18:45 +00003913 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
3914 to recognize a few fonts that require the automatic unpatented
3915 loader.
David Turnerbd502952006-09-01 19:05:24 +00003916
Werner Lemberg2d8629b2006-09-03 06:18:45 +00003917 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
3918 rasterizer. The speed improvement is between 15% and 25%, depending
3919 on the font data.
3920
3921 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
3922 (TCell): Redefine.
3923 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
3924 (gray_init_cells): Updated.
3925 (gray_find_cell, gray_alloc_cell): New functions.
3926 (gray_record_cell): Rewritten to use `gray_find_cell' and
3927 `gray_alloc_cell'.
3928 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
3929 QSORT_THRESHOLD):
3930 Removed.
3931 (gray_shell_sort, gray_quick_sort, gray_check_sort,
3932 gray_dump_cells): Removed.
3933 (gray_sweep): Rewritten.
3934 (gray_convert_glyph): Rewrite code which used one of the sorting
3935 functions.
3936 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00003937
Werner Lembergd898aed2006-08-29 09:50:34 +000039382006-08-29 Dr. Werner Fink <werner@suse.de>
3939
3940 * configure: Make it possible to handle configure options which
3941 have strings containing spaces.
3942
39432006-08-27 David Turner <david@freetype.org>
3944
Werner Lemberg2d8629b2006-09-03 06:18:45 +00003945 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
3946 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
3947 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
3948
3949 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
3950 src/truetype/truetype.c, src/truetype/ttdriver.c,
3951 src/truetype/ttgload.c, src/truetype/ttgload.h,
3952 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
3953 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
3954 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
3955
3956 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
3957 member `force_autohint'.
3958
3959 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
3960
3961 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
3962 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00003963
Jens Claudiusa787f452006-08-27 11:26:18 +000039642006-08-27 Jens Claudius <jens.claudius@yahoo.com>
3965
3966 Fix miscellaneous compiler warnings.
3967
Werner Lemberg32e05a62008-05-04 16:53:22 +00003968 * include/freetype/internal/ftobjs.h: Close comment with `*/' to
3969 avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00003970
Werner Lemberg32e05a62008-05-04 16:53:22 +00003971 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
Werner Lemberg2d8629b2006-09-03 06:18:45 +00003972 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
3973 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00003974
Werner Lemberg32e05a62008-05-04 16:53:22 +00003975 * src/base/ftobjs.c (t_validator_error): Cast away
Werner Lemberg2d8629b2006-09-03 06:18:45 +00003976 volatileness of argument to ft_longjmp. Spotted by Werner
3977 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00003978
Werner Lemberg32e05a62008-05-04 16:53:22 +00003979 * src/bdf/bdflib.c (bdf_load_font): Initialize local
Werner Lemberg2d8629b2006-09-03 06:18:45 +00003980 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00003981
Werner Lemberg32e05a62008-05-04 16:53:22 +00003982 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
3983 `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00003984
Werner Lembergc4c35b72006-08-27 08:03:46 +000039852006-08-27 Werner Lemberg <wl@gnu.org>
3986
3987 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
3988 Reported by Jens.
3989
Jens Claudius088e44e2006-08-22 14:24:30 +000039902006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00003991
Jens Claudius088e44e2006-08-22 14:24:30 +00003992 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00003993 about addresses of volatile objects passed as function arguments as
3994 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00003995
Werner Lemberg32e05a62008-05-04 16:53:22 +00003996 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
3997 pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00003998
Werner Lemberg32e05a62008-05-04 16:53:22 +00003999 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
4000 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004001
Werner Lemberg32e05a62008-05-04 16:53:22 +00004002 * src/otvalid/otvmod.c (otv_load_table): Make function argument
4003 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004004
Jens Claudius2652bd52006-08-18 17:20:37 +000040052006-08-18 Jens Claudius <jens.claudius@yahoo.com>
4006
Werner Lemberg32e05a62008-05-04 16:53:22 +00004007 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
4008 as volatile since it must keep its value across a call to ft_setjmp.
Jens Claudius2652bd52006-08-18 17:20:37 +00004009 (gxv_validate): Same for local variables `memory' and `valid'.
4010 (classic_kern_validate): Same for local variables `memory',
4011 `ckern', and `valid'.
4012
Werner Lemberg32e05a62008-05-04 16:53:22 +00004013 * src/otvalid/otvmod.c (otv_validate): Same for function parameter
4014 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
4015 and 'valid'.
Jens Claudius2652bd52006-08-18 17:20:37 +00004016
Werner Lemberg32e05a62008-05-04 16:53:22 +00004017 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
4018 `cmap'.
Jens Claudius2652bd52006-08-18 17:20:37 +00004019
David Turner9fbfc6a2006-08-16 09:11:31 +000040202006-08-16 David Turner <david@freetype.org>
4021
Werner Lemberg12342992006-08-19 11:18:09 +00004022 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
4023 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00004024
Werner Lemberg12342992006-08-19 11:18:09 +00004025 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
4026 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00004027
David Turner33f5f242006-08-16 16:50:55 +00004028
Werner Lemberg830846e2008-07-27 06:27:21 +00004029 Improvements to native TrueType hinting. This is a first try,
Werner Lemberg12342992006-08-19 11:18:09 +00004030 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
4031
4032 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
4033 `extra_points2'.
4034
4035 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
4036 `orus'.
4037
4038 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
4039 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
4040 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
4041 handle `extra_points2'.
4042
4043 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
4044 Remove compiler warning.
4045 (cur_to_arg): Remove macro.
4046 (TT_Hint_Glyph): Updated.
4047 (TT_Process_Simple_Glyph): Handle `orus'.
4048
4049 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
4050 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
4051 (LOC_Ins_IUP): Renamed to...
4052 (IUP_WorkerRec): This.
4053 Add `orus' member.
4054 (Shift): Renamed to...
4055 (_iup_worker_shift): This.
4056 Updated.
4057 (Interp): Renamed to...
4058 (_iup_worker_interpolate): This.
4059 Updated to handle `orus'.
4060 (Ins_IUP): Updated.
4061
4062 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
4063 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00004064
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000040652006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4066
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00004067 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00004068 build ftvalid in ft2demos. This has been inadvertedly changed
4069 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00004070
40712006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4072
Werner Lemberg12342992006-08-19 11:18:09 +00004073 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
4074 Jens:
4075 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004076
Werner Lemberg32e05a62008-05-04 16:53:22 +00004077 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
4078 It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004079
Werner Lemberg32e05a62008-05-04 16:53:22 +00004080 * src/gxvalid/gxvmod.c: Ditto.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004081
Jens Claudius9950adc2006-08-13 12:14:36 +000040822006-08-13 Jens Claudius <jens.claudius@yahoo.com>
4083
Werner Lemberg32e05a62008-05-04 16:53:22 +00004084 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
Werner Lemberg12342992006-08-19 11:18:09 +00004085 T1_TOKEN_TYPE_KEY.
4086 (T1_FieldRec): Add `dict'.
4087 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
4088 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
4089 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00004090
Werner Lemberg32e05a62008-05-04 16:53:22 +00004091 * src/cid/cidload.c: (cid_field_records): Adjust invocations of
4092 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004093
Werner Lemberg32e05a62008-05-04 16:53:22 +00004094 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004095
Werner Lemberg32e05a62008-05-04 16:53:22 +00004096 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00004097 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
4098 not T1_TOKEN_TYPE_ANY.
4099 (ps_parser_load_field): Make sure a token that should be a string or
4100 name is really a string or name.
4101 Avoid memory leak if a keyword has been already encountered and its
4102 value is overwritten.
Werner Lemberg32e05a62008-05-04 16:53:22 +00004103 * src/type1/t1load.c: (t1_keywords): Adjust invocations of
Werner Lemberg12342992006-08-19 11:18:09 +00004104 T1_FIELD_XXX.
4105 (parse_dict): Ignore keywords that occur in the wrong dictionary
4106 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00004107
Werner Lemberg32e05a62008-05-04 16:53:22 +00004108 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004109
Werner Lemberg32e05a62008-05-04 16:53:22 +00004110 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
4111 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004112
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000041132006-07-18 Jens Claudius <jens.claudius@yahoo.com>
4114
4115 Move creation of field `buildchar' of T1_DecoderRec out of
4116 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
4117 of it.
4118
4119 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
4120 and `T1_Compute_Max_Advance'.
4121
Werner Lemberg32e05a62008-05-04 16:53:22 +00004122 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
4123 `face', add `len_buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004124
Werner Lemberg32e05a62008-05-04 16:53:22 +00004125 * include/freetype/internal/t1types.h (T1_FaceRec): Add field
4126 `buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004127
Werner Lemberg32e05a62008-05-04 16:53:22 +00004128 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
4129 for T1_Decoder.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004130 (cid_slot_load_glyph): Do not ignore failure when initializing the
4131 T1_Decoder.
4132
Werner Lemberg32e05a62008-05-04 16:53:22 +00004133 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004134 (t1_decoder_init): Remove initialization of fields `buildchar' and
4135 `len_buildchar'.
4136 (t1_decoder_done): Remove deallocation of field `buildchar'.
4137
4138 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
4139 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
4140 T1_Decoder.
4141 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
4142 `len_buildchar'; make sure to call finisher for T1_Decoder even in
4143 case of error.
4144
Werner Lemberg32e05a62008-05-04 16:53:22 +00004145 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
4146 of T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004147
Werner Lemberg32e05a62008-05-04 16:53:22 +00004148 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
4149 T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004150
Werner Lemberg1a380e02006-07-14 18:28:08 +000041512006-07-14 Jens Claudius <jens.claudius@yahoo.com>
4152
Werner Lemberg32e05a62008-05-04 16:53:22 +00004153 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
4154 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
4155 and IS_PS_BASE85 (from src/psaux/psconv.h).
Werner Lemberg1a380e02006-07-14 18:28:08 +00004156 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
4157 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
4158 (T1_DecoderRec): New fields `buildchar' and `face'.
4159 (IS_PS_TOKEN): New macro.
4160
Werner Lemberg32e05a62008-05-04 16:53:22 +00004161 * include/freetype/internal/t1types.h (T1_FaceRec): New fields
4162 `ndv_idx', `cdv_idx', and `len_buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004163
Werner Lemberg32e05a62008-05-04 16:53:22 +00004164 * include/freetype/t1tables.h (PS_BlendRec): New fields
Werner Lemberg1a380e02006-07-14 18:28:08 +00004165 `default_design_vector' and `num_default_design_vector'.
4166
Werner Lemberg32e05a62008-05-04 16:53:22 +00004167 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
4168 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
4169 IS_PS_BASE85 to include/freetype/internal/psaux.h.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004170
Werner Lemberg32e05a62008-05-04 16:53:22 +00004171 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
4172 argument to be NULL if we want only to count the number of tokens.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004173 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
4174 want to skip the array.
4175 (ps_tofixedarray): Allow `values' argument to be NULL if we just
4176 want to skip the array.
4177
Werner Lemberg32e05a62008-05-04 16:53:22 +00004178 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
4179 for (partially commented out) othersubrs 19-25, 27, and 28.
4180 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004181 (t1_decoder_done): Release new field `buildchar'.
4182
Werner Lemberg32e05a62008-05-04 16:53:22 +00004183 * src/type1/t1load.c (parse_buildchar, parse_private): New
Werner Lemberg1a380e02006-07-14 18:28:08 +00004184 functions.
4185 (t1_keywords): Register them.
4186 (t1_allocate_blend): Updated.
4187 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
4188 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
4189 (parse_dict): Remove `keyword_flags' argument.
4190 Use new macro IS_PS_TOKEN.
4191 Changed function so that later PostScript definitions override
4192 earlier ones.
4193 (t1_init_loader): Initialize new field `keywords_encountered'.
4194 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
4195 `len_buildchar'.
4196 Remove `keywords_flags'.
4197
Werner Lemberg32e05a62008-05-04 16:53:22 +00004198 * src/type1/t1load.h (T1_LoaderRect): New field
Werner Lemberg1a380e02006-07-14 18:28:08 +00004199 `keywords_encountered'.
4200 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
4201
Werner Lemberg32e05a62008-05-04 16:53:22 +00004202 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
4203 entries for parsing /NDV, /CDV, and /DesignVector.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004204
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000042052006-07-07 Werner Lemberg <wl@gnu.org>
4206
4207 Add many checks to protect against malformed PCF files.
4208
4209 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
4210 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
4211
4212 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
4213 data and check that tables don't overlap (using a simple
4214 bubblesort).
4215 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
4216 New macros which give the size of data structures in the data
4217 stream.
4218 (pcf_get_properties): Use rough estimates to get array size limits.
4219 Assign `face->nprops' and `face->properties' earlier so that a call
4220 to PCF_Face_Done can do the clean-up in case of error.
4221 Protect against invalid string offsets.
4222 (pcf_get_metrics): Clean up code.
4223 Adjust tracing message levels.
4224 Use rough estimate to get array size limit.
4225 (pcf_get_bitmaps): Clean up code.
4226 Adjust tracing message levels.
4227 Use rough estimates to get offset limits.
4228 (pcf_get_encodings): Adjust tracing message level.
4229 (pcf_get_accel): Clean up code.
4230
Werner Lemberg8eb05252006-06-27 06:20:01 +000042312006-06-26 Werner Lemberg <wl@gnu.org>
4232
4233 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
4234 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
4235
Werner Lemberg24703f82006-06-26 19:12:51 +000042362006-06-26 Jens Claudius <jens.claudius@yahoo.com>
4237
4238 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
4239 (t1_decoder_parse_charstrings): Operator with
4240 opcode 15 pops its two arguments.
4241 Handle the case where the pops of an othersubr may be part of a
4242 subroutine.
4243 Handle unknown othersubrs gracefully: count their operands and let
4244 the following pop operators push the operands as the results onto
4245 the Type1 stack.
4246 Improve handling of setcurrentpoint opcode.
4247
Werner Lembergc011f4c2006-06-26 09:40:00 +000042482006-06-25 Jens Claudius <jens.claudius@yahoo.com>
4249
4250 The Type 1 parser now skips over top-level procedures as required
4251 for a `Simplified Parser'. This makes the parser more robust as it
4252 doesn't poke around in PostScript code. Additionally, it makes the
4253 FontDirectory hackery in src/type1/t1load.c unnecessary.
4254
4255 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
4256 (skip_literal_string): Add FT_Error as return value.
4257 Handle escapes better.
4258 (skip_string): Add FT_Error as return value.
4259 Don't set `parser->error' but return error code directly.
4260 (skip_procedure): New function.
4261 (ps_parser_skip_PS_token): Handle procedures.
4262 Update code.
4263 (ps_parser_to_token): Update code.
4264 (ps_parser_load_field_table): Handle bbox entries also.
4265
4266 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
4267 Add commented-out code for synthetic fonts.
4268
Werner Lemberga2da05c2006-06-25 06:27:27 +000042692006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
4270
4271 Fix two hinting bugs as reported in
4272 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
4273
4274 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
4275 `first_point' member.
4276
4277 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
4278 `first_point'.
4279 (TT_Process_Composite_Glyph): Always untouch points.
4280
4281 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
4282 `first_point' and `last_point' in case of composite glyphs.
4283 (Ins_IUP): Fix computation of `end_point'.
4284
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000042852006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4286
Werner Lembergef3d2c22006-06-25 06:07:14 +00004287 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
4288 Mac. The original patch was written by David Sachitano and Lawrence
4289 Coopet, and modified by Sean McBride for MPW compatibility. Only
4290 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00004291
Werner Lembergef3d2c22006-06-25 06:07:14 +00004292 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
4293 Mac OS X platforms.
4294 (OS_INLINE): Undefine before definition.
4295 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
4296 FontAssociation table in FOND resource.
4297 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
4298 and fontSize at each entry of FontAssociation table in FOND
4299 resource.
4300 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
4301 ffStylOff of FamilyRecord header of FOND resource, the header,
4302 fontSize, fontID at each entry of FontAssociation table, and
4303 StyleMapping table.
4304 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00004305
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000043062006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4307
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004308 Public API of TrueTypeGX, OpenType, and classic kern table validator
4309 should return `FT_Err_Unimplemented_Feature' if validation service
4310 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00004311 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004312 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
4313
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004314 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
4315 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
4316 unavailable.
4317 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
4318 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004319
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004320 * src/base/ftotval.c (FT_OpenType_Validate): Return
4321 FT_Err_Unimplemented_Feature if OpenType validation service is
4322 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004323
Werner Lembergb10e45a2006-06-08 07:32:56 +000043242006-06-08 Werner Lemberg <wl@gnu.org>
4325
4326 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
4327 errors.
4328
David Turner5f1f7502006-06-07 05:11:50 +000043292006-06-07 David Turner <david@freetype.org>
4330
Werner Lemberg7d48cb02006-06-08 06:00:08 +00004331 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
4332 (T1_Read_Metrics): Fix memory leak which happened when the metrics
4333 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00004334
David Turner457b4a82006-06-06 08:14:14 +000043352006-06-06 David Turner <david@freetype.org>
4336
Werner Lemberg4836f952006-06-06 12:54:08 +00004337 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00004338
Werner Lemberg4836f952006-06-06 12:54:08 +00004339 We change `ps_unicodes_init' so that it also takes a
4340 `free_glyph_name' callback to release the glyph names returned by
4341 `get_glyph_name'
4342
4343 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
4344 Renamed to ...
4345 (PS_GetGlyphNameFunc): This.
4346 (PS_FreeGlyphNameFunc): New typedef.
4347 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
4348
4349 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
4350 argument.
4351 (cff_sid_free_glyph_name): New function.
4352 (cff_cmap_unicode_init): Updated.
4353
4354 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
4355
4356 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
4357 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00004358
4359
David Turner09717352006-06-04 14:33:08 +000043602006-06-04 David Turner <david@freetype.org>
4361
Werner Lembergd724f202006-06-04 15:17:41 +00004362 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
4363 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00004364 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00004365
Werner Lembergd724f202006-06-04 15:17:41 +00004366 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
4367 of `face->num_glyphs' which missed the last glyph, due to
4368 the offset-by-1 computation, since the PFR format doesn't
4369 guarantee that glyph index 0 corresponds to the `missing
4370 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00004371
Werner Lemberg33779662006-05-26 06:30:05 +000043722006-05-25 Werner Lemberg <wl@gnu.org>
4373
4374 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
4375 `-no-undefined'. Reported by Christian Biesinger.
4376
Werner Lemberg24773d62006-05-20 08:53:13 +000043772006-05-19 Brian Weed <bw@imaginengine.com>
4378
4379 * builds/win32/visualc/freetype.dsp: Release libraries no longer
4380 have debug information, and debug libraries use `C7 compatible'
4381 debug info.
4382
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000043832006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4384
Werner Lemberga6523a62006-05-20 08:47:01 +00004385 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00004386 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004387
Werner Lemberga6523a62006-05-20 08:47:01 +00004388 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
4389 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004390
4391 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00004392 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004393
43942006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4395
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00004396 * build/unix/configure.raw: Add a fallback to disable Carbon
4397 dependency, if configured with no options on Mac OS X.
4398
43992006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4400
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00004401 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00004402 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00004403 the second part of Savannah bug #16590.
4404
Werner Lemberg545c4e52006-05-17 22:55:04 +000044052006-05-18 Werner Lemberg <wl@gnu.org>
4406
4407 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
4408 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
4409
David Turnerdc3ff312006-05-17 12:59:35 +000044102006-05-17 David Turner <david@freetype.org>
4411
Werner Lemberg545c4e52006-05-17 22:55:04 +00004412 This is a major patch used to drastically improve the performance of
4413 loading glyphs. This both speeds up loading the glyph vectors
4414 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00004415
Werner Lemberg545c4e52006-05-17 22:55:04 +00004416 We now use inline assembler code with GCC to implement `FT_MulFix',
4417 which is probably the most important function related to the
4418 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00004419
Werner Lemberg545c4e52006-05-17 22:55:04 +00004420 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00004421
4422
Werner Lemberg545c4e52006-05-17 22:55:04 +00004423 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
4424 `cursor' and `limit'.
4425
4426 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
4427 New functions.
4428 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
4429 [TEST]: Remove.
4430
4431 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
4432 code.
4433
4434 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
4435 `FT_ZERO'
4436 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
4437 (af_glyph_hints_reload: Rewrite recognition of weak points.
4438
4439 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
4440 constant values out of the loops.
4441
4442 * src/autofit/aftypes.h: Updated.
4443
4444 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
4445
4446 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
4447 product to get orientation.
4448
4449 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
4450 (FT_Stream_OpenGzip): Use it to handle small files directly in
4451 memory.
4452
4453 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
4454 Improve performance.
4455
4456 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
4457 `limit'.
4458
4459 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
4460 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
4461 exceedingly large values of number of contours. Speed up by
4462 reducing the number of loops.
4463
4464 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
4465
4466
4467 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
4468 used to detect rogue clients from 4 to 16. This is to prevent some
4469 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
4470 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00004471
Werner Lembergde2d90a2006-05-17 08:54:30 +000044722007-05-17 Werner Lemberg <wl@gnu.org>
4473
4474 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00004475 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00004476
44772006-05-16 Werner Lemberg <wl@gnu.org>
4478
4479 * docs/PROBLEMS: Updated icl issues.
4480
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004481----------------------------------------------------------------------------
4482
Werner Lembergf2e33c12009-01-06 06:59:36 +00004483Copyright 2006, 2007, 2008, 2009 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004484David Turner, Robert Wilhelm, and Werner Lemberg.
4485
4486This file is part of the FreeType project, and may only be used, modified,
4487and distributed under the terms of the FreeType project license,
4488LICENSE.TXT. By continuing to use, modify, or distribute this file you
4489indicate that you have read the license and understand and accept it
4490fully.
4491
4492
4493Local Variables:
4494version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004495coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004496End: