blob: 4eb8ae38303f300cf1f9d55f83ed15452c270af2 [file] [log] [blame]
David Turner9207e002007-01-02 16:58:13 +000012007-01-02 David Turner <david@freetype.org>
2
3 * src/sfnt/sfobjs.c: adding documentation comment
4
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000052006-12-31 Masatake YAMATO <jet@gyve.org>
6
7 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New function.
8 Checks uniqueness of the gid pairs.
9 (gxv_kern_subtable_fmt0_validate): Move some code to
10 `gxv_kern_subtable_fmt0_pairs_validate'.
11
David Turner115b4422006-12-22 11:37:05 +0000122006-12-22 David Turner <david@freetype.org>
13
14 * src/autofit/aflatin.c, src/truetype/ttgload.c: removing compiler
15 warnings
16
17 * builds/win32/visualc/freetype.vcproj: adding _CRT_SECURE_NO_DEPRECATE
18 to avoid deprecation warnings with Visual C++ 8
19
Werner Lemberg4755bf72006-12-16 08:58:44 +0000202006-12-16 Anders Kaseorg <anders@kaseorg.com>
21
22 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
23 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
24
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000252006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
26
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +000027 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +000028 sync with the modification by Jens Claudius on 2006-08-22; cf.
29 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 +000030
312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
32
33 * src/base/ftmac.c: Specialized for Mac OS X only.
34 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
35 * builds/unix/configure.raw: Ditto. When explicit switches for
36 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
37 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
38
392006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
40
41 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
42 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
43 instead of src/base/ftmac.c
44 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
45 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
46 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
47 that cannot be built at present.
48
492006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
50
Werner Lemberg0fd08bd2006-12-16 02:57:46 +000051 * src/base/ftobjs.c: Improvement of resource fork handler for
52 POSIX, cf.
53 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000054 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
55 format or .dfont, to simulate the face index number counted by ftmac.c.
56 (IsMacResource): Return the number of scalable faces correctly.
57
Werner Lembergec5b4502006-12-10 07:51:38 +0000582006-12-10 Werner Lemberg <wl@gnu.org>
59
60 * builds/toplevel.mk (version): Protect against `distclean' target.
61
Werner Lembergb26b3142006-12-09 20:01:43 +0000622006-12-09 Werner Lemberg <wl@gnu.org>
63
64 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
65 or `type'.
66
67 * builds/freetype.mk (version): Extracted from freetype.h, using
68 GNU make's built-in string functions.
69 (refdoc): Use $(version) instead of static version number.
70
Werner Lemberg4e1d6c02006-12-09 08:20:37 +0000712006-12-08 Werner Lemberg <wl@gnu.org>
72
73 * builds/toplevel.mk (dist): Extract version number from freetype.h.
74
Werner Lemberg15c29502006-12-09 07:29:54 +0000752006-12-08 Vladimir Volovich <vvv@vsu.ru>
76
77 * src/tools/apinames (State): Remove final comma in structure -- xlc
78 v5 under AIX 4.3 doesn't like this.
79
David Turnerdbf3b432006-12-07 21:18:09 +0000802006-12-07 David Turner <david@freetype.org>
81
Werner Lemberg256a3512006-12-08 06:49:33 +000082 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
83 to the spacing of auto-fitted glyphs. This only impacts rare
84 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +000085
Werner Lemberg11171312006-12-03 09:43:40 +0000862006-12-03 Werner Lemberg <wl@gnu.org>
87
88 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
89
Werner Lemberg960ba592006-12-01 08:20:47 +0000902006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +000091
Werner Lemberg960ba592006-12-01 08:20:47 +000092 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
93 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
94 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +000095
David Turner80658e52006-11-28 08:09:20 +000096
Werner Lemberg960ba592006-12-01 08:20:47 +000097 * include/freetype/ftxf86.h: Fix and extend comment so that it
98 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +000099
Werner Lemberg960ba592006-12-01 08:20:47 +0000100 * include/freetype/ftchapters.h: Add `font_format' section.
101
102
103 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
104 to TOC in index page.
105
1062006-11-28 David Turner <david@freetype.org>
107
108 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
109 trying to render into a zero-width/height bitmap, not an error code.
110
111 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
112
113 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
114 ones instead.
115
116 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
117 variable.
David Turner80658e52006-11-28 08:09:20 +0000118
Werner Lemberg8636c292006-11-26 22:28:13 +00001192006-11-26 Pierre Hanser <hanser@club-internet.fr>
120
121 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
122
Werner Lemberg960ba592006-12-01 08:20:47 +00001232006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000124
Werner Lemberg960ba592006-12-01 08:20:47 +0000125 * src/autofit/afhints.c (af_glyph_hints_dump_points,
126 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
127 Add stubs to link the `ftgrid' test program when debugging is
128 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000129
Werner Lemberg960ba592006-12-01 08:20:47 +00001302006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000131
132 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000133 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
134
135 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
136 Emit more sensible information.
137
138 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
139
140 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
141 rounding of blue values.
142 (af_latin_hints_compute_segments): Hint segment heights.
143 (af_latin_hints_link_segments): Reduce `len_score' value.
144 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
145 value and use `height' member for comparisons.
146 (af_latin_hint_edges): Extend logging message.
147 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000148
Werner Lemberg91959bf2006-11-22 10:36:55 +00001492006-11-22 Werner Lemberg <wl@gnu.org>
150
151 Fix Savannah bug #15553.
152
153 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
154 program after a change from mono to grayscaling (and vice versa).
155 Use correct constant for comparison to get `exec->grayscale'.
156
Werner Lemberg913a3652006-11-19 09:19:17 +00001572006-11-18 Werner Lemberg <wl@gnu.org>
158
159 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000160 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000161 This patch fixes Savannah bug #18301.
162
163 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
164 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
165 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
166 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
167 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
168 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
169 (FNT_Load_Glyph): Check validity of `glyph_index'.
170
David Turner7bab6ae2006-11-13 11:25:06 +00001712006-11-13 David Turner <david@freetype.org>
172
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000173 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
174 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000175
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000176 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
177 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
178 when building the library to change the default LCD filter to be
179 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000180
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000181 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000182
David Turner8765c712006-11-10 16:49:42 +00001832006-11-10 David Turner <david@freetype.org>
184
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000185 * src/smooth/ftsmooth.c: API change for the LCD
186 filter. The FT_LcdFilter value is an enumeration describing which
187 filter to apply, with new values FT_LCD_FILTER_LIGHT and
188 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
189 algorithm which produces strong color fringes for everything
190 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000191
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000192 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
193 second parameter to an enum type.
194
195 * src/base/ftlcdfil.c (USE_LEGACY): Define.
196 (_ft_lcd_filter): Rename to...
197 (_ft_lcd_filter_fir): This.
198 Update parameters.
199 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
200 (FT_Library_Set_LcdFilter): Update parameters.
201 Handle new filter modes.
202
203 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
204 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
205 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
206 callback and update other fields.
207
208 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
209 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
210 Other minor improvements.
211
212 * src/autofit/aflatin.c: Various tiny improvements that drastically
213 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
214 (af_latin_hints_compute_edges): Fix typo.
215 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000216
David Turner4e9cc3c2006-11-09 16:31:52 +00002172006-11-09 David Turner <david@freetype.org>
218
Werner Lemberg49c77a82006-11-09 21:51:57 +0000219 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
220 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000221
Werner Lemberg5e430892006-11-07 09:35:03 +00002222006-11-07 Zhe Su <james.su@gmail.com>
223
224 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
225 also.
226
Werner Lemberg111b5ae2006-11-03 09:40:12 +00002272006-11-03 Werner Lemberg <wl@gnu.org>
228
229 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
230
David Turner40604742006-11-02 16:37:35 +00002312006-11-02 David Turner <david@freetype.org>
232
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000233 Add a few tweaks to better handle serif fonts.
234 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000235
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000236 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
237 segments that are less than 1.5 pixels high. This gets rid of
238 *many* corner cases with serifs.
239 (af_latin_align_linked_edge): Add logging message.
240 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
241 Add logging messages.
242 Handle AF_EDGE_FLAG flag specially.
243
244 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
245 _af_debug_disable_blue_hints, and _af_debug_hints variables.
246
247 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
248 Update external declarations.
249 (af_corner_orientation, af_corner_is_flat): Replaced by...
250
251 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
252 ft_corner_is_flat): These declarations.
253
254 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
255 Comment out. Replaced by...
256
257 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
258 These functions. Update all callers.
259 (FT_Add64) [!FT_LONG64]: Simplify.
260
261 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
262 (af_direction_compute): Add a missing FT_ABS call. This bug caused
263 production of garbage by missing lots of segments.
264
265 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
266
267 * src/autofit/afloader.c (af_loader_init, af_loader_done)
268 [AF_DEBUG]: Set _af_debug_hints.
269
270
271 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
272 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
273 and ft_corner_orientation.
274
275
276 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000277
Werner Lemberge88c5262006-10-24 05:46:26 +00002782006-10-24 Werner Lemberg <wl@gnu.org>
279
280 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
281
282 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
283 as argument.
284
David Turnera1861392006-10-23 16:00:59 +00002852006-10-23 Zhe Su <zsu@novell.com>
286
Werner Lemberg715e96e2006-10-24 05:28:45 +0000287 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
288 better deal with broken Asian fonts with strange glyphs, having
289 self-intersections and other peculiarities. The used algorithm is
290 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000291
David Turnere140f142006-10-23 08:56:57 +00002922006-10-23 David Turner <david@freetype.org>
293
Werner Lemberg715e96e2006-10-24 05:28:45 +0000294 Speed up the CFF font loader. With some large CFF fonts,
295 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000296
Werner Lemberg715e96e2006-10-24 05:28:45 +0000297 * src/cff/cffload.c (cff_get_offset): Removed.
298 (cff_new_index): Inline functionality of `cff_get_offset'.
299 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
300 (cff_charset_done): Call `cff_charset_free_cids'.
301 (cff_charset_load): Call `cff_charset_compute_cids'.
302 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
303
304 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
305 with FT_NEXT_XXX.
306
307
308 Speed up the Postscript hinter, with more than 100% speed increase
309 on my machine.
310
311 * src/pshinter/pshalgo.c (psh_corner_is_flat,
312 psh_corner_orientation): New functions.
313 (psh_glyph_compute_inflections): Merge loops for efficiency.
314 Use `psh_corner_orientation'.
315 (psh_glyph_init): Use `psh_corner_is_flat'.
316 (psh_hint_table_find_strong_point): Renamed to...
317 (psh_hint_table_find_strong_points): This.
318 Rewrite, adding argument to handle all points at once.
319 Update all callers.
320 (PSH_MAX_STRONG_INTERNAL): New macro.
321 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000322
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00003232006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
324
325 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000326 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000327
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00003282006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
329
330 * docs/INSTALL.CROSS: New document file for cross-building.
331
332 * builds/unix/configure.raw: Preliminary cross-building support.
333 Find native C compiler and pass it by CC_BUILD, and
334 find suffix for native executable and pass it by EXEEXT_BUILD.
335 Also suffix for target executable is passed by EXEEXT.
336
Werner Lembergb9e6d692006-10-15 08:58:40 +0000337 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
338 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000339 CC_BUILD and EXEEXT_BUILD.
340
Werner Lembergb9e6d692006-10-15 08:58:40 +0000341 * builds/exports.mk (APINAMES_EXE): Change the extension for
342 apinames from the suffix for target (E) to that for building host
343 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000344
Werner Lemberg82a07e92006-10-12 06:20:44 +00003452006-10-12 Werner Lemberg <wl@gnu.org>
346
347 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
348 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
349 which reference those files.
350
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00003512006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
352
Werner Lembergb9e6d692006-10-15 08:58:40 +0000353 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
354 embedded in freetype2.pc and freetype-config. Use it to record
355 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000356
357 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
358
359 * builds/unix/freetype-config.in: Ditto.
360
Werner Lemberg28e17d92006-10-11 17:27:47 +00003612006-10-11 Werner Lemberg <wl@gnu.org>
362
363 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
364 development.
365
Jens Claudius336d2292006-10-03 08:53:37 +00003662006-10-03 Jens Claudius <jens.claudius@yahoo.com>
367
368 * include/freetype/config/ftstdlib.h: Cast away volatileness from
369 argument to ft_setjmp.
370
371 * include/freetype/internal/ftvalid.h: Add comment that
372 ft_validator_run must not be used.
373
Werner Lemberg2863cfa2006-10-01 17:04:00 +00003742006-10-01 Werner Lemberg <wl@gnu.org>
375
376 * src/base/ftbase.c: Undo change from 2006-09-30.
377
378 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
379
3802006-09-30 David Turner <david@freetype.org>
381
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000382 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
383 s/unpatented_hinting/ignore_unpatented_hinter/.
384 Update all callers.
385
386 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
387 auto-hinting shall be used or not.
388
389 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000390
Werner Lemberg2863cfa2006-10-01 17:04:00 +00003912006-09-30 Werner Lemberg <wl@gnu.org>
392
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000393 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
394 in use).
395
396 * src/base/ftbase.c: Include `ftlcdfil.c'.
397
Werner Lemberg9b15ea32006-09-29 18:22:11 +00003982006-09-29 Werner Lemberg <wl@gnu.org>
399
400 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
401 overlapping segments. Bug reported by Stefan Koch.
402
David Turnerad830712006-09-27 16:20:59 +00004032006-09-28 David Turner <david@freetype.org>
404
Werner Lemberg2c002e12006-09-29 21:31:53 +0000405 Fix a bug in the automatic unpatented hinting support which prevents
406 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000407
Werner Lemberg2c002e12006-09-29 21:31:53 +0000408 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
409 s/force_autohint/unpatented_hinting/. Update all callers.
410
411 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
412
413 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000414
David Turner8a317cf2006-09-27 07:52:48 +00004152006-09-27 David Turner <david@freetype.org>
416
Werner Lemberg2c002e12006-09-29 21:31:53 +0000417 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000418
David Turner8a317cf2006-09-27 07:52:48 +0000419
David Turnere140f142006-10-23 08:56:57 +0000420 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000421 In a default build, the function `FT_Library_SetLcdFilter' returns
422 `FT_Err_Unimplemented_Feature'; you need to #define
423 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
424 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000425
Werner Lemberg2c002e12006-09-29 21:31:53 +0000426 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000427
Werner Lemberg2c002e12006-09-29 21:31:53 +0000428 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
429 typedef.
430 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
431 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000432
Werner Lemberg2c002e12006-09-29 21:31:53 +0000433 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
434 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000435
Werner Lemberg2c002e12006-09-29 21:31:53 +0000436 Handle subpixel rendering.
437 Simplify function.
438 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
439 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
440
441 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
442 pointing to <freetype/ftlcdfil.h>.
443
444 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
445 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
446
447 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000448
Werner Lemberge20df4a2006-09-27 06:29:21 +00004492006-09-26 David Bustin
450
451 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
452 correctly. Reported as Savannah bug #17843.
453
David Turner6f8c6222006-09-26 15:42:44 +00004542006-09-26 David Turner <david@freetype.org>
455
Werner Lemberg110246c2006-09-26 21:55:44 +0000456 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
457 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
458 horizontal and vertical hinting for the purpose of debugging the
459 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000460
Werner Lemberg110246c2006-09-26 21:55:44 +0000461 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
462 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000463
Werner Lemberg110246c2006-09-26 21:55:44 +0000464 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
465
466 * include/freetype/config/ftoption.h, devel/ftoption.h
467 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
468 we want to compile LCD-optimized rendering code la ClearType) or
469 not. The macro *must* be disabled in default builds of the library
470 for patent reasons.
471
472 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
473 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
474 isn't defined at compile time. This only changes the content of the
475 rendered glyph to match the one of normal gray-level rendering,
476 hence clients should not need to be modified.
477
478 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000479
Werner Lemberg745ff2c2006-09-19 05:48:02 +00004802006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
481
482 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
483 LWFN fails and both are available.
484
David Turnerf3050052006-09-11 12:00:32 +00004852006-09-11 David Turner <david@freetype.org>
486
Werner Lembergf9644552006-09-12 13:48:10 +0000487 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
488 report their English names through an Apple Roman
489 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000490
Werner Lembergf9644552006-09-12 13:48:10 +0000491 If the font uses another name entry with language_id == English, it
492 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000493
Werner Lembergf9644552006-09-12 13:48:10 +0000494 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
495 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000496
Werner Lemberg36d2eab2006-09-05 19:24:34 +00004972006-09-05 Werner Lemberg <wl@gnu.org>
498
499 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000500 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000501 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
502 `HAN NOM B.ttf').
503
504 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
505
David Turner772e55d2006-09-05 09:45:15 +00005062006-09-05 David Turner <david@freetype.org>
507
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000508 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000509
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000510 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
511 (TRaster): Remove `count_ex' and `count_ey'.
512 (gray_find_cell): Remove 2nd and 3rd argument.
513 (gray_alloc_cell): Merged with `gray_find_cell'.
514 (gray_record_cell): Simplify.
515 (gray_set_cell): Rewrite.
516 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
517 (gray_render_span): Don't use FT_MEM_SET for small values.
518 (gray_dump_cells) [DEBUG_GRAYS]: New function.
519 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
520 bitmap scanline.
521 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000522
David Turneraa557a92006-09-04 16:42:44 +00005232006-09-04 David Turner <david@freetype.org>
524
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000525 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
526 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000527
Werner Lemberg2d8629b2006-09-03 06:18:45 +00005282006-09-03 Werner Lemberg <wl@gnu.org>
529
530 * devel/ftoption.h: Synchronize with
531 include/freetype/config/ftoption.h.
532
533 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
534 variable declaration.
535 (gray_convert_glyph): Fix compiler warnings.
536
David Turner6d79f212006-09-01 14:09:35 +00005372006-09-01 David Turner <david@freetype.org>
538
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000539 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
540 to recognize a few fonts that require the automatic unpatented
541 loader.
David Turnerbd502952006-09-01 19:05:24 +0000542
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000543 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
544 rasterizer. The speed improvement is between 15% and 25%, depending
545 on the font data.
546
547 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
548 (TCell): Redefine.
549 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
550 (gray_init_cells): Updated.
551 (gray_find_cell, gray_alloc_cell): New functions.
552 (gray_record_cell): Rewritten to use `gray_find_cell' and
553 `gray_alloc_cell'.
554 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
555 QSORT_THRESHOLD):
556 Removed.
557 (gray_shell_sort, gray_quick_sort, gray_check_sort,
558 gray_dump_cells): Removed.
559 (gray_sweep): Rewritten.
560 (gray_convert_glyph): Rewrite code which used one of the sorting
561 functions.
562 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000563
Werner Lembergd898aed2006-08-29 09:50:34 +00005642006-08-29 Dr. Werner Fink <werner@suse.de>
565
566 * configure: Make it possible to handle configure options which
567 have strings containing spaces.
568
5692006-08-27 David Turner <david@freetype.org>
570
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000571 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
572 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
573 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
574
575 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
576 src/truetype/truetype.c, src/truetype/ttdriver.c,
577 src/truetype/ttgload.c, src/truetype/ttgload.h,
578 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
579 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
580 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
581
582 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
583 member `force_autohint'.
584
585 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
586
587 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
588 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000589
Jens Claudiusa787f452006-08-27 11:26:18 +00005902006-08-27 Jens Claudius <jens.claudius@yahoo.com>
591
592 Fix miscellaneous compiler warnings.
593
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000594 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
595 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000596
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000597 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
598 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
599 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000600
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000601 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
602 volatileness of argument to ft_longjmp. Spotted by Werner
603 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000604
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000605 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
606 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000607
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000608 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
609 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000610
Werner Lembergc4c35b72006-08-27 08:03:46 +00006112006-08-27 Werner Lemberg <wl@gnu.org>
612
613 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
614 Reported by Jens.
615
Jens Claudius088e44e2006-08-22 14:24:30 +00006162006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000617
Jens Claudius088e44e2006-08-22 14:24:30 +0000618 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000619 about addresses of volatile objects passed as function arguments as
620 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000621
Werner Lembergc4c35b72006-08-27 08:03:46 +0000622 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
623 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000624
625 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
626 argument `table' a pointer to a volatile object.
627
628 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
629 argument `table' a pointer to a volatile object.
630
Jens Claudius2652bd52006-08-18 17:20:37 +00006312006-08-18 Jens Claudius <jens.claudius@yahoo.com>
632
633 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
634 variable `_sfnt' as volatile since it must keep its value across
635 a call to ft_setjmp.
636 (gxv_validate): Same for local variables `memory' and `valid'.
637 (classic_kern_validate): Same for local variables `memory',
638 `ckern', and `valid'.
639
640 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
641 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
642 `jstf', and 'valid'.
643
644 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
645 local variable `cmap'.
646
David Turner9fbfc6a2006-08-16 09:11:31 +00006472006-08-16 David Turner <david@freetype.org>
648
Werner Lemberg12342992006-08-19 11:18:09 +0000649 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
650 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +0000651
Werner Lemberg12342992006-08-19 11:18:09 +0000652 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
653 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +0000654
David Turner33f5f242006-08-16 16:50:55 +0000655
Werner Lemberg12342992006-08-19 11:18:09 +0000656 Improvements to native TrueType hinting. This is a first try,
657 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
658
659 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
660 `extra_points2'.
661
662 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
663 `orus'.
664
665 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
666 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
667 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
668 handle `extra_points2'.
669
670 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
671 Remove compiler warning.
672 (cur_to_arg): Remove macro.
673 (TT_Hint_Glyph): Updated.
674 (TT_Process_Simple_Glyph): Handle `orus'.
675
676 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
677 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
678 (LOC_Ins_IUP): Renamed to...
679 (IUP_WorkerRec): This.
680 Add `orus' member.
681 (Shift): Renamed to...
682 (_iup_worker_shift): This.
683 Updated.
684 (Interp): Renamed to...
685 (_iup_worker_interpolate): This.
686 Updated to handle `orus'.
687 (Ins_IUP): Updated.
688
689 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
690 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +0000691
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00006922006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
693
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000694 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +0000695 build ftvalid in ft2demos. This has been inadvertedly changed
696 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000697
6982006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
699
Werner Lemberg12342992006-08-19 11:18:09 +0000700 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
701 Jens:
702 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000703
Werner Lemberg12342992006-08-19 11:18:09 +0000704 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
705 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000706
707 * freetype2/src/gxvalid/gxvmod.c: Ditto.
708
Jens Claudius9950adc2006-08-13 12:14:36 +00007092006-08-13 Jens Claudius <jens.claudius@yahoo.com>
710
Werner Lemberg12342992006-08-19 11:18:09 +0000711 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
712 T1_TOKEN_TYPE_KEY.
713 (T1_FieldRec): Add `dict'.
714 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
715 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
716 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +0000717
Werner Lemberg12342992006-08-19 11:18:09 +0000718 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
719 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000720
721 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
722
723 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +0000724 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
725 not T1_TOKEN_TYPE_ANY.
726 (ps_parser_load_field): Make sure a token that should be a string or
727 name is really a string or name.
728 Avoid memory leak if a keyword has been already encountered and its
729 value is overwritten.
730 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
731 T1_FIELD_XXX.
732 (parse_dict): Ignore keywords that occur in the wrong dictionary
733 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +0000734
Werner Lemberg12342992006-08-19 11:18:09 +0000735 * freetype2/src/type1/t1tokens.h: Adjust invocations of
736 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000737
Werner Lemberg12342992006-08-19 11:18:09 +0000738 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
739 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000740
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00007412006-07-18 Jens Claudius <jens.claudius@yahoo.com>
742
743 Move creation of field `buildchar' of T1_DecoderRec out of
744 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
745 of it.
746
747 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
748 and `T1_Compute_Max_Advance'.
749
750 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
751 Remove field `face', add `len_buildchar'.
752
753 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
754 field `buildchar'.
755
756 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
757 finisher for T1_Decoder.
758 (cid_slot_load_glyph): Do not ignore failure when initializing the
759 T1_Decoder.
760
761 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
762 Updated.
763 (t1_decoder_init): Remove initialization of fields `buildchar' and
764 `len_buildchar'.
765 (t1_decoder_done): Remove deallocation of field `buildchar'.
766
767 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
768 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
769 T1_Decoder.
770 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
771 `len_buildchar'; make sure to call finisher for T1_Decoder even in
772 case of error.
773
774 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
775 `buildchar' of T1_FaceRec.
776
777 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
778 `buildchar' of T1_FaceRec.
779
Werner Lemberg1a380e02006-07-14 18:28:08 +00007802006-07-14 Jens Claudius <jens.claudius@yahoo.com>
781
782 * freetype2/include/freetype/internal/psaux.h: New macros
783 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
784 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
785 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
786 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
787 (T1_DecoderRec): New fields `buildchar' and `face'.
788 (IS_PS_TOKEN): New macro.
789
790 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
791 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
792
793 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
794 `default_design_vector' and `num_default_design_vector'.
795
796 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
797 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
798 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
799
800 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
801 `token' argument to be NULL if we want only to count the number of
802 tokens.
803 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
804 want to skip the array.
805 (ps_tofixedarray): Allow `values' argument to be NULL if we just
806 want to skip the array.
807
808 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
809 support for (partially commented out) othersubrs 19-25, 27, and 28.
810 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
811 (t1_decoder_done): Release new field `buildchar'.
812
813 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
814 functions.
815 (t1_keywords): Register them.
816 (t1_allocate_blend): Updated.
817 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
818 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
819 (parse_dict): Remove `keyword_flags' argument.
820 Use new macro IS_PS_TOKEN.
821 Changed function so that later PostScript definitions override
822 earlier ones.
823 (t1_init_loader): Initialize new field `keywords_encountered'.
824 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
825 `len_buildchar'.
826 Remove `keywords_flags'.
827
828 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
829 `keywords_encountered'.
830 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
831
832 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
833 New entries for parsing /NDV, /CDV, and /DesignVector.
834
Werner Lemberg4af3c4d2006-07-08 21:31:24 +00008352006-07-07 Werner Lemberg <wl@gnu.org>
836
837 Add many checks to protect against malformed PCF files.
838
839 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
840 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
841
842 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
843 data and check that tables don't overlap (using a simple
844 bubblesort).
845 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
846 New macros which give the size of data structures in the data
847 stream.
848 (pcf_get_properties): Use rough estimates to get array size limits.
849 Assign `face->nprops' and `face->properties' earlier so that a call
850 to PCF_Face_Done can do the clean-up in case of error.
851 Protect against invalid string offsets.
852 (pcf_get_metrics): Clean up code.
853 Adjust tracing message levels.
854 Use rough estimate to get array size limit.
855 (pcf_get_bitmaps): Clean up code.
856 Adjust tracing message levels.
857 Use rough estimates to get offset limits.
858 (pcf_get_encodings): Adjust tracing message level.
859 (pcf_get_accel): Clean up code.
860
Werner Lemberg8eb05252006-06-27 06:20:01 +00008612006-06-26 Werner Lemberg <wl@gnu.org>
862
863 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
864 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
865
Werner Lemberg24703f82006-06-26 19:12:51 +00008662006-06-26 Jens Claudius <jens.claudius@yahoo.com>
867
868 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
869 (t1_decoder_parse_charstrings): Operator with
870 opcode 15 pops its two arguments.
871 Handle the case where the pops of an othersubr may be part of a
872 subroutine.
873 Handle unknown othersubrs gracefully: count their operands and let
874 the following pop operators push the operands as the results onto
875 the Type1 stack.
876 Improve handling of setcurrentpoint opcode.
877
Werner Lembergc011f4c2006-06-26 09:40:00 +00008782006-06-25 Jens Claudius <jens.claudius@yahoo.com>
879
880 The Type 1 parser now skips over top-level procedures as required
881 for a `Simplified Parser'. This makes the parser more robust as it
882 doesn't poke around in PostScript code. Additionally, it makes the
883 FontDirectory hackery in src/type1/t1load.c unnecessary.
884
885 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
886 (skip_literal_string): Add FT_Error as return value.
887 Handle escapes better.
888 (skip_string): Add FT_Error as return value.
889 Don't set `parser->error' but return error code directly.
890 (skip_procedure): New function.
891 (ps_parser_skip_PS_token): Handle procedures.
892 Update code.
893 (ps_parser_to_token): Update code.
894 (ps_parser_load_field_table): Handle bbox entries also.
895
896 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
897 Add commented-out code for synthetic fonts.
898
Werner Lemberga2da05c2006-06-25 06:27:27 +00008992006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
900
901 Fix two hinting bugs as reported in
902 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
903
904 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
905 `first_point' member.
906
907 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
908 `first_point'.
909 (TT_Process_Composite_Glyph): Always untouch points.
910
911 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
912 `first_point' and `last_point' in case of composite glyphs.
913 (Ins_IUP): Fix computation of `end_point'.
914
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00009152006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
916
Werner Lembergef3d2c22006-06-25 06:07:14 +0000917 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
918 Mac. The original patch was written by David Sachitano and Lawrence
919 Coopet, and modified by Sean McBride for MPW compatibility. Only
920 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +0000921
Werner Lembergef3d2c22006-06-25 06:07:14 +0000922 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
923 Mac OS X platforms.
924 (OS_INLINE): Undefine before definition.
925 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
926 FontAssociation table in FOND resource.
927 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
928 and fontSize at each entry of FontAssociation table in FOND
929 resource.
930 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
931 ffStylOff of FamilyRecord header of FOND resource, the header,
932 fontSize, fontID at each entry of FontAssociation table, and
933 StyleMapping table.
934 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +0000935
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00009362006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
937
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000938 Public API of TrueTypeGX, OpenType, and classic kern table validator
939 should return `FT_Err_Unimplemented_Feature' if validation service
940 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +0000941 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000942 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
943
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000944 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
945 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
946 unavailable.
947 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
948 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000949
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000950 * src/base/ftotval.c (FT_OpenType_Validate): Return
951 FT_Err_Unimplemented_Feature if OpenType validation service is
952 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000953
Werner Lembergb10e45a2006-06-08 07:32:56 +00009542006-06-08 Werner Lemberg <wl@gnu.org>
955
956 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
957 errors.
958
David Turner5f1f7502006-06-07 05:11:50 +00009592006-06-07 David Turner <david@freetype.org>
960
Werner Lemberg7d48cb02006-06-08 06:00:08 +0000961 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
962 (T1_Read_Metrics): Fix memory leak which happened when the metrics
963 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +0000964
David Turner457b4a82006-06-06 08:14:14 +00009652006-06-06 David Turner <david@freetype.org>
966
Werner Lemberg4836f952006-06-06 12:54:08 +0000967 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +0000968
Werner Lemberg4836f952006-06-06 12:54:08 +0000969 We change `ps_unicodes_init' so that it also takes a
970 `free_glyph_name' callback to release the glyph names returned by
971 `get_glyph_name'
972
973 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
974 Renamed to ...
975 (PS_GetGlyphNameFunc): This.
976 (PS_FreeGlyphNameFunc): New typedef.
977 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
978
979 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
980 argument.
981 (cff_sid_free_glyph_name): New function.
982 (cff_cmap_unicode_init): Updated.
983
984 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
985
986 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
987 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +0000988
989
David Turner09717352006-06-04 14:33:08 +00009902006-06-04 David Turner <david@freetype.org>
991
Werner Lembergd724f202006-06-04 15:17:41 +0000992 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
993 `item_size == 0' as well -- though this sounds weird, it can
994 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +0000995
Werner Lembergd724f202006-06-04 15:17:41 +0000996 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
997 of `face->num_glyphs' which missed the last glyph, due to
998 the offset-by-1 computation, since the PFR format doesn't
999 guarantee that glyph index 0 corresponds to the `missing
1000 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001001
Werner Lemberg33779662006-05-26 06:30:05 +000010022006-05-25 Werner Lemberg <wl@gnu.org>
1003
1004 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1005 `-no-undefined'. Reported by Christian Biesinger.
1006
Werner Lemberg24773d62006-05-20 08:53:13 +000010072006-05-19 Brian Weed <bw@imaginengine.com>
1008
1009 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1010 have debug information, and debug libraries use `C7 compatible'
1011 debug info.
1012
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000010132006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1014
Werner Lemberga6523a62006-05-20 08:47:01 +00001015 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001016 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001017
Werner Lemberga6523a62006-05-20 08:47:01 +00001018 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1019 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001020
1021 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001022 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001023
10242006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1025
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001026 * build/unix/configure.raw: Add a fallback to disable Carbon
1027 dependency, if configured with no options on Mac OS X.
1028
10292006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1030
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001031 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001032 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001033 the second part of Savannah bug #16590.
1034
Werner Lemberg545c4e52006-05-17 22:55:04 +000010352006-05-18 Werner Lemberg <wl@gnu.org>
1036
1037 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1038 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1039
David Turnerdc3ff312006-05-17 12:59:35 +000010402006-05-17 David Turner <david@freetype.org>
1041
Werner Lemberg545c4e52006-05-17 22:55:04 +00001042 This is a major patch used to drastically improve the performance of
1043 loading glyphs. This both speeds up loading the glyph vectors
1044 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001045
Werner Lemberg545c4e52006-05-17 22:55:04 +00001046 We now use inline assembler code with GCC to implement `FT_MulFix',
1047 which is probably the most important function related to the
1048 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001049
Werner Lemberg545c4e52006-05-17 22:55:04 +00001050 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001051
1052
Werner Lemberg545c4e52006-05-17 22:55:04 +00001053 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1054 `cursor' and `limit'.
1055
1056 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1057 New functions.
1058 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1059 [TEST]: Remove.
1060
1061 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1062 code.
1063
1064 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1065 `FT_ZERO'
1066 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1067 (af_glyph_hints_reload: Rewrite recognition of weak points.
1068
1069 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1070 constant values out of the loops.
1071
1072 * src/autofit/aftypes.h: Updated.
1073
1074 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1075
1076 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1077 product to get orientation.
1078
1079 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1080 (FT_Stream_OpenGzip): Use it to handle small files directly in
1081 memory.
1082
1083 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1084 Improve performance.
1085
1086 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1087 `limit'.
1088
1089 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1090 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1091 exceedingly large values of number of contours. Speed up by
1092 reducing the number of loops.
1093
1094 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1095
1096
1097 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1098 used to detect rogue clients from 4 to 16. This is to prevent some
1099 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1100 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001101
Werner Lembergde2d90a2006-05-17 08:54:30 +000011022007-05-17 Werner Lemberg <wl@gnu.org>
1103
1104 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001105 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001106
11072006-05-16 Werner Lemberg <wl@gnu.org>
1108
1109 * docs/PROBLEMS: Updated icl issues.
1110
Werner Lemberg6756dc12006-05-12 08:00:13 +000011112006-05-12 Werner Lemberg <wl@gnu.org>
1112
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001113
1114 * Version 2.2.1 released.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001115 =========================
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001116
1117
1118 Tag sources with `VER-2-2-1'.
1119
11202006-05-12 Werner Lemberg <wl@gnu.org>
1121
Werner Lemberg6756dc12006-05-12 08:00:13 +00001122 * src/tools/docmaker/sources.py (re_source_keywords): Add word
1123 boundary markers.
1124 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
1125 (but not at the beginning or end).
Werner Lemberge12a4712006-05-12 14:20:43 +00001126 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Werner Lemberg6e467a62006-05-12 15:05:45 +00001127 (block_footer): Split into...
1128 (block_footer_start, block_footer_middle, block_footer_end): This to
1129 add navigation buttons.
1130 (HtmlFormatter::block_exit): Updated.
Werner Lemberg6756dc12006-05-12 08:00:13 +00001131
1132 * include/freetype/*: Many minor documentation improvements (adding
1133 links, spelling errors, etc.).
1134
Werner Lembergfd74ec62006-05-12 04:00:44 +000011352006-05-11 Werner Lemberg <wl@gnu.org>
1136
1137 * README: Minor updates.
1138
1139 * include/freetype/*: s/scale/scaling value/ where appropriate.
1140 Many other minor documentation improvements.
1141
1142 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
1143 trailing punctuation.
1144 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
1145 warning message for undefined cross references.
1146 Update handling of re_italic and re_bold.
1147
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +000011482006-05-11 Masatake YAMATO <jet@gyve.org>
David Turner281679d2006-05-17 13:34:21 +00001149
1150 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +00001151 read system call returns -1.
1152 Remove a redundant parenthesis.
1153
Werner Lembergb80d85f2006-05-10 04:47:35 +000011542006-05-10 Werner Lemberg <wl@gnu.org>
1155
1156 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
1157 given an empty, un-mmap()able file. Reported and suggested fix in
1158 Savannah bug #16555.
1159
Werner Lemberge0d15592006-05-10 13:44:47 +00001160 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
1161 directory to suppress generation of .pyc files. According to the
1162 Python docs there isn't a more elegant solution (currently).
1163
1164 * builds/toplevel.mk (dist): New target which builds .tar.gz,
1165 .tar.bz2, and .zip files. Note that the version number is still
1166 hard-coded.
1167 (do-dist): Sub-target of `dist'.
1168 (CONFIG_GUESS, CONFIG_SUB): New variables.
1169 (.PHONY): Updated.
1170
Werner Lemberga127ca42006-05-09 13:41:50 +000011712006-05-09 Rajeev Pahuja <rpahuja@esri.com>
1172
1173 * builds/win32/visualc/freetype.sln,
1174 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
1175 VS.NET 2003
1176 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
1177
1178 * builds/win32/visualc/index.html: Updated.
1179
Werner Lemberg4df5b262006-05-08 07:10:29 +000011802006-05-07 Werner Lemberg <wl@gnu.org>
1181
1182 Put version information into the configure script. Reported by Paul
1183 Watson <pwatson@redlinepy.com>.
1184
1185 * builds/unix/configure.ac: Renamed to...
1186 * builds/unix/configure.raw: This which now serves (with appropriate
1187 modifications) as a template for configure.ac.
1188
1189 * version.sed: New script.
1190
1191 * autogen.sh: Generate configure.ac from configure.raw, using
1192 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
1193
Werner Lemberg1639c792006-05-06 16:44:58 +000011942006-05-06 Werner Lemberg <wl@gnu.org>
1195
1196 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
1197
1198 * builds/unix/configure.ac (version_info): Set to 9:10:3.
1199
1200 * builds/win32/visualc/index.html,
1201 builds/win32/visualc/freetype.dsp,
1202 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
1203 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
1204 Minor updates.
1205
1206 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
1207 Updated.
1208
1209 * builds/unix/install-sh: Updated from `texinfo' CVS module at
Werner Lemberg4836f952006-06-06 12:54:08 +00001210 savannah.gnu.org.
Werner Lemberg1639c792006-05-06 16:44:58 +00001211
1212 * devel/ftoption.h: Synchronize with
1213 include/freetype/config/ftoption.h.
1214
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +000012152006-05-04 Werner Lemberg <wl@gnu.org>
1216
1217 * src/lzw/ftlzw2.c: Renamed to...
1218 * src/lzw/ftlzw.c: This.
1219
1220 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
1221
1222 * builds/mac/FreeType.m68k_cfm.make.txt,
1223 builds/mac/FreeType.m68k_far.make.txt,
1224 builds/mac/FreeType.ppc_carbon.make.txt,
1225 builds/mac/FreeType.ppc_classic.make.txt: Updated.
1226
David Turner679a2522006-05-03 09:40:33 +000012272006-05-03 David Turner <david@freetype.org>
1228
Werner Lemberga94746c2006-05-03 20:39:55 +00001229 Allow compilation again with C++ compilers.
1230
1231 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
1232 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
1233 which exist in two variants (for C and C++).
1234 Update callers accordingly.
David Turner679a2522006-05-03 09:40:33 +00001235
Werner Lemberg58eed042006-05-02 22:26:09 +000012362006-05-03 Werner Lemberg <wl@gnu.org>
1237
1238 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
1239
Werner Lembergc6afa122006-05-02 22:22:16 +000012402006-05-02 Werner Lemberg <wl@gnu.org>
1241
1242 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
1243 (FT_ALLOC): Remove redundant redefinition.
1244
1245 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
1246 `-Wstrict-prototypes'.
1247
1248 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
1249
Werner Lemberg58eed042006-05-02 22:26:09 +00001250 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
1251 Remove `extern'.
Werner Lemberg94204892006-05-02 22:24:06 +00001252
David Turner264f3072006-05-02 06:34:27 +000012532006-05-02 David Turner <david@freetype.org>
1254
Werner Lembergc6afa122006-05-02 22:22:16 +00001255 Update the memory management functions and macros to safely deal
1256 with array size buffer overflows. This corresponds to attemps to
1257 allocate arrays that are too large. For an example, consider the
1258 following code:
David Turner264f3072006-05-02 06:34:27 +00001259
Werner Lembergc6afa122006-05-02 22:22:16 +00001260 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
1261 count ); for ( nn = 0; nn < count; nn++ )
1262 array[nn] = read_item_from_file();
David Turner264f3072006-05-02 06:34:27 +00001263
Werner Lembergc6afa122006-05-02 22:22:16 +00001264 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
1265 multiplication overflows, and the array allocated os smaller than
1266 the data read from the file. In this case, the heap will be
1267 trashed, and this can be used as a denial-of-service attack, or make
1268 the engine crash later.
David Turner264f3072006-05-02 06:34:27 +00001269
Werner Lembergc6afa122006-05-02 22:22:16 +00001270 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
1271 count is no larger than `FT_INT_MAX/item_size', otherwise a new
1272 error code `FT_Err_Array_Too_Large' will be returned.
David Turner264f3072006-05-02 06:34:27 +00001273
Werner Lembergc6afa122006-05-02 22:22:16 +00001274 Note that the memory debugger now works again when FT_DEBUG_MEMORY
1275 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
1276 code is now the default.
David Turner264f3072006-05-02 06:34:27 +00001277
David Turner9ca78252006-05-02 09:00:29 +00001278
Werner Lembergc6afa122006-05-02 22:22:16 +00001279 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
1280 Don't use `extern'.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001281
Werner Lembergc6afa122006-05-02 22:22:16 +00001282 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
1283 code.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001284
Werner Lembergc6afa122006-05-02 22:22:16 +00001285 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
1286 [FT_DEBUG_MEMORY]: New macro.
1287 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
1288 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
1289 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1290 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
1291 FT_MEM_FREE): Redefine.
1292 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
1293 FT_MEM_QRENEW_ARRAY): Redefine.
1294 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
1295 FT_MEM_QREALLOC_MULT): New macros. Update callers where
1296 appropriate.
1297 (FT_MEM_SET_ERROR): Slightly redefine.
1298
1299
1300 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
1301 [FT_DEBUG_MEMORY]: New global variables, replacing...
1302 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
1303 `line_no'. Update all callers.
1304 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
1305 overflow.
1306 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
1307 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1308
1309 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
1310 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
1311 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
1312 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
1313
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +00001314
1315 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
1316 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
1317 place where the frames were entered, extracted, exited or released
1318 in the memory debugger.
1319
1320 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
1321 Call ft_mem_free.
1322 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
1323 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
1324
Werner Lembergc6afa122006-05-02 22:22:16 +000013252006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1326
1327 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
1328 initialization, remove extra cast to copy to pfb_lenpos. This fixes
1329 parsing of PFB fonts with MacOS resource fork (bug introduced
1330 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001331
Werner Lemberg8fe65392006-04-29 07:31:16 +000013322006-04-29 Werner Lemberg <wl@gnu.org>
1333
1334 Further C library abstraction. Based on a patch from
1335 msn2@bidyut.com.
1336
1337 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
1338 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
1339 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
1340 C library functions. Update all users accordingly (and catch some
1341 other places where the C library function was used instead of the
1342 wrapper functions).
1343
1344 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
1345 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
1346 include malloc.h.
1347
Werner Lemberg06fceb32006-04-29 07:53:40 +00001348
1349 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
1350 and forthcoming versions.
1351
Werner Lemberg50ef72b2006-04-29 07:02:36 +000013522006-04-28 Werner Lemberg <wl@gnu.org>
1353
1354 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
1355 obsolete.
1356
Werner Lemberg12cceaa2006-04-27 05:02:35 +000013572006-04-27 yi luo <luoyi.ly@gmail.com>
1358
1359 * builds/win32/visualc/freetype.vcproj: Updated.
1360
David Turner3b47dd62006-04-26 19:34:24 +000013612006-04-26 David Turner <david@freetype.org>
1362
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001363
1364 * Version 2.2 released.
Werner Lembergc6afa122006-05-02 22:22:16 +00001365 =======================
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001366
1367
1368 Tag sources with `VER-2-2-0'.
David Turner3b47dd62006-04-26 19:34:24 +00001369
Werner Lemberg564b4432006-04-26 15:02:52 +000013702006-04-26 Werner Lemberg <wl@gnu.org>
1371
1372 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001373 FT_PtrDiff for `delta'. Reported by Céline PILLET
Werner Lemberg564b4432006-04-26 15:02:52 +00001374 <Celine.Pillet@Tagginfo.com>.
1375
David Turner8e438ea2006-04-21 08:35:11 +000013762006-04-21 David Turner <david@freetype.org>
1377
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001378 * include/freetype/ftincrem.h: Documentation updates.
1379 (FT_Incremental_Interface): New typedef.
David Turner8e438ea2006-04-21 08:35:11 +00001380
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001381 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
1382 Documentation updates.
1383
1384 * include/freetype/freetype.h: Documentation update.
1385 (FT_HAS_FAST_GLYPHS): Always set to 0.
1386
1387 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
1388 Take an FT_Library argument instead of FT_Memory.
1389
1390 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
David Turner7aa20102006-04-21 08:38:35 +00001391
David Turner65c7c772006-04-13 07:51:58 +000013922006-04-13 David Turner <david@freetype.org>
1393
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001394 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
1395 superfluous code in the auto-fitter's loader.
David Turner65c7c772006-04-13 07:51:58 +00001396
Werner Lemberg4e03fe72006-04-29 06:20:09 +000013972006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner7d043222006-04-05 07:17:12 +00001398
1399 * builds/amiga/makefile, builds/amiga/makefile.os4,
1400 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
1401
Werner Lemberg7f18de62006-04-03 16:47:34 +000014022006-04-03 luoyi <luoyi.ly@gmail.com>
1403
1404 * builds/compiler/intelc.mk (TE): New variable.
1405 (ANSIFLAGS): Updated.
1406
Werner Lembergfd7456c2006-04-03 15:46:48 +000014072006-04-03 Werner Lemberg <wl@gnu.org>
1408
1409 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
1410 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
1411 (.PHONY): Updated.
1412
1413 * configure.ac: Minor fixes to improve --help output.
1414
Werner Lemberg764b2512006-04-03 16:42:39 +00001415
1416 * docs/PROBLEMS: New file.
1417
Werner Lemberg40917862006-04-01 18:49:07 +000014182006-04-01 David Turner <david@freetype.org>
David Turner0f15e1c2006-04-01 16:11:53 +00001419
Werner Lemberg40917862006-04-01 18:49:07 +00001420 * docs/CHANGES: Updated.
David Turnercf603712006-04-01 16:22:06 +00001421
Werner Lemberg40917862006-04-01 18:49:07 +00001422 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
1423 Update documentation comments.
David Turner0f15e1c2006-04-01 16:11:53 +00001424
Werner Lemberg6e9df682006-04-01 05:22:07 +000014252006-04-01 Werner Lemberg <wl@gnu.org>
1426
1427 * builds/unix/install.mk (uninstall): Don't handle `cache'
1428 directory which no longer exists.
1429
Werner Lemberg4e03fe72006-04-29 06:20:09 +000014302006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001431
Werner Lemberg6e9df682006-04-01 05:22:07 +00001432 * src/psaux/psconv.c: Changed some variables which are expected to
1433 hold negative values from `char' to `FT_Char' to allow building with
1434 a compiler where `char' is unsigned by default.
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001435
David Turner42137bc2006-03-27 20:10:26 +000014362006-03-27 David Turner <david@freetype.org>
1437
Werner Lembergfa3651e2006-03-28 05:06:50 +00001438 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
1439 causes some programs to go into an infinite loop when dealing with
1440 fonts that don't have a properly sorted kerning sub-table.
David Turner42137bc2006-03-27 20:10:26 +00001441
Werner Lemberg26170df2006-03-26 07:19:07 +000014422006-03-26 Werner Lemberg <wl@gnu.org>
1443
1444 * src/bdf/bdflib.c (ERRMSG4): New macro.
1445 (_bdf_parse_glyphs): Handle invalid BBX values.
1446
1447 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
1448 macro.
1449
Werner Lemberg4db32ec2006-03-24 11:54:53 +000014502006-03-23 Werner Lemberg <wl@gnu.org>
1451
1452 * docs/CHANGES: Updated.
1453
Werner Lembergd6e24982006-03-24 18:31:47 +00001454
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001455 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
1456 padding between table elements.
Werner Lemberge0dd18f2006-03-24 12:14:48 +00001457 (html_header_1): The `DOCTYPE' comment must be in uppercase.
Werner Lembergd6e24982006-03-24 18:31:47 +00001458 (make_html_para): Convert `...' quotations into real left and
1459 right single quotes.
1460 Use `para_header' and `para_footer'.
1461
1462 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
1463 also.
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001464
David Turner2ce92032006-03-23 20:58:20 +000014652006-03-23 David Turner <david@freetype.org>
1466
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001467 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
Werner Lembergc6afa122006-05-02 22:22:16 +00001468 we do not expose the FT_SubGlyphRec structure.
David Turner2ce92032006-03-23 20:58:20 +00001469
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001470 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
1471 to...
1472 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
1473 (FT_Get_SybGlyph_Info): New declaration.
1474
1475 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
1476
1477
1478 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
Werner Lembergc6afa122006-05-02 22:22:16 +00001479 rsb_delta correctly in edge cases.
David Turner2ce92032006-03-23 20:58:20 +00001480
Werner Lemberg3867d2f2006-03-22 08:03:06 +000014812006-03-22 Werner Lemberg <wl@gnu.org>
1482
Werner Lemberg6c5b6172006-03-22 15:30:41 +00001483 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
1484 [!FTC_INLINE]: Compile conditionally.
1485 * src/cache/ftccache.h: Updated.
1486
1487 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
1488 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
1489 s/FT_EXPORT/FT_LOCAL/.
1490 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
1491 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
1492 s/FT_EXPORT/FT_LOCAL/.
1493 * src/cache/ftcglyph.h: Updated.
1494
1495 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
1496 s/FT_EXPORT/FT_LOCAL/.
1497 (FTC_INode_Weight): Commented out.
1498 * src/cache/ftcimage.h: Updated.
1499
1500 * src/cache/ftmanag.c (FTC_Manager_Compress,
1501 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
1502 s/FT_EXPORT/FT_LOCAL/.
1503 * src/cache/ftmanag.h: Updated.
1504
1505 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
1506 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
1507 (FTC_SNode_Weight): Commented out.
1508 * src/cache/ftcsbits.h: Updated.
1509
15102006-03-22 Werner Lemberg <wl@gnu.org>
1511
Werner Lemberg3867d2f2006-03-22 08:03:06 +00001512 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
1513 Remove, unused.
1514
1515 * src/cache/ftccmap.h: Remove, unused.
1516
1517 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
1518
Werner Lemberg5556dd22006-03-21 21:36:33 +000015192006-03-21 Zhe Su <james.su@gmail.com>
1520
1521 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
1522 algorithm.
1523
Werner Lemberg26377002006-03-21 18:41:40 +000015242006-03-21 Werner Lemberg <wl@gnu.org>
1525
1526 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
1527
1528 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
1529
1530 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
1531 to `FT_UInt'.
1532 Check range of `glyph_index'.
1533 * src/cff/cffgload.h: Updated.
1534
Werner Lemberg8439fe82006-03-21 21:04:33 +00001535
Werner Lemberg95f206b2006-03-21 20:47:28 +00001536 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
1537 correctly.
1538
Werner Lemberg8439fe82006-03-21 21:04:33 +00001539
1540 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
1541 README: s/2.1.10/2.2/.
1542
Werner Lemberg26377002006-03-21 18:41:40 +000015432006-03-21 David Turner <david@freetype.org>
David Turner24b9e872006-03-21 16:30:04 +00001544
Werner Lemberga62007f2006-03-21 17:41:40 +00001545 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
1546 that crashes the auto-hinter (introduced by previous patch).
David Turner24b9e872006-03-21 16:30:04 +00001547
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000015482006-03-20 Werner Lemberg <wl@gnu.org>
David Turnerdad2a2d2006-03-20 11:48:13 +00001549
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001550 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
1551 (FREETYPE_H): Updated.
David Turnere091ce32006-03-20 16:01:28 +00001552
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001553 * src/cache/rules.mk (CACHE_H_DIR): Remove.
1554 (CACHE_DRV_H): Updated.
David Turnerda95af62006-03-20 13:32:33 +00001555
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000015562006-03-20 David Turner <david@freetype.org>
David Turnerda95af62006-03-20 13:32:33 +00001557
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001558 * include/freetype/cache/ftccache.h,
1559 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
1560 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
1561 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
1562 Move to...
David Turner505667c2006-03-20 12:13:14 +00001563
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001564 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
1565 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
1566 src/cache/ftcmru.h: This new location.
1567 Update declarations according to the changes in the corresponding
1568 source files.
David Turner256de4b2006-03-20 12:10:24 +00001569
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001570 Note that these files are not used by FreeType clients; all public
1571 APIs of the cache module have been already moved to
1572 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
1573 macros resolve to it.
David Turner256de4b2006-03-20 12:10:24 +00001574
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001575 Reason for the move is to allow modifications of the internals
1576 without interferences with rogue clients. Note that there are no
1577 known clients that access the cache internals at the moment.
David Turner256de4b2006-03-20 12:10:24 +00001578
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001579 * builds/unix/install.mk (install): Don't install headers from
1580 $(CACHE_H).
1581 Remove `freetype/cache' from the target directory.
David Turnerdad2a2d2006-03-20 11:48:13 +00001582
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001583 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
1584 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
1585 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
1586 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
1587 FT_CACHE_H.
David Turnerdad2a2d2006-03-20 11:48:13 +00001588
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001589 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
1590 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
1591 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
1592 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
1593 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
1594 but include the headers directly (which are now in `src/cache').
David Turnerdad2a2d2006-03-20 11:48:13 +00001595
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001596 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1597 macros but include the headers directly.
1598 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
1599 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
1600
1601 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1602 macros but include the headers directly.
1603 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
1604 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
1605 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
1606 Declare as FT_LOCAL_DEF.
1607 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
1608 conditionally.
1609 Declare as FT_LOCAL_DEF.
1610
1611
1612 * builds/win32/visualc/freetype.dsp: Update project file, add
1613 missing base source files (ftstroke.c, ftxf86.c, etc.).
1614
1615
1616 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
1617 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
1618 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
1619 src/type1/t1objs.c: Remove compiler warnings when building with
1620 Visual C++ 6 and /W4.
1621
1622 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1623 hinting for italic/oblique fonts.
1624
1625
1626
1627 * src/truetype/ttpload.c, src/truetype/ttpload.h
1628 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
1629
16302006-03-06 David Turner <david@freetype.org>
David Turner65b96aa2006-03-07 00:38:24 +00001631
Werner Lemberge6a8fca2006-03-07 23:53:55 +00001632 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
1633 Mozilla/FireFox print preview in Ubuntu Hoary.
David Turner65b96aa2006-03-07 00:38:24 +00001634
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +000016352006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1636
Wu, Chia-I (吳佳一)9f5d3de2006-02-28 13:21:50 +00001637 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
1638 return error when size == 0.
1639
16402006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1641
Werner Lemberge88d24c2006-02-28 21:49:54 +00001642 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
1643 order so that type42 module is removed before truetype module. This
1644 avoids double free in some occasions.
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +00001645
Werner Lembergc6afa122006-05-02 22:22:16 +000016462006-02-28 David Turner <david@freetype.org>
David Turnere9a47192006-02-28 09:26:58 +00001647
Werner Lemberge88d24c2006-02-28 21:49:54 +00001648 * Release candidate VER-2-2-0-RC4.
1649 ----------------------------------
David Turnere9a47192006-02-28 09:26:58 +00001650
Werner Lemberge88d24c2006-02-28 21:49:54 +00001651 * docs/CHANGES: Documentation updates.
David Turnere9a47192006-02-28 09:26:58 +00001652
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +000016532006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1654
Werner Lemberge88d24c2006-02-28 21:49:54 +00001655 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
1656 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
1657 built.
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +00001658
Werner Lembergc07ee522006-02-27 18:13:12 +000016592006-02-27 Werner Lemberg <wl@gnu.org>
1660
1661 * include/freetype/cache/ftccache.h
1662 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
1663 ftc_node_done.
1664
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001665 * src/cache/ftccache.c (ftc_node_destroy)
1666 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
1667 should now fix all possible compilation options.
1668
David Turnerc13e75f2006-02-27 13:14:42 +000016692006-02-27 David Turner <david@freetype.org>
1670
Werner Lemberg422d2a02006-02-27 18:25:22 +00001671 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
1672 ft_mem_qrealloc): Return an error if a negative size is passed in
1673 parameters.
David Turnerc13e75f2006-02-27 13:14:42 +00001674
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001675 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
1676 it needs to be exported for rogue clients.
David Turner65b96aa2006-03-07 00:38:24 +00001677
Werner Lemberg422d2a02006-02-27 18:25:22 +00001678 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
1679 with malformed fonts which have an odd number of blue values (these
1680 are broken according to the specs).
David Turnerc13e75f2006-02-27 13:14:42 +00001681
Werner Lemberg422d2a02006-02-27 18:25:22 +00001682 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
1683 (T1_Open_Face): Modify the loaders to force even-ness of
1684 `num_blue_values'.
1685
1686 (cff_index_access_element): Ignore invalid entries in index files.
David Turnerc13e75f2006-02-27 13:14:42 +00001687
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +000016882006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1689
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001690 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
1691 or height is 0.
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +00001692
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +000016932006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1694
1695 * builds/mac/FreeType.m68k_cfm.make.txt,
1696 builds/mac/FreeType.m68k_far.make.txt,
1697 builds/mac/FreeType.ppc_carbon.make.txt,
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001698 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
1699 inclusion introduced on 2006-02-16.
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00001700
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +000017012006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1702
Werner Lemberg422d2a02006-02-27 18:25:22 +00001703 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
1704 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001705 Re-enable glyph metrics grid-fitting. It is now done in the base
1706 layer.
Werner Lembergc07ee522006-02-27 18:13:12 +00001707 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
1708 height are not too small or too large, just like we were doing in
1709 2.1.10.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001710
Werner Lembergc07ee522006-02-27 18:13:12 +00001711 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
1712 are not scaled.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001713
Werner Lembergf99d8462006-02-26 17:50:59 +000017142006-02-26 Werner Lemberg <wl@gnu.org>
1715
1716 * docs/release: Minor additions and clarifications.
1717
1718 * docs/CHANGES: Updated to reflect many fixes for backwards
1719 compatibility. Still incomplete.
1720
David Turnerb4636652006-02-26 07:57:45 +000017212006-02-26 David Turner <david@freetype.org>
1722
Werner Lemberg0aaf4292006-02-26 17:30:15 +00001723 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
1724 conservative rounding of metrics to avoid breaking clients like
1725 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
David Turnerb4636652006-02-26 07:57:45 +00001726
Werner Lemberg20a8d0c2006-02-25 16:56:04 +000017272006-02-25 Werner Lemberg <wl@gnu.org>
1728
1729 * devel/ftoption.h: Synchronize with
1730 include/freetype/config/ftoption.h.
1731
Werner Lembergae1e4b12006-02-25 17:11:04 +00001732 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
1733
David Turner6c71c6b2006-02-25 12:49:40 +000017342006-02-25 David Turner <david@freetype.org>
1735
Werner Lemberg7f049f42006-02-25 16:52:16 +00001736 Fix compiler warnings as well as C++ compilation problems.
1737 Add missing prototypes.
David Turner6c71c6b2006-02-25 12:49:40 +00001738
Werner Lemberg7f049f42006-02-25 16:52:16 +00001739 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
1740 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
1741 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
1742 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
1743 initialize variables, and decorate functions with FT_CALLBACK_DEF,
1744 etc., to fix compiler warnings (and C++ compiling errors).
David Turner6c71c6b2006-02-25 12:49:40 +00001745
Werner Lemberg7f049f42006-02-25 16:52:16 +00001746 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
1747 gcc.
David Turnerde271ab2006-02-25 14:53:02 +00001748
Werner Lemberg7f049f42006-02-25 16:52:16 +00001749 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
1750 FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001751
Werner Lemberg7f049f42006-02-25 16:52:16 +00001752 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001753
Werner Lemberg7f049f42006-02-25 16:52:16 +00001754 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
1755
1756 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
1757 define for C++.
1758
1759 * include/freetype/internal/services/svotval.h: Don't include
1760 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
1761
1762 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
1763
1764 * src/gzip/ftgzip.c: Include FT_GZIP_H.
1765
1766 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
1767
1768 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
David Turner6c71c6b2006-02-25 12:49:40 +00001769
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +000017702006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1771
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001772 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1773 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
David Turner6c71c6b2006-02-25 12:49:40 +00001774 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001775 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
1776
17772006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1778
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001779 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
1780 documentation.
1781
1782 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
1783 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
Werner Lembergd7e6b762006-02-25 06:24:28 +00001784 sure a glyph slot owns its bitmap. It is also marked experimental
1785 and due to change.
1786 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
1787 rendering the outline confuses some applications.
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001788
David Turnerca7d76f2006-02-24 09:09:10 +000017892006-02-24 David Turner <david@freetype.org>
1790
Werner Lembergd7e6b762006-02-25 06:24:28 +00001791 * Release candidate VER-2-2-0-RC3.
1792 ----------------------------------
David Turner478c5912006-02-24 09:56:23 +00001793
Werner Lembergd7e6b762006-02-25 06:24:28 +00001794 * src/cache/ftcbasic.c: Correct compatibility hack bug.
David Turnerca7d76f2006-02-24 09:09:10 +00001795
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +000017962006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1797
Werner Lembergd7e6b762006-02-25 06:24:28 +00001798 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
1799 of `width' and `height' to `FT_Long'.
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +00001800 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
1801 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
1802 directly.
1803
David Turner6cda6c02006-02-23 12:37:18 +000018042006-02-23 David Turner <david@freetype.org>
1805
Werner Lembergd7e6b762006-02-25 06:24:28 +00001806 Two BDF patches from Debian libfreetype6 for 2.1.10.
David Turner6cda6c02006-02-23 12:37:18 +00001807
Werner Lembergd4303da2006-02-23 21:01:34 +00001808 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
1809 glyphs.
1810 Fix a problem with large encodings.
David Turner481838e2006-02-23 12:40:14 +00001811
Werner Lembergd7e6b762006-02-25 06:24:28 +00001812
1813 Fix binary compatibility issues for gnustep-back (GNUstep backend
1814 module) which still crashes under Sarge.
1815
1816 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
1817 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
1818 structures and enumerations.
1819 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
1820 compatibility code.
David Turner88d89852006-02-23 22:35:26 +00001821
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001822 * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
David Turneraa557a92006-09-04 16:42:44 +00001823 support rogue clients compiled against 2.1.7 to work correctly.
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001824 This probably explains the GNUstep crashes with the second release
1825 candidate.
David Turnerbd502952006-09-01 19:05:24 +00001826
Wu, Chia-I (吳佳一)890f8072006-02-22 20:47:39 +000018272006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
1828
1829 * include/freetype/ftoutln.h (enum FT_Orientation): New value
1830 `FT_ORIENTATION_NONE'.
1831
1832 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1833 ft_contour_enclosed, ft_outline_get_orientation): Another version of
1834 `FT_Outline_Get_Orientation'. This version differs from the public
1835 one in that each part (contour not enclosed in another contour) of the
1836 outline is checked for orientation.
1837 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
1838
1839 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
1840 use bitmap's embolden routine when the outline one failed.
1841
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +000018422006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
1843
1844 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
1845 compatibility.
1846
1847 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
1848
1849 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
1850 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
Werner Lemberg5edafed2006-02-22 08:23:35 +00001851 loading. (Only tested with bit aligned sbit with x_pos == 0.)
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00001852
1853 * src/truetype/ttpload.c (tt_face_load_hdmx,
Werner Lemberg5edafed2006-02-22 08:23:35 +00001854 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
1855 actually used.
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00001856
David Turner1ae134a2006-02-21 16:50:17 +000018572006-02-21 David Turner <david@freetype.org>
1858
Werner Lemberg5edafed2006-02-22 08:23:35 +00001859 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
1860 we have a patented, unpatented, or unimplemented TrueType bytecode
1861 interpreter.
David Turner0b5dc4d2006-02-21 22:36:23 +00001862
Werner Lemberg5edafed2006-02-22 08:23:35 +00001863 The FT_Get_Module_Flags API was removed consequently.
David Turner0b5dc4d2006-02-21 22:36:23 +00001864
David Turner88d89852006-02-23 22:35:26 +00001865 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Werner Lemberg5edafed2006-02-22 08:23:35 +00001866 Replaced with...
1867 (FT_Get_TrueType_Engine_Type): This.
1868 (FT_TrueTypeEngineType): New enumeration.
David Turner0b5dc4d2006-02-21 22:36:23 +00001869
Werner Lemberg5edafed2006-02-22 08:23:35 +00001870 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
1871 New macro.
David Turner1ae134a2006-02-21 16:50:17 +00001872
Werner Lemberg5edafed2006-02-22 08:23:35 +00001873 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
1874 (FT_Module_Get_Flags): Removed. Replaced with...
1875 (FT_Get_TrueType_Engine_Type): This.
David Turnerc093db92006-02-21 17:06:35 +00001876
Werner Lemberg5edafed2006-02-22 08:23:35 +00001877 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
1878 (tt_service_truetype_engine): New service structure.
1879 (tt_services): Register it.
1880
1881 * include/freetype/internal/services/svtteng.h: New file.
1882
1883
1884 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
1885 embedded bitmaps from being correctly listed and used.
1886
1887
1888 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
1889 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
1890 libXfont is directly accessing the HMTX data, unfortunately.
1891 Fix some compiler warnings.
1892 (tt_face_get_metrics): Ditto.
1893
1894
1895 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
1896 character advances.
David Turner1ae134a2006-02-21 16:50:17 +00001897
David Turnerdd0f3602006-02-20 23:50:21 +000018982006-02-20 David Turner <david@freetype.org>
1899
David Turner0b5dc4d2006-02-21 22:36:23 +00001900 Support binary compatibility with the X.Org server's Xfont library.
Werner Lembergd41aecd2006-02-21 08:08:14 +00001901 Note that this change unfortunately prevents memory optimizations
1902 for the embedded bitmap loader.
David Turnerdd0f3602006-02-20 23:50:21 +00001903
Werner Lembergd41aecd2006-02-21 08:08:14 +00001904 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
1905 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
1906 version 2.1.8.
David Turnerdd0f3602006-02-20 23:50:21 +00001907
Werner Lembergd41aecd2006-02-21 08:08:14 +00001908 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
1909 FT_Size_Request.
1910 (sfnt_interface): Updated.
1911
1912 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
1913 ttsbit0.c.
1914 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
1915
1916 * src/sfnt/ttsbit.h: Updated.
David Turnerdd0f3602006-02-20 23:50:21 +00001917
David Turner0880ac32006-02-17 17:23:13 +000019182006-02-17 David Turner <david@freetype.org>
1919
Werner Lembergf145e312006-02-19 16:12:18 +00001920 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
1921 functions anymore. This ensures that all FT_BASE internal functions
1922 are available for dynamic linking.
1923
1924 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
1925 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
1926 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
1927 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
1928 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
1929 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
1930 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
1931 cache sub-system. We try to recognize old legacy signatures with a
1932 gross hack (hope it works).
David Turner0880ac32006-02-17 17:23:13 +00001933
Werner Lemberg1fae6692006-02-17 16:16:40 +000019342006-02-17 Werner Lemberg <wl@gnu.org>
1935
1936 * devel/ftoption.h: Synchronize with
1937 include/freetype/config/ftoption.h.
1938
David Turnercda2d952006-02-16 22:45:31 +000019392006-02-16 David Turner <david@freetype.org>
1940
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001941 Massive changes to the internals to respect the internal object
1942 layouts and exported functions of FreeType 2.1.7. Note that the
1943 cache sub-system cannot be fully retrofitted, unfortunately.
David Turnercda2d952006-02-16 22:45:31 +00001944
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001945 * include/freetype/config/ftoption.h
1946 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
1947
1948 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
1949 include/freetype/cache/ftccmap.h,
1950 include/freetype/internal/ftcalc.h,
1951 include/freetype/internal/ftdriver.h,
1952 include/freetype/internal/ftmemory.h,
1953 include/freetype/internal/ftobjs.h,
1954 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
1955 include/freetype/internal/t1types.h,
1956 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
1957 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
1958 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
1959 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
1960 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
1961 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
1962 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
1963 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
1964 structures.
1965
1966 Move newly added structure elements to the end of the affected
1967 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
1968 defined) to assure binary compatibility with older FreeType
1969 versions.
1970 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
1971 functions:
1972
1973 ft_stub_set_char_sizes
1974 ft_stub_set_pixel_sizes
1975
1976 Rename the following internal functions to provide the old function
1977 names as stubs:
1978
1979 FT_Alloc -> ft_mem_alloc
1980 FT_QAlloc -> ft_mem_qalloc
1981 FT_Realloc -> ft_mem_realloc
1982 FT_QRealloc -> ft_mem_qrealloc
1983 FT_Free -> ft_mem_free
1984 FT_Alloc_Debug -> ft_mem_alloc_debug
1985 FT_QAlloc_Debug -> ft_mem_qalloc_debug
1986 FT_Realloc_Debug -> ft_mem_realloc_debug
1987 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
1988 FT_Free_Debug -> ft_mem_free_debug
David Turnercda2d952006-02-16 22:45:31 +00001989
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +000019902006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
1991
1992 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
1993 unused `max_points' and `max_contours'.
David Turnercda2d952006-02-16 22:45:31 +00001994
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001995 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
1996 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
1997
1998 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
1999 `max_components'.
2000
2001 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
2002 `loadSize' and `loadStack'.
2003
2004 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
2005 src/sfnt/ttload.c (tt_face_load_maxp): Update.
2006
2007 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
2008 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
2009 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
2010 defined.
2011
2012 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
2013 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
2014 (finally!)
2015
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002016
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002017 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
2018 and `face->root' is set later in `sfnt_load_face'. Here, we try to
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002019 make this work for _all_ tables. Also improve tracing messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002020
2021 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
2022 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
2023 then exit. Error handling or setting face->root is done later in
2024 `sfnt_load_face'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002025
2026 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
2027 Mac bitmap-only fonts are not scalable.
2028 Check that `face->header.Units_Per_EM' is not zero.
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002029 (LOAD_, LOADM_): Emit pretty trace messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002030
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002031 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
2032 from `eblc'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002033
2034 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
2035 (load_format_20, load_format_25, tt_face_get_ps_name): Use
2036 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
2037
Werner Lemberg52254022006-02-15 06:05:52 +000020382006-02-14 Werner Lemberg <wl@gnu.org>
2039
2040 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
2041 documentation that negative strength values are possible.
2042 Give an example call.
2043
2044 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
2045 documentation of `outline' field.
2046
2047 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
2048 * src/sfnt/sfdriver.c: Include ttmtx.h.
2049
2050 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
2051
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +000020522006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2053
Wu, Chia-I (吳佳一)3dc00182006-02-14 13:36:28 +00002054 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
2055
20562006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2057
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002058 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
2059 return error if table is missing.
2060 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
2061
2062 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
Werner Lemberg52254022006-02-15 06:05:52 +00002063 tables. The last change makes Mac bitmap-only font not load and
2064 this fixes it.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002065
Werner Lemberg52254022006-02-15 06:05:52 +00002066 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
2067 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002068
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +000020692006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2070
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002071 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
Werner Lemberg814839a2006-07-28 11:55:48 +00002072 split from `load_hhea'.
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002073
2074 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
2075 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
2076
2077 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
2078
20792006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2080
Wu, Chia-I (吳佳一)e0decd12006-02-14 07:20:06 +00002081 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
2082 code...
2083
20842006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2085
Werner Lemberg52254022006-02-15 06:05:52 +00002086 Clean up the SFNT_Interface. In this pass, we want to treat the
2087 font directory (offset table and table directory) as a normal table
2088 like the others. This also means that TTCs are no longer recognized
2089 there but in `init_face'.
Wu, Chia-I (吳佳一)65863a52006-02-14 07:01:29 +00002090
2091 * include/freetype/internal/sfnt.h (SFNT_Interface),
2092 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
2093 combined and renamed to `load_font_dir'.
2094
2095 * src/sfnt/ttload.h, src/sfnt/ttload.c:
2096 s/sfnt_dir_check/check_table_dir/.
2097 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
2098 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
2099 and renamed to `tt_face_load_font_dir'.
2100
2101 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
2102
21032006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2104
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002105 Clean up the SFNT_Interface. Table loading functions are now named
Werner Lemberg52254022006-02-15 06:05:52 +00002106 after the tables' tags; `hdmx' is TrueType-specific and thus the
2107 code is moved to the truetype module; `get_metrics' is moved here
2108 from the truetype module so that the code can be shared with the cff
2109 module.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002110
2111 This pass involves no real changes. That is, the code is moved
2112 verbatim mostly. The only exception is the return value of
2113 `tt_face_get_metrics'.
2114
2115 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
2116 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
2117 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
2118 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
David Turnercda2d952006-02-16 22:45:31 +00002119
Werner Lemberg52254022006-02-15 06:05:52 +00002120 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
2121 tables' loading and parsing code is moved to here.
2122 Move `tt_face_get_metrics' here from the truetype module. The
2123 return value is changed from `void' to `FT_Error'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002124
2125 * include/freetype/internal/fttrace.h: New trace: ttmtx.
2126
2127 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
2128 parsing code is moved here.
Werner Lemberg814839a2006-07-28 11:55:48 +00002129 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002130 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
2131
2132 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
2133
2134 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2135
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +000021362006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2137
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002138 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
2139
2140 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
Werner Lembergd39fda22006-02-12 21:49:21 +00002141 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
2142 to it later in `af_latin_hints_link_segments'.
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002143
21442006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2145
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002146 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
Werner Lembergd39fda22006-02-12 21:49:21 +00002147 to enable autofit CJK script support. (#define'd by default.)
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002148
2149 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
2150
Werner Lembergd39fda22006-02-12 21:49:21 +00002151 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
2152 that `edge_distance_threshold' is always set.
2153 (af_latin_hints_link_segments): Potential divide-by-zero bug.
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002154 Use latin constant in the scoring formula.
2155
2156 * src/autofit/afcjk.c: Minor updates due to the above three changes.
2157
2158 * docs/TODO, docs/CHANGES: Updated.
2159
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +000021602006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
2161
2162 Introduce experimental autofit CJK module based on akito's autohint
2163 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
2164
2165 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
2166 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
2167 Add CJK module based on akito's autohint patch.
2168
2169 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002170 overlap length of the segments.
2171 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002172
2173 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002174 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
2175 `FT_LOCAL'.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002176 Use the character given by the caller.
2177 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
2178 the thresholds.
2179
2180 * src/autofit/afloader.c (af_loader_load_g): Respect
2181 AF_SCALER_FLAG_NO_ADVANCE.
2182
Werner Lemberg6be99f92006-02-09 07:38:57 +000021832006-02-09 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002184
Werner Lemberg6be99f92006-02-09 07:38:57 +00002185 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002186
Werner Lemberg6be99f92006-02-09 07:38:57 +000021872006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002188
Werner Lemberg6be99f92006-02-09 07:38:57 +00002189 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
2190 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
2191 2005-11-02).
2192
21932006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2194
2195 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
2196 option on UNIX platform. It has been broken since 2006-01-11.
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002197
Werner Lemberg38beff02006-02-01 05:14:25 +000021982006-02-01 Werner Lemberg <wl@gnu.org>
2199
2200 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
2201 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
2202
Werner Lemberg03379b62006-02-01 05:40:06 +00002203 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
2204 change from 2006-01-31).
2205 (TOP_DIR, OBJ_DIR): Update.
2206
Werner Lemberg9a8006b2006-02-01 06:07:05 +00002207 * builds/unix/install.mk (install): Fix path for ftmodule.h.
2208
Werner Lemberg54a79c82006-02-01 07:54:07 +00002209 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
2210 `?=' where appropriate.
Werner Lemberg8a4de0d2006-02-01 07:52:11 +00002211
2212 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
2213 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
2214
Werner Lemberg38beff02006-02-01 05:14:25 +000022152006-01-31 Werner Lemberg <wl@gnu.org>
Werner Lemberg59939242006-01-31 20:17:42 +00002216
2217 Implement new, simplified module selection. With GNU make it is now
2218 sufficient to modify a single file, `modules.cfg', to control the
2219 inclusion of modules and base extension files.
2220
2221 This change also fixes the creation of ftmodule.h; it now depends on
2222 `modules.cfg' and thus is rebuilt only if necessary.
2223
2224 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
2225 default location.
2226
2227 * modules.cfg: New file.
2228
2229 * builds/freetype.mk: Don't include `modules.mk'.
2230 Include all `rules.mk' files as specified in `modules.cfg'.
2231 (FTOPTION_FLAG, FTOPTION_H): New variables.
2232 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
2233 Add FTOPTION_FLAG.
2234 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
2235 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
2236 (INCLUDES): Add DEVEL_DIR.
2237 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
2238 OBJ_M, OBJ_S): Use `:=', not `='.
2239 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
2240 (distclean): Add remove_ftmodule_h.
2241
2242 * builds/modules.mk: (MODULE_LIST): Removed.
2243 (make_module_list, clean_module_list): Replace targets
2244 with...
2245 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
2246 variables. Reason for the change is that it is not possible to have
2247 a phony prerequisite which is run only if the target file must be
2248 rebuilt (phony prerequisites act like subroutines and are *always*
2249 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
2250 changed.
2251 Update all callers.
2252 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
2253 `modules.cfg'.
2254
2255 * builds/toplevel.mk: Rewrite and simplify module handling.
2256 (MODULES_CFG, FTMODULE_H): New variables.
2257 Include MODULES_CFG.
2258 (MODULES): New variable to include all `module.mk' and `rules.mk'
2259 files. We no longer use make's `wildcard' function for this.
2260
2261 * Makefile (USE_MODULES): Remove. Update all users.
2262 (OBJ_DIR): Define it here.
2263
2264 * src/*/module.mk: Change
2265
2266 make_module_list: foo
2267 foo: ...
2268
2269 to
2270
2271 FTMODULE_H_COMMANDS += FOO
2272 define FOO
2273 ...
2274 endef
2275
2276 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
2277
2278 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
2279
2280 * builds/unix/detect.mk (setup): Always execute `configure' script.
2281 (have_mk): Rename to...
2282 (have_Makefile): This.
2283 Don't use `strip' function.
2284
2285 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
2286 defined.
2287 (have_mk): Don't use `strip' function.
2288 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
2289 accordingly).
2290
2291 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
2292
2293 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
2294 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
2295 BUILD_DIR but DEVEL_DIR for development header files.
2296
2297 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
2298 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
2299 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
2300
2301 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
2302 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
2303
2304 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
2305 development header files.
2306 Don't define PLATFORM.
2307
2308 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
2309 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
2310 Be more verbose.
2311
2312 * include/freetype/config/ftmodule.h: Add comments -- this file is
2313 no longer used if FreeType is built with GNU make.
2314
2315 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
2316 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
2317 Other minor updates.
2318
2319 * modules.txt: Removed. Contents included in `modules.cfg'.
2320
2321
2322 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
2323 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
2324
2325 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
2326 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
2327 [FT_STRICT_ALIASING]: Implement.
2328
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +000023292006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2330
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002331 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
Werner Lemberg59939242006-01-31 20:17:42 +00002332 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
2333 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
2334 units_per_EM, ascender - descender).
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002335
23362006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2337
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002338 * include/freetype/internal/t1types.h (AFM_FontInfo),
2339 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
2340 `Ascender', and `Descender' from an AFM.
2341
2342 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
2343
Werner Lemberg59939242006-01-31 20:17:42 +00002344 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
2345 be changed after file attachment.
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002346
Werner Lemberg7596fd32006-01-28 16:29:29 +000023472006-01-28 Werner Lemberg <wl@gnu.org>
2348
2349 * src/*/module.mk (.PHONY): Add.
2350
Werner Lemberg68a15eb2006-01-28 07:30:58 +000023512006-01-27 Werner Lemberg <wl@gnu.org>
2352
2353 * README, docs/FTL.TXT: Fix email address for bug reports.
2354 Other minor formatting.
2355
Werner Lembergf6a25502006-01-28 10:38:15 +00002356 * devel/ftoption.h: Synchronize with
2357 include/freetype/config/ftoption.h.
2358
2359 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
2360 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
2361 whitespace.
2362
2363 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
2364 renderer classes.
2365
David Turnerff0e9e62006-01-27 09:15:53 +000023662006-01-27 David Turner <david@freetype.org>
2367
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002368 * builds/unix/configure.ac: Fix build problem on Cygwin.
David Turnercda2d952006-02-16 22:45:31 +00002369
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002370 * builds/unix/install.mk (install): Don't install the internal
2371 headers, and remove existing ones if found in the target install
2372 directory.
David Turner7213b4f2006-01-27 16:42:32 +00002373
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002374 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
2375 if the warp hinter isn't active (it shouldn't, still experimental).
David Turner6a681fa2006-01-27 12:11:22 +00002376
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002377 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
Werner Lembergbe3c9812006-01-27 14:16:16 +00002378 and `otvalid' from the list of modules that are linked statically
2379 to a given FreeType library. Functionality has been moved to the
2380 `ftvalid' CVS module.
David Turner6a681fa2006-01-27 12:11:22 +00002381
Werner Lembergbe3c9812006-01-27 14:16:16 +00002382 Note also that current Make-based build system still compiles the
2383 modules though.
David Turner6a681fa2006-01-27 12:11:22 +00002384
Werner Lembergbe3c9812006-01-27 14:16:16 +00002385 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
2386 which controls the definitions of the memory management functions to
2387 avoid warnings with recent versions of GCC. This macro is only here
2388 to be disabled, in case we detect problems with the new scheme.
David Turner6a681fa2006-01-27 12:11:22 +00002389
Werner Lembergbe3c9812006-01-27 14:16:16 +00002390 NOTE: Disable macro to use the memory debugger -- this will be fixed
2391 later!
2392
2393 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
2394 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
2395 New versions.
2396
2397
2398 * builds/win32/visualc/freetype.dsp: Updating project file to
2399 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
2400 compilation.
2401
2402
2403 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
2404 macro FT2_BUILD_LIBRARY when compiling the library.
2405
2406 * include/freetype/config/ftheader.h: Remove inclusions of internal
2407 headers except if the macro FT2_BUILD_LIBRARY is defined.
2408
2409
2410 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
2411 AFM_FontInfo): Move structure declarations to...
2412 * include/freetype/internal/t1types.h: This file.
2413
2414
2415 * (many files): Fix compiler warnings.
2416 Various minor reorganizations.
2417
2418
2419 * src/cff/cffload.c (cff_font_done): Don't free static array
2420 `subfonts'.
2421
2422 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
2423 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
2424
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002425
2426 Get rid of writable static variables (i.e., the string table) in
2427 afmparse, and fix compilation in FT2_MULTI mode.
2428
Werner Lembergbe3c9812006-01-27 14:16:16 +00002429 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
2430 (AFM_MAX_ARGUMENTS): Define...
2431 * src/psaux/afmparse.h: Here.
2432 * src/psaux/Jamfile (_sources): Add afmparse.
2433
2434 * src/psaux/psconv.c: Include psconv.h.
2435
2436 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
2437 FT_INTERNAL_POSTSCRIPT_AUX_H.
2438 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
David Turnerff0e9e62006-01-27 09:15:53 +00002439
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +000024402006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2441
Wu, Chia-I (吳佳一)bcc438b2006-01-23 14:12:40 +00002442 * include/freetype/freetype.h (FT_Select_Size): Rename the second
2443 argument from `idx' to `strike_index'.
2444 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
2445 this enum.
2446
2447 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
2448 FT_REQUEST_HEIGHT): New macros to get the width and height of a
2449 request, in fractional pixels.
2450
2451 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
2452 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
2453 FT_Request_Metrics): New base functions to set the font metrics. They
2454 were part of FT_Select_Size/FT_Request_Size and are made independent
2455 functions so that metrics are not set again and again.
2456
2457 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
2458 only when driver's size_select/size_request is NULL. That is, drivers
2459 should set the metrics themselves.
2460 (FT_Match_Size): Round before matching. This was what we did and it
2461 does cause some problems without rounding.
2462
2463 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
2464 (tt_size_select): Set the font metrics.
2465 s/index/strike_index/.
2466 The scaled metrics are always preferred over strikes' metrics, even
2467 when some strike is selected. This is done because the strikes'
2468 metrics are not reliable, e.g., the sign of the descender is wrong for
2469 some fonts.
2470
2471 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
2472 (tt_size_request): Set the font metrics.
2473 Call cff_size_select/tt_size_select when some strike is matched.
2474
2475 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
2476 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
2477 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
2478 Set the font metrics.
2479 s/index/strike_index/.
2480
2481 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
2482 files were committed. Just a catch-up.
2483 (PS_Conv_ToFixed): Remove the `goto'.
2484 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
2485
2486 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
2487 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
2488 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
2489 advertised metrics in `available_sizes' are different from those
2490 actually used.
2491
24922006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2493
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +00002494 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
2495 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
2496
Werner Lemberged70ca52006-01-23 07:28:03 +000024972006-01-22 Werner Lemberg <wl@gnu.org>
2498
2499 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
Werner Lemberg4836f952006-06-06 12:54:08 +00002500 `texinfo' CVS module at savannah.gnu.org.
Werner Lemberged70ca52006-01-23 07:28:03 +00002501
Werner Lemberg1be9ebf2006-01-22 06:58:16 +000025022006-01-21 Werner Lemberg <wl@gnu.org>
2503
2504 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
2505
Werner Lembergb36bf522006-01-22 07:09:54 +00002506 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
2507 to avoid compiler warnings.
2508
2509 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
2510 shadowing variable declarations.
2511 Fix warning parameters and replace printf with AF_LOG.
2512 (af_warper_compute): Remove unused variable.
2513
David Turnerbb4edc92006-01-21 14:31:45 +000025142006-01-20 David Turner <david@freetype.org>
2515
Werner Lemberg1be9ebf2006-01-22 06:58:16 +00002516 Adding experimental implementation of `warp hinting' (new hinting
2517 algorithm for gray-level and LCD rendering). It is disabled by
2518 default, you need to #define AF_USE_WARPER in aftypes.h.
2519
2520 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
2521 New function.
2522 * src/autofit/afhints.h: Updated.
2523
2524 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
2525 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
2526 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
2527 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
2528 appropriately.
2529
2530 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
2531 Isolate code for adjusting metrics.
2532
2533 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
2534 default).
2535
2536 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
2537
2538 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
2539
2540 * src/autofit/Jamfile (_sources): Add afwarp.
David Turnerbb4edc92006-01-21 14:31:45 +00002541
David Turner8c16ed32006-01-19 13:10:49 +000025422006-01-19 David Turner <david@freetype.org>
2543
Werner Lemberge7be64e2006-01-21 17:27:32 +00002544 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
2545 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
David Turner8c16ed32006-01-19 13:10:49 +00002546
Werner Lemberg8b560632006-01-19 08:30:58 +000025472006-01-19 Brian Weed <bw@imaginengine.com>
2548
2549 * builds/win32/visualc/freetype.dsp: Updated.
2550
Werner Lemberg47bf95d2006-01-17 16:55:32 +000025512006-01-17 Werner Lemberg <wl@gnu.org>
2552
2553 Use pscmap service in CFF module.
2554
2555 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
2556 (cff_sid_to_glyph_name): New function.
2557 (cff_cmap_unicode_init, cff_cmap_unicode_done,
2558 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
2559 service.
2560 (cff_cmap_unicode_class_rec): Updated.
2561 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
2562
2563
2564 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
2565 return value.
2566
2567
2568 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
Werner Lemberge7be64e2006-01-21 17:27:32 +00002569 to avoid compiler warnings regarding type-punning.
Werner Lemberg47bf95d2006-01-17 16:55:32 +00002570
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +000025712006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
2572
2573 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
Werner Lembergce94c7a2006-01-16 22:35:33 +00002574 implement an AFM parser.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002575
2576 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
Werner Lembergce94c7a2006-01-16 22:35:33 +00002577 conversion functions (e.g., PS real number => FT_Fixed) for the
2578 PS_Parser and AFM_Parser. Some of the functions are taken, with
2579 some modifications, from the file psobjs.c.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002580
2581 * src/psaux/psobjs.c: Use functions from psconv.c.
2582
Werner Lembergce94c7a2006-01-16 22:35:33 +00002583 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002584 `AFM_Parser' to the `psaux' service.
2585
Werner Lembergce94c7a2006-01-16 22:35:33 +00002586 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
2587 those new files.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002588
2589 * src/tools/test_afm.c: A test program for AFM parser.
2590
Werner Lembergce94c7a2006-01-16 22:35:33 +00002591 * include/freetype/internal/services/svkern.h: New file providing a
2592 `Kerning' service. It is currently only used to get the track
2593 kerning information.
2594
2595 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
2596 macro.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002597
2598 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
2599 src/type1/t1afm.h: Update to use the AFM parser.
2600 Provide the `Kerning' service.
2601
2602 * include/freetype/freetype.h, src/base/ftobjs.c: New API
2603 `FT_Get_Track_Kerning'.
2604
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +000026052006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2606
Wu, Chia-I (吳佳一)ea1e8d32006-01-15 15:01:45 +00002607 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
2608 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
2609 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
2610 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
2611
2612 * docs/CHANGES: Mention that vertical metrics are synthesized for
2613 fonts not having this info.
2614
26152006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2616
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002617 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002618 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002619 vertical metrics.
2620
2621 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002622 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
2623 which are monotone.
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002624
2625 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002626 formattings in vertical metrics faking. There is still room for
2627 improvements (and so does the CFF module).
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002628
26292006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2630
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002631 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
2632 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002633 the linear advance fields as they are only used by the outline
2634 glyphs.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002635
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002636 * include/freetype/freetype.h: Documentation updates and
2637 clarifications.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002638 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
2639 change need be made to the code.
2640
2641 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
2642 decide whether to use the auto-hinter according to documentation.
2643 There should to be no real difference.
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002644 Some checks (e.g., is text height positve?) after the glyph is
2645 loaded.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002646 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
2647 Be careful that scales won't be negative.
2648
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +000026492006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
2650
2651 * docs/CHANGES: Mention the size selection change.
2652
2653 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
2654 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
2655 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
Werner Lemberg3d8eeb82006-01-14 07:10:45 +00002656 matching for requests of type NOMINAL and REAL_DIM.
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +00002657
2658 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
2659 `pixel_height' is used for nominal height.
2660
2661 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
2662 face is bitmap only and driver doesn't provide `request_size'. This
2663 is added merely for completion as no driver satisfies the conditions.
2664
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +000026652006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2666
2667 Introduce new size selection interface.
2668
Werner Lembergf1c2b912006-01-13 14:53:28 +00002669 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +00002670 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
2671 `select_size'.
2672
2673 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
2674 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
2675 (FT_Select_Size, FT_Request_Size): API additions to export the new
2676 size selection interface.
2677
2678 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
2679 `FT_Request_Size'.
2680
2681 * include/freetype/internal/ftobjs.h (FT_Match_Size),
2682 src/base/ftobjs.c (FT_Match_Size): New function to match a size
2683 request against `available_sizes'. Drivers supporting bitmap strikes
2684 can use this function to implement `request_size'.
2685
2686 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
2687 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
2688 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
2689 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
2690 Update to new size selection interface.
2691
2692 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
2693 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
2694 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
2695 selection interface.
2696 Make `strike_index' FT_ULong and always defined.
2697 Use `load_strike_metrics' provided by SFNT interface.
2698
26992006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2700
2701 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
2702 `load_strike_metrics' used to load the strike's metrics.
2703
2704 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2705 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
2706
2707 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
2708
2709 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
2710 nominal size unless it is obviously incorrect.
2711
2712 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
2713 FNT driver.
2714
Werner Lemberg8ab09792006-01-12 08:12:27 +000027152006-01-12 Werner Lemberg <wl@gnu.org>
2716
2717 Prepare use of pscmap service within CFF module.
2718
2719 * include/freetype/internal/services/svpscmap.h: Include
2720 FT_INTERNAL_OBJECTS_H.
2721 (PS_Unicode_Index_Func): Removed. Unused.
2722 (PS_Macintosh_Name_Func): Renamed to...
2723 (PS_Macintosh_NameFunc): This.
2724 Update all callers.
2725 (PS_Adobe_Std_Strings_Func): Renamed to...
2726 (PS_Adobe_Std_StringsFunc): This.
2727 Update all callers.
2728 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
2729 Add `cmap' member.
2730 Update all callers.
2731 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
2732 Update all callers.
2733 (PS_Glyph_NameFunc): New typedef.
2734 (PS_Unicodes_InitFunc): Change arguments to expect a function
2735 and generic data pointer which returns a glyph name from a given
2736 index.
2737
2738 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
2739 ps_unicodes_char_next, pscmaps_interface): Updated.
2740
2741 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
2742
2743 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
2744 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
2745
2746 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
2747 (t1_cmap_unicode_init, t1_cmap_unicode_done,
2748 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
2749 t1_cmap_unicode_class_rec): Updated.
2750
2751 * src/type42/t42types.h (T42_FaceRec): Updated.
2752
27532006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)356a4d82006-01-12 03:33:16 +00002754
2755 * include/freetype/ftmac.h: Add declaration of new functions
2756 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
2757 were introduced by the jumbo patch on 2006-01-11.
2758
Werner Lemberg8ab09792006-01-12 08:12:27 +000027592006-01-11 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002760
Werner Lembergadf828f2006-01-11 10:08:49 +00002761 Fix Savannah bug #15056 and use pscmap service in psaux module.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002762
Werner Lembergadf828f2006-01-11 10:08:49 +00002763 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
2764 FT_UInt32 for `glyph_index'.
2765 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
2766 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
2767 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
2768 FT_UInt32.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002769
Werner Lembergadf828f2006-01-11 10:08:49 +00002770 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
2771 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
2772 variant glyph (this is, it has non-leading `.' in its name).
2773 (compare_uni_maps): Sort base glyphs before variant glyphs.
2774 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
2775 Reallocate only if number of used entries is much smaller.
2776 Updated to handle variant glyphs.
2777 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
2778 over variant glyphs.
2779 Simplify code.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002780
Werner Lembergadf828f2006-01-11 10:08:49 +00002781 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
2782 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
2783 t1_cmap_unicode_char_next): Use pscmap service.
2784 (t1_cmap_unicode_done): Updated.
2785
2786 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
2787 (T1_CMapUnicode): Use PS_Unicodes structure.
2788
27892006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2790
2791 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
2792 Intel, as reported by Sean McBride <sean@rogue-research.com> on
2793 2005-08-24.
2794
2795 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
2796 functions on Tiger.
2797
2798 * builds/unix/configure.ac: Add options and autochecks for Carbon
2799 functions availabilities, for MacOS X.
2800
2801 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002802 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
Werner Lembergadf828f2006-01-11 10:08:49 +00002803 macros to avoid unavailable functions.
2804 ftmac.c must be compiled without `-strict ansi', because it disables
2805 cpp macro to use ToolBox system call.
2806
2807 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
2808 macros to avoid unavailable functions.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002809
2810 * builds/mac/README: Detailed notes on function availabilities.
2811
2812 * docs/CHANGES: Notes about (possible) incompatibilities.
2813
Werner Lemberge8f92af2006-01-08 13:43:30 +000028142006-01-08 Werner Lemberg <wl@gnu.org>
2815
Werner Lemberg6cdab922006-01-08 22:34:01 +00002816 * docs/CHANGES: Updated.
2817
28182006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
2819
2820 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
2821 declaration.
2822
2823 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
2824
28252006-01-07 Werner Lemberg <wl@gnu.org>
2826
Werner Lemberge8f92af2006-01-08 13:43:30 +00002827 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
Werner Lemberg30bd2842006-01-08 19:38:42 +00002828 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
2829
2830 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
2831 Reported by Niels Boldt <nielsboldt@gmail.com>.
Werner Lemberge8f92af2006-01-08 13:43:30 +00002832
28332005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00002834
Werner Lemberg05cda082006-01-08 13:37:15 +00002835 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
2836 MPW compiler.
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00002837
David Turnere6bb9532005-12-23 13:32:06 +000028382005-12-23 David Turner <david@freetype.org>
2839
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002840 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
2841 refdoc' works correctly to generate the API reference in
2842 `docs/reference'.
David Turnere6bb9532005-12-23 13:32:06 +00002843
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002844 * src/tools/docmaker/tohtml.py (print_html_field,
2845 print_html_field_list): Update to output nicer fields lists in the
2846 API reference.
David Turnere6bb9532005-12-23 13:32:06 +00002847
2848 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002849 forces auto-hinting.
David Turnere6bb9532005-12-23 13:32:06 +00002850
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002851 * freetype/freetype.h: Updating the documentation for
2852 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
David Turnere6bb9532005-12-23 13:32:06 +00002853
Werner Lemberg6be99f92006-02-09 07:38:57 +000028542005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00002855
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002856 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
2857 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
2858 unsupported formats (fbit, NFNT). The number of available faces are
2859 passed via face->num_faces. If bitmap faces are embedded in sfnt
2860 resource, face->num_fixed_size is correctly set. In public API,
2861 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
2862 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00002863
2864 * doc/CHANGES: Mention the changes.
2865
Wu, Chia-I (吳佳一)ce34d122005-12-17 13:12:49 +000028662005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
2867
2868 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
2869 correctly (so that memory debug system won't panic).
2870
Wu, Chia-I (吳佳一)dcb8b712005-12-16 14:27:14 +000028712005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
2872
2873 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
2874 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
2875
2876 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
2877
2878 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2879 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
2880 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
2881
2882 * doc/CHANGES: Mention the changes.
2883
David Turner5b5f3822005-12-14 16:37:15 +000028842005-12-13 David Turner <david@freetype.org>
2885
Werner Lembergb79b5132005-12-20 12:01:58 +00002886 Change the implementation of the LIGHT hinting mode to completely
2887 disable horizontal hinting. This is an experimental effort to
2888 integrate David Chester's latest patch without affecting the other
2889 hinting modes as well.
David Turner5b5f3822005-12-14 16:37:15 +00002890
Werner Lembergb79b5132005-12-20 12:01:58 +00002891 Note that this doesn't force auto-hinting for all fonts, however.
David Turner5b5f3822005-12-14 16:37:15 +00002892
Werner Lembergb79b5132005-12-20 12:01:58 +00002893 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
2894 scaler_fiags here but...
2895 (af_glyph_hints_rescale): Here.
David Turner8def3c82005-12-14 16:38:31 +00002896
Werner Lembergb79b5132005-12-20 12:01:58 +00002897 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
2898 hinting for `light' hinting mode.
David Turnerdb0182f2005-12-14 21:16:33 +00002899
David Turnerdb0182f2005-12-14 21:16:33 +00002900
Werner Lembergb79b5132005-12-20 12:01:58 +00002901 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
2902 same location as other generated objects (i.e., within the `objs'
2903 directory of the current directory).
David Turnerdb0182f2005-12-14 21:16:33 +00002904
Werner Lembergb79b5132005-12-20 12:01:58 +00002905
2906 Add support for an embedded `BDF ' table within SFNT-based bitmap
2907 font files. This is used to store atoms & properties from the
2908 original BDF fonts that were used to generate the font file.
2909
2910 The feature is controlled by TT_CONFIG_OPTION_BDF within
2911 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
2912 font files.
2913
2914 At the moment, this is still experimental, the BDF table format
2915 isn't cast into stone yet.
2916
2917 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
2918 macro.
2919
2920 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
2921
2922 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
2923 [TT_CONFIG_OPTION_BDF]: New structure.
2924 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
2925
2926 * include/freetype/ttags.h (TTAG_BDF): New macro.
2927
2928 * src/sfnt/Jamfile (_sources): Add ttbdf.
2929
2930 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
2931
2932 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
2933 FT_SERVICE_BDF_H.
2934 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
2935 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
2936 (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
2937
2938 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
2939
2940 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
2941 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
2942 tt_face_free_bdf_props.
2943
2944 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
David Turner89a2a4b2005-12-14 20:38:15 +00002945
Werner Lemberg364db082005-12-07 20:34:11 +000029462005-12-07 Werner Lemberg <wl@gnu.org>
2947
2948 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
2949 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
2950
Wu, Chia-I (吳佳一)a3690cd2005-12-06 08:24:01 +000029512005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
2952
2953 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
2954 initialized twice.
2955 size->strike_index is not initialized.
2956
Werner Lemberg2a0903a2005-12-03 08:13:43 +000029572005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
2958
Werner Lemberg3b8db662005-12-06 10:47:44 +00002959 * src/type42/t42objs.c (T42_Face_Init): Replace call to
Werner Lemberg2a0903a2005-12-03 08:13:43 +00002960 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
2961
Werner Lembergb797fdb2005-11-30 08:48:32 +000029622005-11-30 Werner Lemberg <wl@gnu.org>
2963
2964 * docs/CHANGES: Document ftdump's `-v' option.
Werner Lembergb5d88e82005-11-30 08:55:51 +00002965 Document latest charmap code changes.
Werner Lembergb797fdb2005-11-30 08:48:32 +00002966
Werner Lemberg44e47d52005-11-30 18:47:49 +00002967 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
2968 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
2969
Wu, Chia-I (吳佳一)a28bc4c2005-11-30 02:39:10 +000029702005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
2971
2972 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
2973 tt_cmap12_char_map_binary): Fix compiler warnings.
2974
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +000029752005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
2976
Werner Lemberg44e47d52005-11-30 18:47:49 +00002977 Major update to distinguish between unsorted and overlapping
2978 segments for cmap format 4. For overlapping but sorted segments,
2979 which is previously considered unsorted, we still use binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002980
David Turner5b5f3822005-12-14 16:37:15 +00002981 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002982 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
2983
2984 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
David Turner5b5f3822005-12-14 16:37:15 +00002985 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002986 (tt_cmap4_reset): Removed.
2987 (tt_cmap4_init): Updated accordingly.
2988 (tt_cmap4_next): Updated accordingly.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002989 Take care of overlapping segments.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002990 (tt_cmap4_validate): Make sure the subtable is large enough.
2991 Do not check glyph_ids because some fonts set the length wrongly.
Werner Lemberg05cda082006-01-08 13:37:15 +00002992 Also, if all segments have offset 0, glyph_ids is always invalid.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002993 It does not cause any problem so far only because the check misses
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002994 equality.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002995 Distinguish between unsorted and overlapping segments.
2996 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
2997 to do `charcode => glyph index' by linear/binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002998 (tt_cmap4_char_index, tt_cmap4_char_next): Use
2999 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
3000 (tt_face_build_cmaps): Treat the return value of validator as flags
3001 for cmap.
3002
30032005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
3004
Werner Lemberg44e47d52005-11-30 18:47:49 +00003005 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
3006 New structures and functions for fast `next char'.
3007 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
3008 index' by binary search.
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +00003009 (tt_cmap12_char_index, tt_cmap12_char_next): Use
3010 tt_cmap12_char_map_binary.
3011 (tt_face_build_cmaps): Check table and offset correctly (equality is
3012 missing).
3013
Werner Lemberg4e03fe72006-04-29 06:20:09 +000030142005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003015
3016 * builds/amiga/smakefile: Adjusted the compiler options
3017 to the current sources, now really builds the gxvalid, gzip
3018 and psnames modules.
3019
3020 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
3021 in the file cache was off by one byte which could cause false
3022 errors in font files.
3023
Werner Lemberg6be99f92006-02-09 07:38:57 +000030242005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)6b1c5972005-11-24 05:16:57 +00003025
3026 * builds/mac/FreeType.m68k_far.make.txt,
3027 builds/mac/FreeType.m68k_cfm.make.txt,
3028 builds/mac/FreeType.ppc_classic.make.txt,
3029 builds/mac/FreeType.ppc_carbon.make.txt:
3030 Updated for MPW to build all available modules.
3031
Werner Lemberg4e03fe72006-04-29 06:20:09 +000030322005-11-21 Håvard Wall <haavardw@ifi.uio.no>
Werner Lemberg67ba2112005-11-21 17:32:03 +00003033
3034 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
3035 memory leak.
3036
Werner Lemberg840232a2005-11-21 12:36:42 +000030372005-11-21 Werner Lemberg <wl@gnu.org>
3038
3039 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
3040
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +000030412005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3042
Werner Lemberg840232a2005-11-21 12:36:42 +00003043 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
Werner Lemberg05cda082006-01-08 13:37:15 +00003044 added twice to image_start if image_format was 2 or 5.
Wu, Chia-I (吳佳一)275be9b2005-11-21 03:05:34 +00003045
30462005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3047
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +00003048 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
3049 before loading the table directory.
3050
3051 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
3052 tt_face_load_directory): Delay sfnt_dir_check from
3053 tt_face_load_sfnt_header to tt_face_load_directory.
3054
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +000030552005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
3056
3057 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
3058 error code.
3059 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
3060 is synthesized into a TTC font with one offset table.
3061 (tt_face_load_sfnt_header): Use sfnt_init.
Werner Lemberg05cda082006-01-08 13:37:15 +00003062 Fix an invalid access if the font is TTC and face_index is -1.
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +00003063
Werner Lemberg1a293d62005-11-18 08:23:06 +000030642005-11-18 Werner Lemberg <wl@gnu.org>
3065
3066 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
3067 of metrics instead of aborting. Patch suggested by Derek Noonburg.
3068
Werner Lemberg6c990452005-11-18 21:10:59 +00003069 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3070 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
3071 the glyph properly if no hinter is available.
3072
3073 * docs/CHANGES: Mention scaling bug.
3074
Suzuki, Toshiya (鈴木俊哉)8d81d412005-11-18 07:47:06 +000030752005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3076
3077 * include/freetype/ftgxval.h, src/base/ftgxval.c
3078 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
3079 buffers allocated by gxvalid module.
3080 * include/freetype/ftotval.h, src/base/ftotval.c
3081 (FT_OpenType_Free): New function to free buffer allocated by
3082 otvalid module.
3083
Wu, Chia-I (吳佳一)cb182382005-11-18 04:29:31 +000030842005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
3085
3086 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3087 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3088 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
3089 s/FT_EXPORT/FT_BASE/.
3090
Werner Lemberg4e03fe72006-04-29 06:20:09 +000030912005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner4859ac42005-11-17 14:21:07 +00003092
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003093 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
3094 FT_Trace_Get_Name, FT_Message, FT_Panic),
3095 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
3096 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
3097
Werner Lemberg4e03fe72006-04-29 06:20:09 +000030982005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003099
Werner Lemberg1a293d62005-11-18 08:23:06 +00003100 * builds/amiga/makefile, builds/amiga/makefile.os4,
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003101 builds/amiga/smakefile,
Detlef Würkner4859ac42005-11-17 14:21:07 +00003102 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
Werner Lemberg1a293d62005-11-18 08:23:06 +00003103 build files (added support for the gxvalid module).
Detlef Würkner4859ac42005-11-17 14:21:07 +00003104
Werner Lembergcfc0cf22005-11-17 08:12:00 +000031052005-11-17 Werner Lemberg <wl@gnu.org>
3106
3107 Add vertical metrics support to OpenType CFF outlines. Based on a
Werner Lemberg1a293d62005-11-18 08:23:06 +00003108 patch from Mike Moening <MikeM@RetekSolutions.com>.
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003109
3110 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
3111 (cff_slot_load): Use cff_face_get_vertical_metrics.
3112
3113 * docs/CHANGES: Updated.
3114
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +000031152005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
3116
3117 * src/base/ftcalc.c (FT_MulTo64): Commented out.
3118
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003119 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
3120 src/base/ftcalc.c (FT_SqrtFixed),
3121 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
3122 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003123 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003124 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
3125 include/freetype/internal/ftstream.h (FT_Stream_Open),
3126 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
3127 s/FT_EXPORT/FT_BASE/.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003128
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003129 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
3130 too.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003131
David Turnerf7cc1812005-11-15 17:30:56 +000031322005-11-15 David Turner <david@freetype.org>
3133
Werner Lemberg674ba912005-11-16 18:09:27 +00003134 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
David Turnerf7cc1812005-11-15 17:30:56 +00003135 invalid computations, resulting in very weird bugs in TrueType
Werner Lemberg674ba912005-11-16 18:09:27 +00003136 bytecode hinted fonts.
David Turnerf7cc1812005-11-15 17:30:56 +00003137
Werner Lemberg674ba912005-11-16 18:09:27 +00003138 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
3139 structure copy each time.
David Turnerf7cc1812005-11-15 17:30:56 +00003140
Werner Lembergd829ff72005-11-12 17:07:11 +000031412005-11-11 Werner Lemberg <wl@gnu.org>
3142
3143 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
3144 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
3145
David Turnerf7cc1812005-11-15 17:30:56 +00003146 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
Werner Lembergd829ff72005-11-12 17:07:11 +00003147 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
3148
3149 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
3150 (FT_Sqrt32): Commented out. Unused.
3151
3152 * include/freetype/cache/ftccache.h:
3153 s/ftc_node_destroy/FTC_Node_Destroy/.
3154
3155 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
3156
3157 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
3158 (FTC_Node_Destroy): New exported wrapper function for
3159 ftc_node_destroy.
3160
3161 * src/cache/ftcmanag.c: Include ftccback.c.
3162
Werner Lemberg4309edc2005-11-11 15:49:14 +000031632005-11-10 Werner Lemberg <wl@gnu.org>
3164
3165 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
3166 Comment out. Unused.
3167
Werner Lembergf2c53302005-11-11 16:20:59 +00003168 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
3169
Werner Lemberg4309edc2005-11-11 15:49:14 +000031702005-11-10 Christian Biesinger <cbiesinger@web.de>
3171
3172 * builds/beos/beos.mk: Call beos-def.mk before anything else to
3173 define the separator.
3174
3175 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
3176
Werner Lembergea4c3dc2005-11-08 09:10:16 +000031772005-11-07 Werner Lemberg <wl@gnu.org>
3178
3179 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
3180 table available'. From Sergey Tolstov <stolstov@esri.com>.
3181
Werner Lemberg4e03fe72006-04-29 06:20:09 +000031822005-11-03 Ville Syrjälä <syrjala@sci.fi>
Werner Lembergb2d02532005-11-04 06:58:49 +00003183
3184 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
3185
31862005-11-02 Werner Lemberg <wl@gnu.org>
3187
3188 Make compiling instructions in docs/CUSTOMIZE work again.
3189
3190 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
3191 (CFLAGS): Don't include @CPPFLAGS@.
3192 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
3193
David Turnerdab24542005-11-02 09:24:00 +000031942005-10-28 David Turner <david@freetype.org>
3195
Werner Lembergcee37a32005-11-12 07:34:40 +00003196 Update build system to support the generation of a list of exported
3197 symbols or Windows .DEF files by parsing the public headers with the
Werner Lembergb2d02532005-11-04 06:58:49 +00003198 `apinames' tool located in src/tools/apinames.c.
David Turnerdab24542005-11-02 09:24:00 +00003199
Werner Lembergb2d02532005-11-04 06:58:49 +00003200 Only tested on Unix at the moment. On Windows, the .DEF file is
3201 generated but isn't used yet to generate a DLL.
David Turnerdab24542005-11-02 09:24:00 +00003202
Werner Lembergcee37a32005-11-12 07:34:40 +00003203 * builds/exports.mk: New file.
David Turnerdab24542005-11-02 09:24:00 +00003204
Werner Lembergcee37a32005-11-12 07:34:40 +00003205 * builds/freetype.mk: Include exports.mk.
3206 (dll): New target.
3207 (clean_project_dos): Fix rule.
David Turnerdab24542005-11-02 09:24:00 +00003208
Werner Lembergcee37a32005-11-12 07:34:40 +00003209 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
3210 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
3211 variables for controlling executable extensions.
David Turnerdab24542005-11-02 09:24:00 +00003212
Werner Lembergcee37a32005-11-12 07:34:40 +00003213 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
3214 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
3215 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
3216 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
3217 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
3218 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
3219
3220 * Jamfile (GenExportSymbols): Updated.
3221
3222
3223 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
3224 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
3225 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
3226
3227
3228 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
3229 (FT_MulFix): Performance optimizations.
3230
3231
3232 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
3233 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
3234 checking points and contours. Update callers to use
3235 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
3236 at profile-detected hot-spots.
3237
3238 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
3239 to 0 to not call `AdjustPoints' every time.
3240
David Turnerdab24542005-11-02 09:24:00 +00003241
Werner Lembergb2d02532005-11-04 06:58:49 +00003242 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
3243 FT_Angle_Diff.
David Turnerdab24542005-11-02 09:24:00 +00003244
Werner Lembergcee37a32005-11-12 07:34:40 +00003245 * src/autofit/afhints.c (af_direction_compute): Re-implement.
3246 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
Werner Lembergb2d02532005-11-04 06:58:49 +00003247 AF_ANGLE_DIFF to speed up the detection of inflexions.
David Turnerdab24542005-11-02 09:24:00 +00003248
Werner Lembergcee37a32005-11-12 07:34:40 +00003249
3250 * src/tools/apinames.c: Include <string.h>.
3251 (OutputFormat): New enumeration.
3252 (names_dump): Add two parameters to control output format and DLL
3253 name.
3254 (names_dump_windef): Removed. Code folded into `names_dump'.
3255 (read_header_file): Use isalnum, not isalpha. Otherwise function
3256 names with digits aren't read correctly.
3257 (usage): Updated.
3258 (main): New option `-o' to control output file name.
3259 New option `-d' to indicate DLL file name.
3260 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
3261
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +000032622005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3263
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003264 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
3265 ftlib.prj is unmaintained and incompatible with current tree.
3266 freetype.mak is unrecoverably broken.
3267
3268 * builds/mac/ftlib.prj.xml: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003269 Generated by Metrowerks CodeWarrior 9.0.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003270
3271 * builds/mac/FreeType.m68k_far.make.txt,
3272 builds/mac/FreeType.m68k_cfm.make.txt,
3273 builds/mac/FreeType.ppc_classic.make.txt,
3274 builds/mac/FreeType.ppc_carbon.make.txt: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003275 Skeleton files of MPW makefiles.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003276
3277 * builds/mac/ascii2mpw.py: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003278 Python script to make MPW makefile from skeleton.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003279
3280 * builds/mac/README: Updated.
3281 Almost rewritten to use new files.
3282
32832005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3284
Werner Lemberg05cda082006-01-08 13:37:15 +00003285 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
3286 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +00003287 and George Williams.
3288
Werner Lemberg4b5661c2005-10-27 21:28:35 +000032892005-10-27 Werner Lemberg <wl@gnu.org>
3290
3291 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
3292 Obsolete.
3293
Werner Lemberg43b057b2005-10-26 18:37:40 +000032942005-10-25 Werner Lemberg <wl@gnu.org>
3295
3296 * src/sfnt/sfdriver.c (sfnt_interface): Move out
3297 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
3298 Ibbs <tibs@sj.co.uk>.
3299
Werner Lemberg6c0e7342005-10-23 19:31:01 +000033002005-10-23 Werner Lemberg <wl@gnu.org>
3301
3302 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
3303 C++.
3304
David Turner398d64c2005-10-21 10:01:25 +000033052005-10-21 David Turner <david@freetype.org>
3306
Werner Lemberg90968f72005-10-22 10:34:45 +00003307 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
3308 Another realloc memory counting bug fix.
David Turner398d64c2005-10-21 10:01:25 +00003309
Werner Lemberg90968f72005-10-22 10:34:45 +00003310 * src/tools/Jamfile: Add missing file.
David Turner398d64c2005-10-21 10:01:25 +00003311
Werner Lemberg90968f72005-10-22 10:34:45 +00003312 * src/lzw/Jamfile: Fix incorrect source file reference.
David Turner398d64c2005-10-21 10:01:25 +00003313
David Turnerc1b6d082005-10-20 15:33:34 +000033142005-10-20 David Turner <david@freetype.org>
3315
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003316 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
3317 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
3318 to better account for memory reallocations.
David Turnerc1b6d082005-10-20 15:33:34 +00003319
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003320 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
David Turner398d64c2005-10-21 10:01:25 +00003321 src/lzw/rules.mk: First version of LZW loader re-implementation.
3322 Apparently, this saves about 330 KB of heap memory when loading
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003323 timR24.pcf.Z.
David Turnerc1b6d082005-10-20 15:33:34 +00003324
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +000033252005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
3326
3327 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
3328 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003329 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
3330 FT_EXPORT/FT_EXPORT_DEF tagging.
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +00003331
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +000033322005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003333
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003334 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
3335 be invalid when FT_LOAD_NO_SCALE is set.
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003336
33372005-10-17 David Turner <david@freetype.org>
3338
3339 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
3340 FT_New_Size if we are opening a face with face_index < 0 (which is
3341 only used for testing the format).
3342
3343 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
3344 Remove compiler warning.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003345
33462005-10-16 David Turner <david@freetype.org>
3347
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003348 * src/tools/apinames.c: Add new tool to extract public API function
3349 names from header files.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003350
33512005-10-05 Werner Lemberg <wl@gnu.org>
3352
3353 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
3354 a hinting engine of its own.
3355
3356 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
3357
3358 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
3359 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
3360 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
3361 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
3362 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
3363
3364 * docs/CHANGES: Document it.
3365
33662005-09-27 Werner Lemberg <wl@gnu.org>
3367
3368 * builds/unix/freetype2.m4: Add license exception so that the file
3369 can be used in any other autoconf script.
3370
33712005-09-26 David Turner <david@freetype.org>
3372
3373 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
3374 computation of the `vertical' flag, causing ugly things in LCD mode
3375 and others.
3376
33772005-09-23 David Turner <david@freetype.org>
3378
3379 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
3380 prevented internal hint mode bitflags from being computed correctly.
3381
3382 * src/base/Jamfile: Adding src/base/ftgxval.c.
3383
3384 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
3385 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
3386 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
3387 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3388 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3389 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
3390 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3391 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
3392 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
3393 src/truetype/ttgload.c: Remove _many_ compiler warnings when
3394 compiling with Visual C++ at maximum level (/W4).
3395
3396 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
3397 implementation with one using lookup tables. This simple thing
3398 speeds up glyph loading by 18%, according to ftbench!
3399
3400 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
3401 `get_sfnt' and `load_sfnt' module interfaces.
3402
34032005-09-22 Werner Lemberg <wl@gnu.org>
3404
3405 * docs/CHANGES: Mention SING Glyphlet support.
3406
34072005-09-22 David Turner <david@freetype.org>
3408
3409 * src/base/Jamfile: Disable compilation of ftgxval module
3410 temporarily.
3411
34122005-09-19 David Somers <dsomers@omz13.com>
3413
3414 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
3415 font to have no `head' table if tables `SING' and `META' are
3416 present; this is to support `SING Glyphlet'.
3417
3418 `SING Glyphlet' is an extension to OpenType developed by Adobe
3419 primarily to facilitate adding supplemental glyphs to an OpenType
3420 font (with emphasis on, but not necessariy limited to, gaiji to a
3421 CJK font). A SING Glyphlet Font is an OpenType font that contains
3422 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
3423 `cmap', `BASE', and `GSUB' tables are present with the same format
3424 and functionaliy as a regular OpenType font; there are no `name',
3425 `head', `OS/2', and `post' tables; there are two new tables, `SING'
3426 which contains details about the glyphlet, and `META' which contains
3427 metadata.
3428
3429 Further information on the SING Glyphlet format can be found at:
3430
3431 http://www.adobe.com/products/indesign/sing_gaiji.html
3432
3433 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
3434 macros for the OpenType tables `SING' and `META'. These two tables
3435 are used in SING Glyphlet Format fonts.
3436
34372005-09-09 Werner Lemberg <wl@gnu.org>
3438
3439 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
3440 FT_FACE_FLAG_KERNING which has been commented out erroneously.
3441
3442 * docs/CHANGES: Document it.
3443
34442005-09-05 Werner Lemberg <wl@gnu.org>
3445
3446 Fixes for `make multi' and using C++ compiler.
3447
3448 * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
3449 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
3450 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
3451 (gxv_compare_ranges): Make it static.
3452 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
3453 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
3454 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
3455 trace messages.
3456 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
3457 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3458 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
3459 gxvcommn.h.
3460
3461 * gxvalid/gxvcommn.h: Add prototypes for
3462 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
3463 gxv_XStateTable_validate, gxv_array_getlimits_byte,
3464 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
3465 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
3466 gxv_odtect_validate.
3467 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3468 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
3469 gxvcommn.c.
3470
3471 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
3472 gxv_bsln_parts_fmt1_validate): Improve trace messages.
3473
3474 * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
3475 * gxvalid/gxvfeat.h: New file.
3476
3477 * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
3478 message.
3479
3480 * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
3481 (gxv_kern_subtable_fmt1_valueTable_load,
3482 gxv_kern_subtable_fmt1_subtable_setup,
3483 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
3484 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
3485 Improve trace message.
3486 (gxv_kern_validate_generic): Fix C++ compiler error.
3487 Improve trace message.
3488 (gxv_kern_validate_classic): Fix C++ compiler error.
3489
3490 * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
3491 with FT_LOCAL_DEF.
3492
3493 * gxvalid/gxvmort1.c
3494 (gxv_mort_subtable_type1_substitutionTable_load,
3495 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
3496 (gxv_mort_subtable_type1_substTable_validate): Improve trace
3497 message.
3498 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3499
3500 * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
3501 gxv_mort_subtable_type2_subtable_setup,
3502 gxv_mort_subtable_type2_ligActionOffset_validate,
3503 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
3504 errors.
3505 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3506
3507 * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
3508 with FT_LOCAL_DEF.
3509
3510 * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
3511 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
3512 errors.
3513 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3514
3515 * gxvalid/gxvmort.c: Include gxvfeat.h.
3516 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
3517 Declare with FT_LOCAL_DEF.
3518 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
3519 messages.
3520
3521 * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
3522
3523 * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
3524 with FT_LOCAL_DEF.
3525
3526 * gxvalid/gxvmorx1.c
3527 (gxv_morx_subtable_type1_substitutionTable_load,
3528 gxv_morx_subtable_type1_subtable_setup,
3529 gxv_morx_subtable_type1_entry_validate,
3530 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
3531 compiler errors.
3532 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3533
3534 * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
3535 gxv_morx_subtable_type2_subtable_setup,
3536 gxv_morx_subtable_type2_ligActionIndex_validate,
3537 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
3538 errors.
3539 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3540 Fix typo.
3541
3542 * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
3543 with FT_LOCAL_DEF.
3544
3545 * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
3546 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
3547 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3548
3549 * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
3550 gxv_morx_validate): Improve trace message.
3551
3552 * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
3553 warnings.
3554 (gxv_opbd_validate): Improve trace message.
3555
3556 * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
3557 appropriate.
3558 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
3559 message.
3560
3561 * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
3562 parameter. Update all callers.
3563 (gxv_trak_validate): Improve trace message.
3564
3565 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
3566
35672005-09-01 Werner Lemberg <wl@gnu.org>
3568
3569 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
3570
3571 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
3572 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
3573 typo.
3574
3575 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3576 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
3577 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
3578 messages.
3579 Decorate constants with `U' and `L' where appropriate.
3580 Fix compiler warnings.
3581
35822005-08-31 Werner Lemberg <wl@gnu.org>
3583
3584 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
3585
3586 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
3587
3588 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
3589
3590 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
3591 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
3592 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3593 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3594 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
3595 messages.
3596 Decorate constants with `U' and `L' where appropriate.
3597 Fix compiler warnings.
3598
35992005-08-30 Werner Lemberg <wl@gnu.org>
3600
3601 * src/gxvalid/README: Revised.
3602 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
3603 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
3604 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
3605 parameter. Update all callers.
3606 Improve trace messages.
3607 Some formatting.
3608
36092005-08-29 Werner Lemberg <wl@gnu.org>
3610
3611 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
3612 a preliminary section with some explanations about user allocation.
3613
3614 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
3615 Don't abort if there are no data types, functions, etc., in a
3616 section.
3617 Print synopsis only if we have a data type, function, etc.
3618
3619 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
3620 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
3621 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
3622
36232005-08-28 George Williams <gww@silcom.com>
3624
3625 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
3626 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
3627
36282005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
3629
3630 * builds/unix/freetype2.in (CFlags): Add missing directory.
3631
36322005-08-24 Werner Lemberg <wl@gnu.org>
3633
3634 * docs/CHANGES: Mention gxvalid module.
3635
36362005-08-23 Werner Lemberg <wl@gnu.org>
3637
3638 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
3639 render mode properly. Reported by chris@dokein.co.uk.
3640
Werner Lemberg6be99f92006-02-09 07:38:57 +000036412005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003642
3643 Add gxvalid module to validate TrueType GX/AAT tables.
3644
3645 Modifications on existing files:
3646
3647 * Jamfile: Register gxvalid module.
3648 * src/base/Jamfile: Register ftgxval.c.
3649 * src/base/rule.mk: Register ftgxval.c.
3650 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
3651
3652 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
3653 to include gxvalid header file.
3654 * include/freetype/config/ftmodule.h: Register gxv_module_class.
3655
3656 * include/freetype/ftchapters.h: Add comment about gx_validation.
3657 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
3658 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
3659 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
3660
3661 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
3662 macro for gxvalid service.
3663 * include/freetype/internal/fttrace.h: Add trace facilities for
3664 gxvalid.
3665
3666 New files on existing directories:
3667
3668 * include/freetype/internal/services/svgxval.h: Registration of
3669 validation service for TrueType GX/AAT and classic kern table.
3670 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
3671 * src/base/ftgxval.c: Public API of gxvalid.
3672
3673 New files under src/gxvalid/:
3674
3675 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
3676 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
3677 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
3678 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
3679 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
3680 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
3681 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
3682 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
3683 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
3684 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
3685 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
3686 src/gxvalid/gxvtrak.c: New files, gxvalid body.
3687
36882005-08-21 Werner Lemberg <wl@gnu.org>
3689
3690 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
3691 to (0,0) if bit 1 of the `head' table isn't set. This improves
3692 rendering of buggy fonts.
3693
36942005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
3695
3696 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
3697 ttmetrics here. TrueType fonts with only sbits always have
3698 ttmetrics.valid set to false.
3699
3700 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
3701 valid before loading outline glyph.
3702
3703 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
3704
37052005-08-20 Werner Lemberg <wl@gnu.org>
3706
3707 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
3708 `hhea' table for SFNT Mac fonts. Change based on a patch by
3709 mpsuzuki@hiroshima-u.ac.jp.
3710
37112005-08-20 Masatake YAMATO <jet@gyve.org>
3712
3713 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
3714 of ft_setjmp.
3715
37162005-08-19 Werner Lemberg <wl@gnu.org>
3717
3718 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
3719 warnings.
3720
37212005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3722
3723 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
3724 messages.
3725
37262005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3727
3728 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
3729 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
3730 with slight changes.
3731 Update all callers.
3732 (TT_New_Context): Now takes TT_Driver argument directly.
3733 Update all callers.
3734
3735 * src/truetype/ttobjs.h (tt_slot_init): New function.
3736 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
3737 context here.
3738 (tt_slot_init): New function to create extra points for the internal
3739 glyph loader. We then use it directly, instead of face's glyph
3740 loader, when loading glyph.
3741
3742 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
3743 glyph slot initialization.
3744 (Load_Glyph): Load flag dependencies are handled here. Return error
3745 if size is NULL.
3746
3747 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
3748 (org_to_cur): Removed.
3749 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
3750 (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
3751 (TT_Process_Simple_Glyph): s/load/loader/.
3752 Use loader->pp values instead of recalculation.
3753 Use TT_Hint_Glyph.
3754 No need to save/restore loader->stream before and after
3755 TT_Vary_Get_Glyph_Deltas now.
3756 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
3757 points.
3758 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
3759 Savannah bug #13107.
3760 Forget glyph frame before calling TT_Process_Simple_Glyph.
3761 Use TT_LOADER_SET_PP.
3762 Scale all four phantom points.
3763 Split off some functionality to ...
3764 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
3765 new functions.
3766 (TT_Load_Glyph): Set various fields of `glyph' here, not in
3767 load_truetype_glyph and compute_glyph_metrics.
3768 Split off some functionality to ...
3769 (load_sbit_image, tt_loader_init): These new functions.
3770 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
3771
37722005-08-08 Werner Lemberg <wl@gnu.org>
3773
3774 * docs/INSTALL.ANY: Updated.
3775
37762005-08-05 Werner Lemberg <wl@gnu.org>
3777
3778 * src/cff/cffgload.c (cff_builder_close_contour),
3779 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
3780 zero `outline' pointer.
3781
3782 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
3783 `loader' address.
3784
37852005-08-03 Werner Lemberg <wl@gnu.org>
3786
3787 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
3788 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
3789 to make X work again.
3790
37912005-08-02 Werner Lemberg <wl@gnu.org>
3792
3793 * src/otvalid/otvcommn.h: Remove dead code.
3794
37952005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
3796
3797 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
3798 functions.
3799
3800 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
3801 functions.
3802 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
3803 zone.
3804 Move code that runs fpgm to tt_size_run_fpgm.
3805 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
3806 (tt_glyphzone_new): Allocate right size of arrays.
3807 Set max_points and max_contours properly.
3808
38092005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
3810
3811 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
3812 computations and clean up.
3813
3814 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
3815 internal copy of metrics.
3816
38172005-07-12 Werner Lemberg <wl@gnu.org>
3818
3819 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
3820 Reported by Xerxes.
3821
38222005-07-04 Werner Lemberg <wl@gnu.org>
3823
3824 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
3825 Reported by Brett Hutley.
3826
38272005-06-30 David Turner <david@freetype.org>
3828
3829 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
3830 Removing compiler warnings (Visual C++ /W4).
3831
3832
3833 Implement a work-around for broken C preprocessor in Visual C++ (it
3834 has been confirmed by the MS developers that it is indeed a bug
3835 which won't be fixed in the very near future).
3836
3837 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
3838
3839 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
3840 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
3841 avoid argument expansion by argument prescan.
3842 Append `Func' to all affected macros and change them to take just a
3843 single argument. Example: `AttachList' is renamed to
3844 `AttachListFunc'.
3845
3846 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
3847 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
3848 affected by the changes to OTV_NESTx and modify them to take just a
3849 single argument.
3850
38512005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
3852
3853 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
3854 ft_glyphslot_grid_fit_metrics.
3855
3856 * src/truetype/ttgload.c (compute_glyph_metrics): Use
3857 ft_glyphslot_grid_fit_metrics.
3858
3859 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3860 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
3861 ft_glyphslot_grid_fit_metrics.
3862 FT_Outline_Get_CBox is called twice.
3863
3864 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
3865 reasonable values when emboldening outline glyphs. The theoretic
3866 ones are unrealistic.
3867
38682005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
3869
3870 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
3871 halved.
3872
3873 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
3874 strength.
3875 Don't increase slot->advance.y.
3876
38772005-06-16 Werner Lemberg <wl@gnu.org>
3878
3879 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
3880 (FREETYPE_PATCH): Set to 0.
3881
3882 * builds/unix/configure.ac (version_info): Set to 9:9:3.
3883 Currently, we are still binary compatible.
3884
3885 * builds/win32/visualc/index.html,
3886 builds/win32/visualc/freetype.dsp,
3887 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
3888
3889 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
3890 s/2.1.9/2.1.10/.
3891
3892 * docs/CHANGES, docs/VERSION.DLL: Updated.
3893
3894 * ChangeLog: Split off older entries into...
3895 * ChangeLog.20, ChangeLog.21: These new files.
3896
38972005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
3898
3899 The next release will be 2.2.0, so don't worry about source code
3900 backwards compatibility.
3901
3902 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
3903 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
3904 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
3905 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
3906 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
3907 parameters with `const' where appropriate.
3908
39092005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
3910
3911 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
3912 to make glyphs centered vertically.
3913
3914 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
3915 vertBearingY to make glyphs centered vertically.
3916 Fix some bugs in vertical metrics:
3917
3918 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
3919 units.
3920 . As we use the glyph's cbox to calculate the top bearing now
3921 there iss no need to adjust `top'.
3922
39232005-06-15 Werner Lemberg <wl@gnu.org>
3924
3925 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
3926 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
3927
39282005-06-13 Werner Lemberg <wl@gnu.org>
3929
3930 * docs/release: Update.
3931
3932----------------------------------------------------------------------------
3933
Werner Lemberg435046b2006-01-11 10:57:42 +00003934Copyright 2005, 2006 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003935David Turner, Robert Wilhelm, and Werner Lemberg.
3936
3937This file is part of the FreeType project, and may only be used, modified,
3938and distributed under the terms of the FreeType project license,
3939LICENSE.TXT. By continuing to use, modify, or distribute this file you
3940indicate that you have read the license and understand and accept it
3941fully.
3942
3943
3944Local Variables:
3945version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00003946coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003947End: