blob: 1527a0129a892589f57f03f6997aabd9baba8a88 [file] [log] [blame]
David Turner038ace22007-01-11 15:00:59 +000012007-01-11 David Turner <david@freetype.org>
2
David Turner490503a2007-01-11 15:29:41 +00003 * docs/CHANGES: small update
4
David Turner2c7a7fb2007-01-11 15:14:16 +00005 * builds/unix/configure.ac: updating libtool version number to 9.11.3
6
David Turner7a3c5642007-01-11 15:09:01 +00007 * src/base/ftobjs.c (IsMacResource): fixed a small bug that caused a
8 crash with some Mac OS X .dfont files. Submitted by Masatake Yamoto.
9
David Turner038ace22007-01-11 15:00:59 +000010 * autogen.sh: small fix to get it working on Mac OS X properly,
11 the issue is that GNU libtool is called "glibtool" on this platform,
12 and we must call "glibtoolize", since "libtoolize" doesn't exist
13
David Turner2628ea92007-01-10 13:15:56 +0000142007-01-10 David Turner <david@freetype.org>
15
David Turner72011082007-01-10 14:33:18 +000016 * all-sources: tagging all sources with VER-2-3-0-RC1 and
17 VER-2-3-0
18
David Turnerd5ca7472007-01-10 14:18:15 +000019 * Jamfile, README, builds/win32/visualc/freetype.dsp,
20 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL,
21 include/freetype/freetype.h, include/freetype/t1tables.h,
22 include/freetype/internal/tttypes.h: updating version
23 number to 2.3.0 !!
24
25 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
26 include/freetype/ftlcdfil.h: updating reference documentation
27 with GASP support and LCD filtering sections
28
David Turner2628ea92007-01-10 13:15:56 +000029 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections):
30 fixed a typo which created an endless loop with some malformed
31 font files
32
Werner Lembergbf02d392007-01-10 07:07:37 +0000332007-01-10 Derek Clegg <dclegg@apple.com>
34
35 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
36 values.
37
David Turnerf48b60e2007-01-08 15:15:32 +0000382007-01-08 David Turner <david@freetype.org>
39
Werner Lembergcc7f12a2007-01-09 10:37:36 +000040 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +000041
Werner Lembergcc7f12a2007-01-09 10:37:36 +000042 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
43 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +000044 corresponding to a given character pixel size.
45
Werner Lembergcc7f12a2007-01-09 10:37:36 +000046 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
47 `gasp' table, in order to avoid potential problems with later
48 versions.
David Turnerf48b60e2007-01-08 15:15:32 +000049
Werner Lembergcc7f12a2007-01-09 10:37:36 +000050 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
51 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +000052
Werner Lembergcc7f12a2007-01-09 10:37:36 +000053 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
54 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
55 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
56 default build.
David Turnerf48b60e2007-01-08 15:15:32 +000057
Werner Lemberge6b6f372007-01-07 00:06:47 +0000582007-01-07 Werner Lemberg <wl@gnu.org>
59
Werner Lembergb8004d22007-01-07 09:13:38 +000060 * src/cid/cidparse.c (cid_parser_new): Improve error message for
61 Type 11 fonts.
62 Scan for `/sfnts' token.
63
642007-01-07 Werner Lemberg <wl@gnu.org>
65
66 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +000067
Werner Lembergbe5f7972007-01-06 07:51:48 +0000682007-01-06 Werner Lemberg <wl@gnu.org>
69
70 * src/cff/cffload.c (cff_index_init): Remove unused variable.
71 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
72
David Turnera8cf42b2007-01-04 16:46:46 +0000732007-01-04 David Turner <david@freetype.org>
74
Werner Lembergf6294392007-01-06 07:47:45 +000075 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
76 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +000077
Werner Lembergf6294392007-01-06 07:47:45 +000078
79 Do not allocate interpreter-specific tables in memory if we are not
80 going to load glyphs with the bytecode interpreter anyway.
81
82 * src/truetype/ttgload.c (tt_loader_init): Load execution context
83 only if glyph is hinted.
84 Updated.
85 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
86 and `cvs_ready'.
87 Add `tt_size_ready_bytecode' declaration.
88 * src/truetype/ttobjs.c (tt_size_done_bytecode,
89 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
90 (tt_size_init): Move most code into `tt_size_init_bytecode'.
91 (tt_size_done): Move most code into `tt_size_done_bytecode'.
92 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
David Turner384be232007-01-05 15:32:01 +000093
David Turner91a34022007-01-05 14:47:08 +000094
Werner Lembergf6294392007-01-06 07:47:45 +000095 Don't extract the metrics table from the SFNT font file. Instead,
96 reparse it on each glyph load. The runtime difference is not
97 noticeable, and it can save a lot of heap memory when memory-mapped
98 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +000099
Werner Lembergf6294392007-01-06 07:47:45 +0000100 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
101 `horz_metrics_offset' and `vert_metrics_ofset'.
102 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
103 Updated.
104
105
106 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
107
108
109 Do not load the CFF index offsets into memory, since this wastes a
110 *lot* of heap memory with large Asian CFF fonts. There is no
111 significant performance loss.
112
113 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
114 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
115 `data_size'.
116 (CFF_CharsetRec): Add field `num_glyphs'.
117
118 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
119 cff_charset_cid_to_gindex): New functions.
120 (cff_new_index): Renamed to...
121 (cff_index_init): This. Update all callers.
122 Updated -- some code has been moved to `cff_index_load_offsets'.
123 (cff_done_index): Renamed to...
124 (cff_index_done): This. Update all callers.
125 (cff_index_get_pointers, cff_index_access_element): Updated to use
126 stream offsets.
127 (cff_charset_compute_cids): Set `num_glyphs' field.
128 (cff_encoding_load): Updated.
129
130 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000131
1322007-01-04 David Turner <david@freetype.org>
133
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000134 * docs/INSTALL.UNIX: Simplify some parts, add reference to
135 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000136
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000137 * README.CVS: Add common problem description and solution
138 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000139
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000140 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000141
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000142 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000143
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000144 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000145
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000146 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
147 (TWorker): This.
148 Remove `count_table' and `memory'.
149 Make `grays' a pointer.
150 (TRaster): New structure.
151 (count_table): New static array.
152 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
153 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
154 ft_black_set_mode, ft_black_render): Updated.
155 (ft_black_init): Don't initialize `count_table'.
156 (ft_black_reset): Use the render pool. This saves about 6KB of
157 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000158
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000159 * src/smooth/ftgrays.c (TRaster): Replaced with...
160 (TWorker): This.
161 Remove `memory'.
162 (TRaster): New structure.
163
164 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
165 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
166 gray_render_span, gray_raster_render): Updated.
167 (gray_raster_reset): Use the render pool. This saves about 6KB of
168 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000169
David Turner8a6c44e2007-01-04 17:03:11 +0000170 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
171 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000172 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
173 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
174 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000175
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000176 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
177 Remove a typo that results in no hinting and a memory leak with some
178 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000179
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000180 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000181 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000182 CFF_Faces in it. We need to close all faces before destroying the
183 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000184
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001852007-01-02 Werner Lemberg <wl@gnu.org>
186
187 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
188 Remove compiler warning.
189
David Turner9207e002007-01-02 16:58:13 +00001902007-01-02 David Turner <david@freetype.org>
191
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000192 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000193
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001942006-12-31 Masatake YAMATO <jet@gyve.org>
195
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000196 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
197 function.
198 Check uniqueness of the gid pairs.
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000199 (gxv_kern_subtable_fmt0_validate): Move some code to
200 `gxv_kern_subtable_fmt0_pairs_validate'.
201
David Turner115b4422006-12-22 11:37:05 +00002022006-12-22 David Turner <david@freetype.org>
203
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000204 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
205 warnings.
David Turner115b4422006-12-22 11:37:05 +0000206
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000207 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
208 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000209
Werner Lemberg4755bf72006-12-16 08:58:44 +00002102006-12-16 Anders Kaseorg <anders@kaseorg.com>
211
212 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
213 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
214
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00002152006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
216
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +0000217 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000218 sync with the modification by Jens Claudius on 2006-08-22; cf.
219 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 +0000220
2212006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
222
223 * src/base/ftmac.c: Specialized for Mac OS X only.
224 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
225 * builds/unix/configure.raw: Ditto. When explicit switches for
226 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
227 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
228
2292006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
230
231 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
232 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
233 instead of src/base/ftmac.c
234 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
235 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
236 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
237 that cannot be built at present.
238
2392006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
240
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000241 * src/base/ftobjs.c: Improvement of resource fork handler for
242 POSIX, cf.
243 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000244 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
245 format or .dfont, to simulate the face index number counted by ftmac.c.
246 (IsMacResource): Return the number of scalable faces correctly.
247
Werner Lembergec5b4502006-12-10 07:51:38 +00002482006-12-10 Werner Lemberg <wl@gnu.org>
249
250 * builds/toplevel.mk (version): Protect against `distclean' target.
251
Werner Lembergb26b3142006-12-09 20:01:43 +00002522006-12-09 Werner Lemberg <wl@gnu.org>
253
254 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
255 or `type'.
256
257 * builds/freetype.mk (version): Extracted from freetype.h, using
258 GNU make's built-in string functions.
259 (refdoc): Use $(version) instead of static version number.
260
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00002612006-12-08 Werner Lemberg <wl@gnu.org>
262
263 * builds/toplevel.mk (dist): Extract version number from freetype.h.
264
Werner Lemberg15c29502006-12-09 07:29:54 +00002652006-12-08 Vladimir Volovich <vvv@vsu.ru>
266
267 * src/tools/apinames (State): Remove final comma in structure -- xlc
268 v5 under AIX 4.3 doesn't like this.
269
David Turnerdbf3b432006-12-07 21:18:09 +00002702006-12-07 David Turner <david@freetype.org>
271
Werner Lemberg256a3512006-12-08 06:49:33 +0000272 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
273 to the spacing of auto-fitted glyphs. This only impacts rare
274 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000275
Werner Lemberg11171312006-12-03 09:43:40 +00002762006-12-03 Werner Lemberg <wl@gnu.org>
277
278 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
279
Werner Lemberg960ba592006-12-01 08:20:47 +00002802006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000281
Werner Lemberg960ba592006-12-01 08:20:47 +0000282 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
283 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
284 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000285
David Turner80658e52006-11-28 08:09:20 +0000286
Werner Lemberg960ba592006-12-01 08:20:47 +0000287 * include/freetype/ftxf86.h: Fix and extend comment so that it
288 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000289
Werner Lemberg960ba592006-12-01 08:20:47 +0000290 * include/freetype/ftchapters.h: Add `font_format' section.
291
292
293 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
294 to TOC in index page.
295
2962006-11-28 David Turner <david@freetype.org>
297
298 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
299 trying to render into a zero-width/height bitmap, not an error code.
300
301 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
302
303 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
304 ones instead.
305
306 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
307 variable.
David Turner80658e52006-11-28 08:09:20 +0000308
Werner Lemberg8636c292006-11-26 22:28:13 +00003092006-11-26 Pierre Hanser <hanser@club-internet.fr>
310
311 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
312
Werner Lemberg960ba592006-12-01 08:20:47 +00003132006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000314
Werner Lemberg960ba592006-12-01 08:20:47 +0000315 * src/autofit/afhints.c (af_glyph_hints_dump_points,
316 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
317 Add stubs to link the `ftgrid' test program when debugging is
318 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000319
Werner Lemberg960ba592006-12-01 08:20:47 +00003202006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000321
322 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000323 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
324
325 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
326 Emit more sensible information.
327
328 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
329
330 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
331 rounding of blue values.
332 (af_latin_hints_compute_segments): Hint segment heights.
333 (af_latin_hints_link_segments): Reduce `len_score' value.
334 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
335 value and use `height' member for comparisons.
336 (af_latin_hint_edges): Extend logging message.
337 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000338
Werner Lemberg91959bf2006-11-22 10:36:55 +00003392006-11-22 Werner Lemberg <wl@gnu.org>
340
341 Fix Savannah bug #15553.
342
343 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
344 program after a change from mono to grayscaling (and vice versa).
345 Use correct constant for comparison to get `exec->grayscale'.
346
Werner Lemberg913a3652006-11-19 09:19:17 +00003472006-11-18 Werner Lemberg <wl@gnu.org>
348
349 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000350 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000351 This patch fixes Savannah bug #18301.
352
353 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
354 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
355 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
356 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
357 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
358 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
359 (FNT_Load_Glyph): Check validity of `glyph_index'.
360
David Turner7bab6ae2006-11-13 11:25:06 +00003612006-11-13 David Turner <david@freetype.org>
362
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000363 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
364 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000365
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000366 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
367 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
368 when building the library to change the default LCD filter to be
369 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000370
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000371 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000372
David Turner8765c712006-11-10 16:49:42 +00003732006-11-10 David Turner <david@freetype.org>
374
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000375 * src/smooth/ftsmooth.c: API change for the LCD
376 filter. The FT_LcdFilter value is an enumeration describing which
377 filter to apply, with new values FT_LCD_FILTER_LIGHT and
378 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
379 algorithm which produces strong color fringes for everything
380 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000381
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000382 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
383 second parameter to an enum type.
384
385 * src/base/ftlcdfil.c (USE_LEGACY): Define.
386 (_ft_lcd_filter): Rename to...
387 (_ft_lcd_filter_fir): This.
388 Update parameters.
389 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
390 (FT_Library_Set_LcdFilter): Update parameters.
391 Handle new filter modes.
392
393 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
394 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
395 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
396 callback and update other fields.
397
398 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
399 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
400 Other minor improvements.
401
402 * src/autofit/aflatin.c: Various tiny improvements that drastically
403 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
404 (af_latin_hints_compute_edges): Fix typo.
405 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000406
David Turner4e9cc3c2006-11-09 16:31:52 +00004072006-11-09 David Turner <david@freetype.org>
408
Werner Lemberg49c77a82006-11-09 21:51:57 +0000409 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
410 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000411
Werner Lemberg5e430892006-11-07 09:35:03 +00004122006-11-07 Zhe Su <james.su@gmail.com>
413
414 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
415 also.
416
Werner Lemberg111b5ae2006-11-03 09:40:12 +00004172006-11-03 Werner Lemberg <wl@gnu.org>
418
419 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
420
David Turner40604742006-11-02 16:37:35 +00004212006-11-02 David Turner <david@freetype.org>
422
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000423 Add a few tweaks to better handle serif fonts.
424 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000425
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000426 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
427 segments that are less than 1.5 pixels high. This gets rid of
428 *many* corner cases with serifs.
429 (af_latin_align_linked_edge): Add logging message.
430 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
431 Add logging messages.
432 Handle AF_EDGE_FLAG flag specially.
433
434 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
435 _af_debug_disable_blue_hints, and _af_debug_hints variables.
436
437 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
438 Update external declarations.
439 (af_corner_orientation, af_corner_is_flat): Replaced by...
440
441 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
442 ft_corner_is_flat): These declarations.
443
444 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
445 Comment out. Replaced by...
446
447 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
448 These functions. Update all callers.
449 (FT_Add64) [!FT_LONG64]: Simplify.
450
451 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
452 (af_direction_compute): Add a missing FT_ABS call. This bug caused
453 production of garbage by missing lots of segments.
454
455 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
456
457 * src/autofit/afloader.c (af_loader_init, af_loader_done)
458 [AF_DEBUG]: Set _af_debug_hints.
459
460
461 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
462 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
463 and ft_corner_orientation.
464
465
466 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000467
Werner Lemberge88c5262006-10-24 05:46:26 +00004682006-10-24 Werner Lemberg <wl@gnu.org>
469
470 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
471
472 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
473 as argument.
474
David Turnera1861392006-10-23 16:00:59 +00004752006-10-23 Zhe Su <zsu@novell.com>
476
Werner Lemberg715e96e2006-10-24 05:28:45 +0000477 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
478 better deal with broken Asian fonts with strange glyphs, having
479 self-intersections and other peculiarities. The used algorithm is
480 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000481
David Turnere140f142006-10-23 08:56:57 +00004822006-10-23 David Turner <david@freetype.org>
483
Werner Lemberg715e96e2006-10-24 05:28:45 +0000484 Speed up the CFF font loader. With some large CFF fonts,
485 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000486
Werner Lemberg715e96e2006-10-24 05:28:45 +0000487 * src/cff/cffload.c (cff_get_offset): Removed.
488 (cff_new_index): Inline functionality of `cff_get_offset'.
489 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
490 (cff_charset_done): Call `cff_charset_free_cids'.
491 (cff_charset_load): Call `cff_charset_compute_cids'.
492 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
493
494 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
495 with FT_NEXT_XXX.
496
497
498 Speed up the Postscript hinter, with more than 100% speed increase
499 on my machine.
500
501 * src/pshinter/pshalgo.c (psh_corner_is_flat,
502 psh_corner_orientation): New functions.
503 (psh_glyph_compute_inflections): Merge loops for efficiency.
504 Use `psh_corner_orientation'.
505 (psh_glyph_init): Use `psh_corner_is_flat'.
506 (psh_hint_table_find_strong_point): Renamed to...
507 (psh_hint_table_find_strong_points): This.
508 Rewrite, adding argument to handle all points at once.
509 Update all callers.
510 (PSH_MAX_STRONG_INTERNAL): New macro.
511 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000512
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00005132006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
514
515 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000516 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000517
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00005182006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
519
520 * docs/INSTALL.CROSS: New document file for cross-building.
521
522 * builds/unix/configure.raw: Preliminary cross-building support.
523 Find native C compiler and pass it by CC_BUILD, and
524 find suffix for native executable and pass it by EXEEXT_BUILD.
525 Also suffix for target executable is passed by EXEEXT.
526
Werner Lembergb9e6d692006-10-15 08:58:40 +0000527 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
528 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000529 CC_BUILD and EXEEXT_BUILD.
530
Werner Lembergb9e6d692006-10-15 08:58:40 +0000531 * builds/exports.mk (APINAMES_EXE): Change the extension for
532 apinames from the suffix for target (E) to that for building host
533 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000534
Werner Lemberg82a07e92006-10-12 06:20:44 +00005352006-10-12 Werner Lemberg <wl@gnu.org>
536
537 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
538 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
539 which reference those files.
540
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00005412006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
542
Werner Lembergb9e6d692006-10-15 08:58:40 +0000543 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
544 embedded in freetype2.pc and freetype-config. Use it to record
545 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000546
547 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
548
549 * builds/unix/freetype-config.in: Ditto.
550
Werner Lemberg28e17d92006-10-11 17:27:47 +00005512006-10-11 Werner Lemberg <wl@gnu.org>
552
553 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
554 development.
555
Jens Claudius336d2292006-10-03 08:53:37 +00005562006-10-03 Jens Claudius <jens.claudius@yahoo.com>
557
558 * include/freetype/config/ftstdlib.h: Cast away volatileness from
559 argument to ft_setjmp.
560
561 * include/freetype/internal/ftvalid.h: Add comment that
562 ft_validator_run must not be used.
563
Werner Lemberg2863cfa2006-10-01 17:04:00 +00005642006-10-01 Werner Lemberg <wl@gnu.org>
565
566 * src/base/ftbase.c: Undo change from 2006-09-30.
567
568 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
569
5702006-09-30 David Turner <david@freetype.org>
571
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000572 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
573 s/unpatented_hinting/ignore_unpatented_hinter/.
574 Update all callers.
575
576 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
577 auto-hinting shall be used or not.
578
579 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000580
Werner Lemberg2863cfa2006-10-01 17:04:00 +00005812006-09-30 Werner Lemberg <wl@gnu.org>
582
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000583 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
584 in use).
585
586 * src/base/ftbase.c: Include `ftlcdfil.c'.
587
Werner Lemberg9b15ea32006-09-29 18:22:11 +00005882006-09-29 Werner Lemberg <wl@gnu.org>
589
590 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
591 overlapping segments. Bug reported by Stefan Koch.
592
David Turnerad830712006-09-27 16:20:59 +00005932006-09-28 David Turner <david@freetype.org>
594
Werner Lemberg2c002e12006-09-29 21:31:53 +0000595 Fix a bug in the automatic unpatented hinting support which prevents
596 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000597
Werner Lemberg2c002e12006-09-29 21:31:53 +0000598 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
599 s/force_autohint/unpatented_hinting/. Update all callers.
600
601 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
602
603 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000604
David Turner8a317cf2006-09-27 07:52:48 +00006052006-09-27 David Turner <david@freetype.org>
606
Werner Lemberg2c002e12006-09-29 21:31:53 +0000607 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000608
David Turner8a317cf2006-09-27 07:52:48 +0000609
David Turnere140f142006-10-23 08:56:57 +0000610 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000611 In a default build, the function `FT_Library_SetLcdFilter' returns
612 `FT_Err_Unimplemented_Feature'; you need to #define
613 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
614 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000615
Werner Lemberg2c002e12006-09-29 21:31:53 +0000616 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000617
Werner Lemberg2c002e12006-09-29 21:31:53 +0000618 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
619 typedef.
620 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
621 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000622
Werner Lemberg2c002e12006-09-29 21:31:53 +0000623 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
624 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000625
Werner Lemberg2c002e12006-09-29 21:31:53 +0000626 Handle subpixel rendering.
627 Simplify function.
628 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
629 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
630
631 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
632 pointing to <freetype/ftlcdfil.h>.
633
634 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
635 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
636
637 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000638
Werner Lemberge20df4a2006-09-27 06:29:21 +00006392006-09-26 David Bustin
640
641 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
642 correctly. Reported as Savannah bug #17843.
643
David Turner6f8c6222006-09-26 15:42:44 +00006442006-09-26 David Turner <david@freetype.org>
645
Werner Lemberg110246c2006-09-26 21:55:44 +0000646 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
647 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
648 horizontal and vertical hinting for the purpose of debugging the
649 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000650
Werner Lemberg110246c2006-09-26 21:55:44 +0000651 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
652 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000653
Werner Lemberg110246c2006-09-26 21:55:44 +0000654 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
655
656 * include/freetype/config/ftoption.h, devel/ftoption.h
657 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
658 we want to compile LCD-optimized rendering code la ClearType) or
659 not. The macro *must* be disabled in default builds of the library
660 for patent reasons.
661
662 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
663 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
664 isn't defined at compile time. This only changes the content of the
665 rendered glyph to match the one of normal gray-level rendering,
666 hence clients should not need to be modified.
667
668 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000669
Werner Lemberg745ff2c2006-09-19 05:48:02 +00006702006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
671
672 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
673 LWFN fails and both are available.
674
David Turnerf3050052006-09-11 12:00:32 +00006752006-09-11 David Turner <david@freetype.org>
676
Werner Lembergf9644552006-09-12 13:48:10 +0000677 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
678 report their English names through an Apple Roman
679 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000680
Werner Lembergf9644552006-09-12 13:48:10 +0000681 If the font uses another name entry with language_id == English, it
682 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000683
Werner Lembergf9644552006-09-12 13:48:10 +0000684 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
685 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000686
Werner Lemberg36d2eab2006-09-05 19:24:34 +00006872006-09-05 Werner Lemberg <wl@gnu.org>
688
689 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000690 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000691 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
692 `HAN NOM B.ttf').
693
694 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
695
David Turner772e55d2006-09-05 09:45:15 +00006962006-09-05 David Turner <david@freetype.org>
697
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000698 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000699
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000700 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
701 (TRaster): Remove `count_ex' and `count_ey'.
702 (gray_find_cell): Remove 2nd and 3rd argument.
703 (gray_alloc_cell): Merged with `gray_find_cell'.
704 (gray_record_cell): Simplify.
705 (gray_set_cell): Rewrite.
706 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
707 (gray_render_span): Don't use FT_MEM_SET for small values.
708 (gray_dump_cells) [DEBUG_GRAYS]: New function.
709 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
710 bitmap scanline.
711 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000712
David Turneraa557a92006-09-04 16:42:44 +00007132006-09-04 David Turner <david@freetype.org>
714
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000715 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
716 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000717
Werner Lemberg2d8629b2006-09-03 06:18:45 +00007182006-09-03 Werner Lemberg <wl@gnu.org>
719
720 * devel/ftoption.h: Synchronize with
721 include/freetype/config/ftoption.h.
722
723 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
724 variable declaration.
725 (gray_convert_glyph): Fix compiler warnings.
726
David Turner6d79f212006-09-01 14:09:35 +00007272006-09-01 David Turner <david@freetype.org>
728
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000729 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
730 to recognize a few fonts that require the automatic unpatented
731 loader.
David Turnerbd502952006-09-01 19:05:24 +0000732
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000733 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
734 rasterizer. The speed improvement is between 15% and 25%, depending
735 on the font data.
736
737 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
738 (TCell): Redefine.
739 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
740 (gray_init_cells): Updated.
741 (gray_find_cell, gray_alloc_cell): New functions.
742 (gray_record_cell): Rewritten to use `gray_find_cell' and
743 `gray_alloc_cell'.
744 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
745 QSORT_THRESHOLD):
746 Removed.
747 (gray_shell_sort, gray_quick_sort, gray_check_sort,
748 gray_dump_cells): Removed.
749 (gray_sweep): Rewritten.
750 (gray_convert_glyph): Rewrite code which used one of the sorting
751 functions.
752 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000753
Werner Lembergd898aed2006-08-29 09:50:34 +00007542006-08-29 Dr. Werner Fink <werner@suse.de>
755
756 * configure: Make it possible to handle configure options which
757 have strings containing spaces.
758
7592006-08-27 David Turner <david@freetype.org>
760
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000761 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
762 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
763 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
764
765 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
766 src/truetype/truetype.c, src/truetype/ttdriver.c,
767 src/truetype/ttgload.c, src/truetype/ttgload.h,
768 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
769 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
770 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
771
772 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
773 member `force_autohint'.
774
775 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
776
777 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
778 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000779
Jens Claudiusa787f452006-08-27 11:26:18 +00007802006-08-27 Jens Claudius <jens.claudius@yahoo.com>
781
782 Fix miscellaneous compiler warnings.
783
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000784 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
785 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000786
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000787 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
788 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
789 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000790
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000791 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
792 volatileness of argument to ft_longjmp. Spotted by Werner
793 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000794
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000795 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
796 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000797
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000798 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
799 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000800
Werner Lembergc4c35b72006-08-27 08:03:46 +00008012006-08-27 Werner Lemberg <wl@gnu.org>
802
803 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
804 Reported by Jens.
805
Jens Claudius088e44e2006-08-22 14:24:30 +00008062006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000807
Jens Claudius088e44e2006-08-22 14:24:30 +0000808 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000809 about addresses of volatile objects passed as function arguments as
810 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000811
Werner Lembergc4c35b72006-08-27 08:03:46 +0000812 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
813 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000814
815 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
816 argument `table' a pointer to a volatile object.
817
818 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
819 argument `table' a pointer to a volatile object.
820
Jens Claudius2652bd52006-08-18 17:20:37 +00008212006-08-18 Jens Claudius <jens.claudius@yahoo.com>
822
823 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
824 variable `_sfnt' as volatile since it must keep its value across
825 a call to ft_setjmp.
826 (gxv_validate): Same for local variables `memory' and `valid'.
827 (classic_kern_validate): Same for local variables `memory',
828 `ckern', and `valid'.
829
830 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
831 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
832 `jstf', and 'valid'.
833
834 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
835 local variable `cmap'.
836
David Turner9fbfc6a2006-08-16 09:11:31 +00008372006-08-16 David Turner <david@freetype.org>
838
Werner Lemberg12342992006-08-19 11:18:09 +0000839 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
840 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +0000841
Werner Lemberg12342992006-08-19 11:18:09 +0000842 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
843 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +0000844
David Turner33f5f242006-08-16 16:50:55 +0000845
Werner Lemberg12342992006-08-19 11:18:09 +0000846 Improvements to native TrueType hinting. This is a first try,
847 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
848
849 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
850 `extra_points2'.
851
852 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
853 `orus'.
854
855 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
856 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
857 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
858 handle `extra_points2'.
859
860 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
861 Remove compiler warning.
862 (cur_to_arg): Remove macro.
863 (TT_Hint_Glyph): Updated.
864 (TT_Process_Simple_Glyph): Handle `orus'.
865
866 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
867 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
868 (LOC_Ins_IUP): Renamed to...
869 (IUP_WorkerRec): This.
870 Add `orus' member.
871 (Shift): Renamed to...
872 (_iup_worker_shift): This.
873 Updated.
874 (Interp): Renamed to...
875 (_iup_worker_interpolate): This.
876 Updated to handle `orus'.
877 (Ins_IUP): Updated.
878
879 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
880 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +0000881
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00008822006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
883
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000884 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +0000885 build ftvalid in ft2demos. This has been inadvertedly changed
886 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000887
8882006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
889
Werner Lemberg12342992006-08-19 11:18:09 +0000890 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
891 Jens:
892 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000893
Werner Lemberg12342992006-08-19 11:18:09 +0000894 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
895 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000896
897 * freetype2/src/gxvalid/gxvmod.c: Ditto.
898
Jens Claudius9950adc2006-08-13 12:14:36 +00008992006-08-13 Jens Claudius <jens.claudius@yahoo.com>
900
Werner Lemberg12342992006-08-19 11:18:09 +0000901 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
902 T1_TOKEN_TYPE_KEY.
903 (T1_FieldRec): Add `dict'.
904 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
905 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
906 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +0000907
Werner Lemberg12342992006-08-19 11:18:09 +0000908 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
909 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000910
911 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
912
913 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +0000914 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
915 not T1_TOKEN_TYPE_ANY.
916 (ps_parser_load_field): Make sure a token that should be a string or
917 name is really a string or name.
918 Avoid memory leak if a keyword has been already encountered and its
919 value is overwritten.
920 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
921 T1_FIELD_XXX.
922 (parse_dict): Ignore keywords that occur in the wrong dictionary
923 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +0000924
Werner Lemberg12342992006-08-19 11:18:09 +0000925 * freetype2/src/type1/t1tokens.h: Adjust invocations of
926 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000927
Werner Lemberg12342992006-08-19 11:18:09 +0000928 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
929 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000930
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00009312006-07-18 Jens Claudius <jens.claudius@yahoo.com>
932
933 Move creation of field `buildchar' of T1_DecoderRec out of
934 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
935 of it.
936
937 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
938 and `T1_Compute_Max_Advance'.
939
940 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
941 Remove field `face', add `len_buildchar'.
942
943 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
944 field `buildchar'.
945
946 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
947 finisher for T1_Decoder.
948 (cid_slot_load_glyph): Do not ignore failure when initializing the
949 T1_Decoder.
950
951 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
952 Updated.
953 (t1_decoder_init): Remove initialization of fields `buildchar' and
954 `len_buildchar'.
955 (t1_decoder_done): Remove deallocation of field `buildchar'.
956
957 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
958 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
959 T1_Decoder.
960 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
961 `len_buildchar'; make sure to call finisher for T1_Decoder even in
962 case of error.
963
964 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
965 `buildchar' of T1_FaceRec.
966
967 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
968 `buildchar' of T1_FaceRec.
969
Werner Lemberg1a380e02006-07-14 18:28:08 +00009702006-07-14 Jens Claudius <jens.claudius@yahoo.com>
971
972 * freetype2/include/freetype/internal/psaux.h: New macros
973 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
974 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
975 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
976 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
977 (T1_DecoderRec): New fields `buildchar' and `face'.
978 (IS_PS_TOKEN): New macro.
979
980 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
981 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
982
983 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
984 `default_design_vector' and `num_default_design_vector'.
985
986 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
987 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
988 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
989
990 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
991 `token' argument to be NULL if we want only to count the number of
992 tokens.
993 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
994 want to skip the array.
995 (ps_tofixedarray): Allow `values' argument to be NULL if we just
996 want to skip the array.
997
998 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
999 support for (partially commented out) othersubrs 19-25, 27, and 28.
1000 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1001 (t1_decoder_done): Release new field `buildchar'.
1002
1003 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1004 functions.
1005 (t1_keywords): Register them.
1006 (t1_allocate_blend): Updated.
1007 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1008 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1009 (parse_dict): Remove `keyword_flags' argument.
1010 Use new macro IS_PS_TOKEN.
1011 Changed function so that later PostScript definitions override
1012 earlier ones.
1013 (t1_init_loader): Initialize new field `keywords_encountered'.
1014 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1015 `len_buildchar'.
1016 Remove `keywords_flags'.
1017
1018 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1019 `keywords_encountered'.
1020 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1021
1022 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1023 New entries for parsing /NDV, /CDV, and /DesignVector.
1024
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000010252006-07-07 Werner Lemberg <wl@gnu.org>
1026
1027 Add many checks to protect against malformed PCF files.
1028
1029 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1030 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1031
1032 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1033 data and check that tables don't overlap (using a simple
1034 bubblesort).
1035 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1036 New macros which give the size of data structures in the data
1037 stream.
1038 (pcf_get_properties): Use rough estimates to get array size limits.
1039 Assign `face->nprops' and `face->properties' earlier so that a call
1040 to PCF_Face_Done can do the clean-up in case of error.
1041 Protect against invalid string offsets.
1042 (pcf_get_metrics): Clean up code.
1043 Adjust tracing message levels.
1044 Use rough estimate to get array size limit.
1045 (pcf_get_bitmaps): Clean up code.
1046 Adjust tracing message levels.
1047 Use rough estimates to get offset limits.
1048 (pcf_get_encodings): Adjust tracing message level.
1049 (pcf_get_accel): Clean up code.
1050
Werner Lemberg8eb05252006-06-27 06:20:01 +000010512006-06-26 Werner Lemberg <wl@gnu.org>
1052
1053 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1054 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1055
Werner Lemberg24703f82006-06-26 19:12:51 +000010562006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1057
1058 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1059 (t1_decoder_parse_charstrings): Operator with
1060 opcode 15 pops its two arguments.
1061 Handle the case where the pops of an othersubr may be part of a
1062 subroutine.
1063 Handle unknown othersubrs gracefully: count their operands and let
1064 the following pop operators push the operands as the results onto
1065 the Type1 stack.
1066 Improve handling of setcurrentpoint opcode.
1067
Werner Lembergc011f4c2006-06-26 09:40:00 +000010682006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1069
1070 The Type 1 parser now skips over top-level procedures as required
1071 for a `Simplified Parser'. This makes the parser more robust as it
1072 doesn't poke around in PostScript code. Additionally, it makes the
1073 FontDirectory hackery in src/type1/t1load.c unnecessary.
1074
1075 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1076 (skip_literal_string): Add FT_Error as return value.
1077 Handle escapes better.
1078 (skip_string): Add FT_Error as return value.
1079 Don't set `parser->error' but return error code directly.
1080 (skip_procedure): New function.
1081 (ps_parser_skip_PS_token): Handle procedures.
1082 Update code.
1083 (ps_parser_to_token): Update code.
1084 (ps_parser_load_field_table): Handle bbox entries also.
1085
1086 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1087 Add commented-out code for synthetic fonts.
1088
Werner Lemberga2da05c2006-06-25 06:27:27 +000010892006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1090
1091 Fix two hinting bugs as reported in
1092 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1093
1094 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1095 `first_point' member.
1096
1097 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1098 `first_point'.
1099 (TT_Process_Composite_Glyph): Always untouch points.
1100
1101 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1102 `first_point' and `last_point' in case of composite glyphs.
1103 (Ins_IUP): Fix computation of `end_point'.
1104
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000011052006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1106
Werner Lembergef3d2c22006-06-25 06:07:14 +00001107 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1108 Mac. The original patch was written by David Sachitano and Lawrence
1109 Coopet, and modified by Sean McBride for MPW compatibility. Only
1110 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001111
Werner Lembergef3d2c22006-06-25 06:07:14 +00001112 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1113 Mac OS X platforms.
1114 (OS_INLINE): Undefine before definition.
1115 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1116 FontAssociation table in FOND resource.
1117 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1118 and fontSize at each entry of FontAssociation table in FOND
1119 resource.
1120 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1121 ffStylOff of FamilyRecord header of FOND resource, the header,
1122 fontSize, fontID at each entry of FontAssociation table, and
1123 StyleMapping table.
1124 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001125
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000011262006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1127
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001128 Public API of TrueTypeGX, OpenType, and classic kern table validator
1129 should return `FT_Err_Unimplemented_Feature' if validation service
1130 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001131 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001132 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1133
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001134 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1135 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1136 unavailable.
1137 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1138 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001139
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001140 * src/base/ftotval.c (FT_OpenType_Validate): Return
1141 FT_Err_Unimplemented_Feature if OpenType validation service is
1142 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001143
Werner Lembergb10e45a2006-06-08 07:32:56 +000011442006-06-08 Werner Lemberg <wl@gnu.org>
1145
1146 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1147 errors.
1148
David Turner5f1f7502006-06-07 05:11:50 +000011492006-06-07 David Turner <david@freetype.org>
1150
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001151 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1152 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1153 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001154
David Turner457b4a82006-06-06 08:14:14 +000011552006-06-06 David Turner <david@freetype.org>
1156
Werner Lemberg4836f952006-06-06 12:54:08 +00001157 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001158
Werner Lemberg4836f952006-06-06 12:54:08 +00001159 We change `ps_unicodes_init' so that it also takes a
1160 `free_glyph_name' callback to release the glyph names returned by
1161 `get_glyph_name'
1162
1163 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1164 Renamed to ...
1165 (PS_GetGlyphNameFunc): This.
1166 (PS_FreeGlyphNameFunc): New typedef.
1167 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1168
1169 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1170 argument.
1171 (cff_sid_free_glyph_name): New function.
1172 (cff_cmap_unicode_init): Updated.
1173
1174 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1175
1176 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1177 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001178
1179
David Turner09717352006-06-04 14:33:08 +000011802006-06-04 David Turner <david@freetype.org>
1181
Werner Lembergd724f202006-06-04 15:17:41 +00001182 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1183 `item_size == 0' as well -- though this sounds weird, it can
1184 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001185
Werner Lembergd724f202006-06-04 15:17:41 +00001186 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1187 of `face->num_glyphs' which missed the last glyph, due to
1188 the offset-by-1 computation, since the PFR format doesn't
1189 guarantee that glyph index 0 corresponds to the `missing
1190 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001191
Werner Lemberg33779662006-05-26 06:30:05 +000011922006-05-25 Werner Lemberg <wl@gnu.org>
1193
1194 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1195 `-no-undefined'. Reported by Christian Biesinger.
1196
Werner Lemberg24773d62006-05-20 08:53:13 +000011972006-05-19 Brian Weed <bw@imaginengine.com>
1198
1199 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1200 have debug information, and debug libraries use `C7 compatible'
1201 debug info.
1202
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000012032006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1204
Werner Lemberga6523a62006-05-20 08:47:01 +00001205 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001206 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001207
Werner Lemberga6523a62006-05-20 08:47:01 +00001208 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1209 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001210
1211 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001212 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001213
12142006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1215
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001216 * build/unix/configure.raw: Add a fallback to disable Carbon
1217 dependency, if configured with no options on Mac OS X.
1218
12192006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1220
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001221 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001222 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001223 the second part of Savannah bug #16590.
1224
Werner Lemberg545c4e52006-05-17 22:55:04 +000012252006-05-18 Werner Lemberg <wl@gnu.org>
1226
1227 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1228 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1229
David Turnerdc3ff312006-05-17 12:59:35 +000012302006-05-17 David Turner <david@freetype.org>
1231
Werner Lemberg545c4e52006-05-17 22:55:04 +00001232 This is a major patch used to drastically improve the performance of
1233 loading glyphs. This both speeds up loading the glyph vectors
1234 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001235
Werner Lemberg545c4e52006-05-17 22:55:04 +00001236 We now use inline assembler code with GCC to implement `FT_MulFix',
1237 which is probably the most important function related to the
1238 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001239
Werner Lemberg545c4e52006-05-17 22:55:04 +00001240 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001241
1242
Werner Lemberg545c4e52006-05-17 22:55:04 +00001243 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1244 `cursor' and `limit'.
1245
1246 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1247 New functions.
1248 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1249 [TEST]: Remove.
1250
1251 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1252 code.
1253
1254 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1255 `FT_ZERO'
1256 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1257 (af_glyph_hints_reload: Rewrite recognition of weak points.
1258
1259 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1260 constant values out of the loops.
1261
1262 * src/autofit/aftypes.h: Updated.
1263
1264 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1265
1266 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1267 product to get orientation.
1268
1269 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1270 (FT_Stream_OpenGzip): Use it to handle small files directly in
1271 memory.
1272
1273 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1274 Improve performance.
1275
1276 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1277 `limit'.
1278
1279 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1280 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1281 exceedingly large values of number of contours. Speed up by
1282 reducing the number of loops.
1283
1284 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1285
1286
1287 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1288 used to detect rogue clients from 4 to 16. This is to prevent some
1289 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1290 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001291
Werner Lembergde2d90a2006-05-17 08:54:30 +000012922007-05-17 Werner Lemberg <wl@gnu.org>
1293
1294 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001295 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001296
12972006-05-16 Werner Lemberg <wl@gnu.org>
1298
1299 * docs/PROBLEMS: Updated icl issues.
1300
Werner Lemberg6756dc12006-05-12 08:00:13 +000013012006-05-12 Werner Lemberg <wl@gnu.org>
1302
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001303
1304 * Version 2.2.1 released.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001305 =========================
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001306
1307
1308 Tag sources with `VER-2-2-1'.
1309
13102006-05-12 Werner Lemberg <wl@gnu.org>
1311
Werner Lemberg6756dc12006-05-12 08:00:13 +00001312 * src/tools/docmaker/sources.py (re_source_keywords): Add word
1313 boundary markers.
1314 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
1315 (but not at the beginning or end).
Werner Lemberge12a4712006-05-12 14:20:43 +00001316 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Werner Lemberg6e467a62006-05-12 15:05:45 +00001317 (block_footer): Split into...
1318 (block_footer_start, block_footer_middle, block_footer_end): This to
1319 add navigation buttons.
1320 (HtmlFormatter::block_exit): Updated.
Werner Lemberg6756dc12006-05-12 08:00:13 +00001321
1322 * include/freetype/*: Many minor documentation improvements (adding
1323 links, spelling errors, etc.).
1324
Werner Lembergfd74ec62006-05-12 04:00:44 +000013252006-05-11 Werner Lemberg <wl@gnu.org>
1326
1327 * README: Minor updates.
1328
1329 * include/freetype/*: s/scale/scaling value/ where appropriate.
1330 Many other minor documentation improvements.
1331
1332 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
1333 trailing punctuation.
1334 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
1335 warning message for undefined cross references.
1336 Update handling of re_italic and re_bold.
1337
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +000013382006-05-11 Masatake YAMATO <jet@gyve.org>
David Turner281679d2006-05-17 13:34:21 +00001339
1340 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +00001341 read system call returns -1.
1342 Remove a redundant parenthesis.
1343
Werner Lembergb80d85f2006-05-10 04:47:35 +000013442006-05-10 Werner Lemberg <wl@gnu.org>
1345
1346 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
1347 given an empty, un-mmap()able file. Reported and suggested fix in
1348 Savannah bug #16555.
1349
Werner Lemberge0d15592006-05-10 13:44:47 +00001350 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
1351 directory to suppress generation of .pyc files. According to the
1352 Python docs there isn't a more elegant solution (currently).
1353
1354 * builds/toplevel.mk (dist): New target which builds .tar.gz,
1355 .tar.bz2, and .zip files. Note that the version number is still
1356 hard-coded.
1357 (do-dist): Sub-target of `dist'.
1358 (CONFIG_GUESS, CONFIG_SUB): New variables.
1359 (.PHONY): Updated.
1360
Werner Lemberga127ca42006-05-09 13:41:50 +000013612006-05-09 Rajeev Pahuja <rpahuja@esri.com>
1362
1363 * builds/win32/visualc/freetype.sln,
1364 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
1365 VS.NET 2003
1366 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
1367
1368 * builds/win32/visualc/index.html: Updated.
1369
Werner Lemberg4df5b262006-05-08 07:10:29 +000013702006-05-07 Werner Lemberg <wl@gnu.org>
1371
1372 Put version information into the configure script. Reported by Paul
1373 Watson <pwatson@redlinepy.com>.
1374
1375 * builds/unix/configure.ac: Renamed to...
1376 * builds/unix/configure.raw: This which now serves (with appropriate
1377 modifications) as a template for configure.ac.
1378
1379 * version.sed: New script.
1380
1381 * autogen.sh: Generate configure.ac from configure.raw, using
1382 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
1383
Werner Lemberg1639c792006-05-06 16:44:58 +000013842006-05-06 Werner Lemberg <wl@gnu.org>
1385
1386 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
1387
1388 * builds/unix/configure.ac (version_info): Set to 9:10:3.
1389
1390 * builds/win32/visualc/index.html,
1391 builds/win32/visualc/freetype.dsp,
1392 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
1393 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
1394 Minor updates.
1395
1396 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
1397 Updated.
1398
1399 * builds/unix/install-sh: Updated from `texinfo' CVS module at
Werner Lemberg4836f952006-06-06 12:54:08 +00001400 savannah.gnu.org.
Werner Lemberg1639c792006-05-06 16:44:58 +00001401
1402 * devel/ftoption.h: Synchronize with
1403 include/freetype/config/ftoption.h.
1404
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +000014052006-05-04 Werner Lemberg <wl@gnu.org>
1406
1407 * src/lzw/ftlzw2.c: Renamed to...
1408 * src/lzw/ftlzw.c: This.
1409
1410 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
1411
1412 * builds/mac/FreeType.m68k_cfm.make.txt,
1413 builds/mac/FreeType.m68k_far.make.txt,
1414 builds/mac/FreeType.ppc_carbon.make.txt,
1415 builds/mac/FreeType.ppc_classic.make.txt: Updated.
1416
David Turner679a2522006-05-03 09:40:33 +000014172006-05-03 David Turner <david@freetype.org>
1418
Werner Lemberga94746c2006-05-03 20:39:55 +00001419 Allow compilation again with C++ compilers.
1420
1421 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
1422 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
1423 which exist in two variants (for C and C++).
1424 Update callers accordingly.
David Turner679a2522006-05-03 09:40:33 +00001425
Werner Lemberg58eed042006-05-02 22:26:09 +000014262006-05-03 Werner Lemberg <wl@gnu.org>
1427
1428 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
1429
Werner Lembergc6afa122006-05-02 22:22:16 +000014302006-05-02 Werner Lemberg <wl@gnu.org>
1431
1432 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
1433 (FT_ALLOC): Remove redundant redefinition.
1434
1435 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
1436 `-Wstrict-prototypes'.
1437
1438 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
1439
Werner Lemberg58eed042006-05-02 22:26:09 +00001440 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
1441 Remove `extern'.
Werner Lemberg94204892006-05-02 22:24:06 +00001442
David Turner264f3072006-05-02 06:34:27 +000014432006-05-02 David Turner <david@freetype.org>
1444
Werner Lembergc6afa122006-05-02 22:22:16 +00001445 Update the memory management functions and macros to safely deal
1446 with array size buffer overflows. This corresponds to attemps to
1447 allocate arrays that are too large. For an example, consider the
1448 following code:
David Turner264f3072006-05-02 06:34:27 +00001449
Werner Lembergc6afa122006-05-02 22:22:16 +00001450 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
1451 count ); for ( nn = 0; nn < count; nn++ )
1452 array[nn] = read_item_from_file();
David Turner264f3072006-05-02 06:34:27 +00001453
Werner Lembergc6afa122006-05-02 22:22:16 +00001454 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
1455 multiplication overflows, and the array allocated os smaller than
1456 the data read from the file. In this case, the heap will be
1457 trashed, and this can be used as a denial-of-service attack, or make
1458 the engine crash later.
David Turner264f3072006-05-02 06:34:27 +00001459
Werner Lembergc6afa122006-05-02 22:22:16 +00001460 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
1461 count is no larger than `FT_INT_MAX/item_size', otherwise a new
1462 error code `FT_Err_Array_Too_Large' will be returned.
David Turner264f3072006-05-02 06:34:27 +00001463
Werner Lembergc6afa122006-05-02 22:22:16 +00001464 Note that the memory debugger now works again when FT_DEBUG_MEMORY
1465 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
1466 code is now the default.
David Turner264f3072006-05-02 06:34:27 +00001467
David Turner9ca78252006-05-02 09:00:29 +00001468
Werner Lembergc6afa122006-05-02 22:22:16 +00001469 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
1470 Don't use `extern'.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001471
Werner Lembergc6afa122006-05-02 22:22:16 +00001472 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
1473 code.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001474
Werner Lembergc6afa122006-05-02 22:22:16 +00001475 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
1476 [FT_DEBUG_MEMORY]: New macro.
1477 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
1478 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
1479 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1480 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
1481 FT_MEM_FREE): Redefine.
1482 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
1483 FT_MEM_QRENEW_ARRAY): Redefine.
1484 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
1485 FT_MEM_QREALLOC_MULT): New macros. Update callers where
1486 appropriate.
1487 (FT_MEM_SET_ERROR): Slightly redefine.
1488
1489
1490 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
1491 [FT_DEBUG_MEMORY]: New global variables, replacing...
1492 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
1493 `line_no'. Update all callers.
1494 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
1495 overflow.
1496 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
1497 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1498
1499 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
1500 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
1501 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
1502 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
1503
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +00001504
1505 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
1506 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
1507 place where the frames were entered, extracted, exited or released
1508 in the memory debugger.
1509
1510 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
1511 Call ft_mem_free.
1512 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
1513 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
1514
Werner Lembergc6afa122006-05-02 22:22:16 +000015152006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1516
1517 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
1518 initialization, remove extra cast to copy to pfb_lenpos. This fixes
1519 parsing of PFB fonts with MacOS resource fork (bug introduced
1520 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001521
Werner Lemberg8fe65392006-04-29 07:31:16 +000015222006-04-29 Werner Lemberg <wl@gnu.org>
1523
1524 Further C library abstraction. Based on a patch from
1525 msn2@bidyut.com.
1526
1527 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
1528 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
1529 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
1530 C library functions. Update all users accordingly (and catch some
1531 other places where the C library function was used instead of the
1532 wrapper functions).
1533
1534 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
1535 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
1536 include malloc.h.
1537
Werner Lemberg06fceb32006-04-29 07:53:40 +00001538
1539 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
1540 and forthcoming versions.
1541
Werner Lemberg50ef72b2006-04-29 07:02:36 +000015422006-04-28 Werner Lemberg <wl@gnu.org>
1543
1544 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
1545 obsolete.
1546
Werner Lemberg12cceaa2006-04-27 05:02:35 +000015472006-04-27 yi luo <luoyi.ly@gmail.com>
1548
1549 * builds/win32/visualc/freetype.vcproj: Updated.
1550
David Turner3b47dd62006-04-26 19:34:24 +000015512006-04-26 David Turner <david@freetype.org>
1552
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001553
1554 * Version 2.2 released.
Werner Lembergc6afa122006-05-02 22:22:16 +00001555 =======================
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001556
1557
1558 Tag sources with `VER-2-2-0'.
David Turner3b47dd62006-04-26 19:34:24 +00001559
Werner Lemberg564b4432006-04-26 15:02:52 +000015602006-04-26 Werner Lemberg <wl@gnu.org>
1561
1562 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001563 FT_PtrDiff for `delta'. Reported by Céline PILLET
Werner Lemberg564b4432006-04-26 15:02:52 +00001564 <Celine.Pillet@Tagginfo.com>.
1565
David Turner8e438ea2006-04-21 08:35:11 +000015662006-04-21 David Turner <david@freetype.org>
1567
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001568 * include/freetype/ftincrem.h: Documentation updates.
1569 (FT_Incremental_Interface): New typedef.
David Turner8e438ea2006-04-21 08:35:11 +00001570
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001571 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
1572 Documentation updates.
1573
1574 * include/freetype/freetype.h: Documentation update.
1575 (FT_HAS_FAST_GLYPHS): Always set to 0.
1576
1577 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
1578 Take an FT_Library argument instead of FT_Memory.
1579
1580 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
David Turner7aa20102006-04-21 08:38:35 +00001581
David Turner65c7c772006-04-13 07:51:58 +000015822006-04-13 David Turner <david@freetype.org>
1583
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001584 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
1585 superfluous code in the auto-fitter's loader.
David Turner65c7c772006-04-13 07:51:58 +00001586
Werner Lemberg4e03fe72006-04-29 06:20:09 +000015872006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner7d043222006-04-05 07:17:12 +00001588
1589 * builds/amiga/makefile, builds/amiga/makefile.os4,
1590 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
1591
Werner Lemberg7f18de62006-04-03 16:47:34 +000015922006-04-03 luoyi <luoyi.ly@gmail.com>
1593
1594 * builds/compiler/intelc.mk (TE): New variable.
1595 (ANSIFLAGS): Updated.
1596
Werner Lembergfd7456c2006-04-03 15:46:48 +000015972006-04-03 Werner Lemberg <wl@gnu.org>
1598
1599 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
1600 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
1601 (.PHONY): Updated.
1602
1603 * configure.ac: Minor fixes to improve --help output.
1604
Werner Lemberg764b2512006-04-03 16:42:39 +00001605
1606 * docs/PROBLEMS: New file.
1607
Werner Lemberg40917862006-04-01 18:49:07 +000016082006-04-01 David Turner <david@freetype.org>
David Turner0f15e1c2006-04-01 16:11:53 +00001609
Werner Lemberg40917862006-04-01 18:49:07 +00001610 * docs/CHANGES: Updated.
David Turnercf603712006-04-01 16:22:06 +00001611
Werner Lemberg40917862006-04-01 18:49:07 +00001612 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
1613 Update documentation comments.
David Turner0f15e1c2006-04-01 16:11:53 +00001614
Werner Lemberg6e9df682006-04-01 05:22:07 +000016152006-04-01 Werner Lemberg <wl@gnu.org>
1616
1617 * builds/unix/install.mk (uninstall): Don't handle `cache'
1618 directory which no longer exists.
1619
Werner Lemberg4e03fe72006-04-29 06:20:09 +000016202006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001621
Werner Lemberg6e9df682006-04-01 05:22:07 +00001622 * src/psaux/psconv.c: Changed some variables which are expected to
1623 hold negative values from `char' to `FT_Char' to allow building with
1624 a compiler where `char' is unsigned by default.
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001625
David Turner42137bc2006-03-27 20:10:26 +000016262006-03-27 David Turner <david@freetype.org>
1627
Werner Lembergfa3651e2006-03-28 05:06:50 +00001628 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
1629 causes some programs to go into an infinite loop when dealing with
1630 fonts that don't have a properly sorted kerning sub-table.
David Turner42137bc2006-03-27 20:10:26 +00001631
Werner Lemberg26170df2006-03-26 07:19:07 +000016322006-03-26 Werner Lemberg <wl@gnu.org>
1633
1634 * src/bdf/bdflib.c (ERRMSG4): New macro.
1635 (_bdf_parse_glyphs): Handle invalid BBX values.
1636
1637 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
1638 macro.
1639
Werner Lemberg4db32ec2006-03-24 11:54:53 +000016402006-03-23 Werner Lemberg <wl@gnu.org>
1641
1642 * docs/CHANGES: Updated.
1643
Werner Lembergd6e24982006-03-24 18:31:47 +00001644
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001645 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
1646 padding between table elements.
Werner Lemberge0dd18f2006-03-24 12:14:48 +00001647 (html_header_1): The `DOCTYPE' comment must be in uppercase.
Werner Lembergd6e24982006-03-24 18:31:47 +00001648 (make_html_para): Convert `...' quotations into real left and
1649 right single quotes.
1650 Use `para_header' and `para_footer'.
1651
1652 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
1653 also.
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001654
David Turner2ce92032006-03-23 20:58:20 +000016552006-03-23 David Turner <david@freetype.org>
1656
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001657 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
Werner Lembergc6afa122006-05-02 22:22:16 +00001658 we do not expose the FT_SubGlyphRec structure.
David Turner2ce92032006-03-23 20:58:20 +00001659
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001660 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
1661 to...
1662 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
1663 (FT_Get_SybGlyph_Info): New declaration.
1664
1665 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
1666
1667
1668 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
Werner Lembergc6afa122006-05-02 22:22:16 +00001669 rsb_delta correctly in edge cases.
David Turner2ce92032006-03-23 20:58:20 +00001670
Werner Lemberg3867d2f2006-03-22 08:03:06 +000016712006-03-22 Werner Lemberg <wl@gnu.org>
1672
Werner Lemberg6c5b6172006-03-22 15:30:41 +00001673 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
1674 [!FTC_INLINE]: Compile conditionally.
1675 * src/cache/ftccache.h: Updated.
1676
1677 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
1678 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
1679 s/FT_EXPORT/FT_LOCAL/.
1680 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
1681 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
1682 s/FT_EXPORT/FT_LOCAL/.
1683 * src/cache/ftcglyph.h: Updated.
1684
1685 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
1686 s/FT_EXPORT/FT_LOCAL/.
1687 (FTC_INode_Weight): Commented out.
1688 * src/cache/ftcimage.h: Updated.
1689
1690 * src/cache/ftmanag.c (FTC_Manager_Compress,
1691 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
1692 s/FT_EXPORT/FT_LOCAL/.
1693 * src/cache/ftmanag.h: Updated.
1694
1695 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
1696 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
1697 (FTC_SNode_Weight): Commented out.
1698 * src/cache/ftcsbits.h: Updated.
1699
17002006-03-22 Werner Lemberg <wl@gnu.org>
1701
Werner Lemberg3867d2f2006-03-22 08:03:06 +00001702 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
1703 Remove, unused.
1704
1705 * src/cache/ftccmap.h: Remove, unused.
1706
1707 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
1708
Werner Lemberg5556dd22006-03-21 21:36:33 +000017092006-03-21 Zhe Su <james.su@gmail.com>
1710
1711 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
1712 algorithm.
1713
Werner Lemberg26377002006-03-21 18:41:40 +000017142006-03-21 Werner Lemberg <wl@gnu.org>
1715
1716 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
1717
1718 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
1719
1720 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
1721 to `FT_UInt'.
1722 Check range of `glyph_index'.
1723 * src/cff/cffgload.h: Updated.
1724
Werner Lemberg8439fe82006-03-21 21:04:33 +00001725
Werner Lemberg95f206b2006-03-21 20:47:28 +00001726 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
1727 correctly.
1728
Werner Lemberg8439fe82006-03-21 21:04:33 +00001729
1730 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
1731 README: s/2.1.10/2.2/.
1732
Werner Lemberg26377002006-03-21 18:41:40 +000017332006-03-21 David Turner <david@freetype.org>
David Turner24b9e872006-03-21 16:30:04 +00001734
Werner Lemberga62007f2006-03-21 17:41:40 +00001735 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
1736 that crashes the auto-hinter (introduced by previous patch).
David Turner24b9e872006-03-21 16:30:04 +00001737
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000017382006-03-20 Werner Lemberg <wl@gnu.org>
David Turnerdad2a2d2006-03-20 11:48:13 +00001739
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001740 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
1741 (FREETYPE_H): Updated.
David Turnere091ce32006-03-20 16:01:28 +00001742
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001743 * src/cache/rules.mk (CACHE_H_DIR): Remove.
1744 (CACHE_DRV_H): Updated.
David Turnerda95af62006-03-20 13:32:33 +00001745
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000017462006-03-20 David Turner <david@freetype.org>
David Turnerda95af62006-03-20 13:32:33 +00001747
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001748 * include/freetype/cache/ftccache.h,
1749 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
1750 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
1751 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
1752 Move to...
David Turner505667c2006-03-20 12:13:14 +00001753
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001754 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
1755 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
1756 src/cache/ftcmru.h: This new location.
1757 Update declarations according to the changes in the corresponding
1758 source files.
David Turner256de4b2006-03-20 12:10:24 +00001759
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001760 Note that these files are not used by FreeType clients; all public
1761 APIs of the cache module have been already moved to
1762 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
1763 macros resolve to it.
David Turner256de4b2006-03-20 12:10:24 +00001764
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001765 Reason for the move is to allow modifications of the internals
1766 without interferences with rogue clients. Note that there are no
1767 known clients that access the cache internals at the moment.
David Turner256de4b2006-03-20 12:10:24 +00001768
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001769 * builds/unix/install.mk (install): Don't install headers from
1770 $(CACHE_H).
1771 Remove `freetype/cache' from the target directory.
David Turnerdad2a2d2006-03-20 11:48:13 +00001772
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001773 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
1774 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
1775 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
1776 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
1777 FT_CACHE_H.
David Turnerdad2a2d2006-03-20 11:48:13 +00001778
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001779 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
1780 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
1781 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
1782 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
1783 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
1784 but include the headers directly (which are now in `src/cache').
David Turnerdad2a2d2006-03-20 11:48:13 +00001785
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001786 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1787 macros but include the headers directly.
1788 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
1789 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
1790
1791 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1792 macros but include the headers directly.
1793 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
1794 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
1795 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
1796 Declare as FT_LOCAL_DEF.
1797 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
1798 conditionally.
1799 Declare as FT_LOCAL_DEF.
1800
1801
1802 * builds/win32/visualc/freetype.dsp: Update project file, add
1803 missing base source files (ftstroke.c, ftxf86.c, etc.).
1804
1805
1806 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
1807 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
1808 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
1809 src/type1/t1objs.c: Remove compiler warnings when building with
1810 Visual C++ 6 and /W4.
1811
1812 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1813 hinting for italic/oblique fonts.
1814
1815
1816
1817 * src/truetype/ttpload.c, src/truetype/ttpload.h
1818 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
1819
18202006-03-06 David Turner <david@freetype.org>
David Turner65b96aa2006-03-07 00:38:24 +00001821
Werner Lemberge6a8fca2006-03-07 23:53:55 +00001822 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
1823 Mozilla/FireFox print preview in Ubuntu Hoary.
David Turner65b96aa2006-03-07 00:38:24 +00001824
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +000018252006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1826
Wu, Chia-I (吳佳一)9f5d3de2006-02-28 13:21:50 +00001827 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
1828 return error when size == 0.
1829
18302006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1831
Werner Lemberge88d24c2006-02-28 21:49:54 +00001832 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
1833 order so that type42 module is removed before truetype module. This
1834 avoids double free in some occasions.
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +00001835
Werner Lembergc6afa122006-05-02 22:22:16 +000018362006-02-28 David Turner <david@freetype.org>
David Turnere9a47192006-02-28 09:26:58 +00001837
Werner Lemberge88d24c2006-02-28 21:49:54 +00001838 * Release candidate VER-2-2-0-RC4.
1839 ----------------------------------
David Turnere9a47192006-02-28 09:26:58 +00001840
Werner Lemberge88d24c2006-02-28 21:49:54 +00001841 * docs/CHANGES: Documentation updates.
David Turnere9a47192006-02-28 09:26:58 +00001842
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +000018432006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1844
Werner Lemberge88d24c2006-02-28 21:49:54 +00001845 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
1846 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
1847 built.
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +00001848
Werner Lembergc07ee522006-02-27 18:13:12 +000018492006-02-27 Werner Lemberg <wl@gnu.org>
1850
1851 * include/freetype/cache/ftccache.h
1852 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
1853 ftc_node_done.
1854
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001855 * src/cache/ftccache.c (ftc_node_destroy)
1856 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
1857 should now fix all possible compilation options.
1858
David Turnerc13e75f2006-02-27 13:14:42 +000018592006-02-27 David Turner <david@freetype.org>
1860
Werner Lemberg422d2a02006-02-27 18:25:22 +00001861 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
1862 ft_mem_qrealloc): Return an error if a negative size is passed in
1863 parameters.
David Turnerc13e75f2006-02-27 13:14:42 +00001864
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001865 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
1866 it needs to be exported for rogue clients.
David Turner65b96aa2006-03-07 00:38:24 +00001867
Werner Lemberg422d2a02006-02-27 18:25:22 +00001868 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
1869 with malformed fonts which have an odd number of blue values (these
1870 are broken according to the specs).
David Turnerc13e75f2006-02-27 13:14:42 +00001871
Werner Lemberg422d2a02006-02-27 18:25:22 +00001872 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
1873 (T1_Open_Face): Modify the loaders to force even-ness of
1874 `num_blue_values'.
1875
1876 (cff_index_access_element): Ignore invalid entries in index files.
David Turnerc13e75f2006-02-27 13:14:42 +00001877
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +000018782006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1879
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001880 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
1881 or height is 0.
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +00001882
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +000018832006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1884
1885 * builds/mac/FreeType.m68k_cfm.make.txt,
1886 builds/mac/FreeType.m68k_far.make.txt,
1887 builds/mac/FreeType.ppc_carbon.make.txt,
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001888 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
1889 inclusion introduced on 2006-02-16.
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00001890
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +000018912006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1892
Werner Lemberg422d2a02006-02-27 18:25:22 +00001893 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
1894 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001895 Re-enable glyph metrics grid-fitting. It is now done in the base
1896 layer.
Werner Lembergc07ee522006-02-27 18:13:12 +00001897 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
1898 height are not too small or too large, just like we were doing in
1899 2.1.10.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001900
Werner Lembergc07ee522006-02-27 18:13:12 +00001901 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
1902 are not scaled.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001903
Werner Lembergf99d8462006-02-26 17:50:59 +000019042006-02-26 Werner Lemberg <wl@gnu.org>
1905
1906 * docs/release: Minor additions and clarifications.
1907
1908 * docs/CHANGES: Updated to reflect many fixes for backwards
1909 compatibility. Still incomplete.
1910
David Turnerb4636652006-02-26 07:57:45 +000019112006-02-26 David Turner <david@freetype.org>
1912
Werner Lemberg0aaf4292006-02-26 17:30:15 +00001913 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
1914 conservative rounding of metrics to avoid breaking clients like
1915 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
David Turnerb4636652006-02-26 07:57:45 +00001916
Werner Lemberg20a8d0c2006-02-25 16:56:04 +000019172006-02-25 Werner Lemberg <wl@gnu.org>
1918
1919 * devel/ftoption.h: Synchronize with
1920 include/freetype/config/ftoption.h.
1921
Werner Lembergae1e4b12006-02-25 17:11:04 +00001922 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
1923
David Turner6c71c6b2006-02-25 12:49:40 +000019242006-02-25 David Turner <david@freetype.org>
1925
Werner Lemberg7f049f42006-02-25 16:52:16 +00001926 Fix compiler warnings as well as C++ compilation problems.
1927 Add missing prototypes.
David Turner6c71c6b2006-02-25 12:49:40 +00001928
Werner Lemberg7f049f42006-02-25 16:52:16 +00001929 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
1930 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
1931 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
1932 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
1933 initialize variables, and decorate functions with FT_CALLBACK_DEF,
1934 etc., to fix compiler warnings (and C++ compiling errors).
David Turner6c71c6b2006-02-25 12:49:40 +00001935
Werner Lemberg7f049f42006-02-25 16:52:16 +00001936 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
1937 gcc.
David Turnerde271ab2006-02-25 14:53:02 +00001938
Werner Lemberg7f049f42006-02-25 16:52:16 +00001939 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
1940 FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001941
Werner Lemberg7f049f42006-02-25 16:52:16 +00001942 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001943
Werner Lemberg7f049f42006-02-25 16:52:16 +00001944 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
1945
1946 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
1947 define for C++.
1948
1949 * include/freetype/internal/services/svotval.h: Don't include
1950 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
1951
1952 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
1953
1954 * src/gzip/ftgzip.c: Include FT_GZIP_H.
1955
1956 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
1957
1958 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
David Turner6c71c6b2006-02-25 12:49:40 +00001959
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +000019602006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1961
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001962 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1963 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
David Turner6c71c6b2006-02-25 12:49:40 +00001964 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001965 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
1966
19672006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1968
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001969 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
1970 documentation.
1971
1972 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
1973 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
Werner Lembergd7e6b762006-02-25 06:24:28 +00001974 sure a glyph slot owns its bitmap. It is also marked experimental
1975 and due to change.
1976 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
1977 rendering the outline confuses some applications.
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001978
David Turnerca7d76f2006-02-24 09:09:10 +000019792006-02-24 David Turner <david@freetype.org>
1980
Werner Lembergd7e6b762006-02-25 06:24:28 +00001981 * Release candidate VER-2-2-0-RC3.
1982 ----------------------------------
David Turner478c5912006-02-24 09:56:23 +00001983
Werner Lembergd7e6b762006-02-25 06:24:28 +00001984 * src/cache/ftcbasic.c: Correct compatibility hack bug.
David Turnerca7d76f2006-02-24 09:09:10 +00001985
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +000019862006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1987
Werner Lembergd7e6b762006-02-25 06:24:28 +00001988 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
1989 of `width' and `height' to `FT_Long'.
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +00001990 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
1991 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
1992 directly.
1993
David Turner6cda6c02006-02-23 12:37:18 +000019942006-02-23 David Turner <david@freetype.org>
1995
Werner Lembergd7e6b762006-02-25 06:24:28 +00001996 Two BDF patches from Debian libfreetype6 for 2.1.10.
David Turner6cda6c02006-02-23 12:37:18 +00001997
Werner Lembergd4303da2006-02-23 21:01:34 +00001998 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
1999 glyphs.
2000 Fix a problem with large encodings.
David Turner481838e2006-02-23 12:40:14 +00002001
Werner Lembergd7e6b762006-02-25 06:24:28 +00002002
2003 Fix binary compatibility issues for gnustep-back (GNUstep backend
2004 module) which still crashes under Sarge.
2005
2006 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
2007 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
2008 structures and enumerations.
2009 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
2010 compatibility code.
David Turner88d89852006-02-23 22:35:26 +00002011
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002012 * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
David Turneraa557a92006-09-04 16:42:44 +00002013 support rogue clients compiled against 2.1.7 to work correctly.
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002014 This probably explains the GNUstep crashes with the second release
2015 candidate.
David Turnerbd502952006-09-01 19:05:24 +00002016
Wu, Chia-I (吳佳一)890f8072006-02-22 20:47:39 +000020172006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
2018
2019 * include/freetype/ftoutln.h (enum FT_Orientation): New value
2020 `FT_ORIENTATION_NONE'.
2021
2022 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
2023 ft_contour_enclosed, ft_outline_get_orientation): Another version of
2024 `FT_Outline_Get_Orientation'. This version differs from the public
2025 one in that each part (contour not enclosed in another contour) of the
2026 outline is checked for orientation.
2027 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
2028
2029 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
2030 use bitmap's embolden routine when the outline one failed.
2031
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +000020322006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
2033
2034 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
2035 compatibility.
2036
2037 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
2038
2039 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
2040 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
Werner Lemberg5edafed2006-02-22 08:23:35 +00002041 loading. (Only tested with bit aligned sbit with x_pos == 0.)
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00002042
2043 * src/truetype/ttpload.c (tt_face_load_hdmx,
Werner Lemberg5edafed2006-02-22 08:23:35 +00002044 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
2045 actually used.
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00002046
David Turner1ae134a2006-02-21 16:50:17 +000020472006-02-21 David Turner <david@freetype.org>
2048
Werner Lemberg5edafed2006-02-22 08:23:35 +00002049 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
2050 we have a patented, unpatented, or unimplemented TrueType bytecode
2051 interpreter.
David Turner0b5dc4d2006-02-21 22:36:23 +00002052
Werner Lemberg5edafed2006-02-22 08:23:35 +00002053 The FT_Get_Module_Flags API was removed consequently.
David Turner0b5dc4d2006-02-21 22:36:23 +00002054
David Turner88d89852006-02-23 22:35:26 +00002055 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Werner Lemberg5edafed2006-02-22 08:23:35 +00002056 Replaced with...
2057 (FT_Get_TrueType_Engine_Type): This.
2058 (FT_TrueTypeEngineType): New enumeration.
David Turner0b5dc4d2006-02-21 22:36:23 +00002059
Werner Lemberg5edafed2006-02-22 08:23:35 +00002060 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
2061 New macro.
David Turner1ae134a2006-02-21 16:50:17 +00002062
Werner Lemberg5edafed2006-02-22 08:23:35 +00002063 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2064 (FT_Module_Get_Flags): Removed. Replaced with...
2065 (FT_Get_TrueType_Engine_Type): This.
David Turnerc093db92006-02-21 17:06:35 +00002066
Werner Lemberg5edafed2006-02-22 08:23:35 +00002067 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2068 (tt_service_truetype_engine): New service structure.
2069 (tt_services): Register it.
2070
2071 * include/freetype/internal/services/svtteng.h: New file.
2072
2073
2074 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
2075 embedded bitmaps from being correctly listed and used.
2076
2077
2078 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
2079 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
2080 libXfont is directly accessing the HMTX data, unfortunately.
2081 Fix some compiler warnings.
2082 (tt_face_get_metrics): Ditto.
2083
2084
2085 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
2086 character advances.
David Turner1ae134a2006-02-21 16:50:17 +00002087
David Turnerdd0f3602006-02-20 23:50:21 +000020882006-02-20 David Turner <david@freetype.org>
2089
David Turner0b5dc4d2006-02-21 22:36:23 +00002090 Support binary compatibility with the X.Org server's Xfont library.
Werner Lembergd41aecd2006-02-21 08:08:14 +00002091 Note that this change unfortunately prevents memory optimizations
2092 for the embedded bitmap loader.
David Turnerdd0f3602006-02-20 23:50:21 +00002093
Werner Lembergd41aecd2006-02-21 08:08:14 +00002094 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
2095 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
2096 version 2.1.8.
David Turnerdd0f3602006-02-20 23:50:21 +00002097
Werner Lembergd41aecd2006-02-21 08:08:14 +00002098 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
2099 FT_Size_Request.
2100 (sfnt_interface): Updated.
2101
2102 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
2103 ttsbit0.c.
2104 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
2105
2106 * src/sfnt/ttsbit.h: Updated.
David Turnerdd0f3602006-02-20 23:50:21 +00002107
David Turner0880ac32006-02-17 17:23:13 +000021082006-02-17 David Turner <david@freetype.org>
2109
Werner Lembergf145e312006-02-19 16:12:18 +00002110 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
2111 functions anymore. This ensures that all FT_BASE internal functions
2112 are available for dynamic linking.
2113
2114 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
2115 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
2116 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
2117 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
2118 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
2119 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
2120 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
2121 cache sub-system. We try to recognize old legacy signatures with a
2122 gross hack (hope it works).
David Turner0880ac32006-02-17 17:23:13 +00002123
Werner Lemberg1fae6692006-02-17 16:16:40 +000021242006-02-17 Werner Lemberg <wl@gnu.org>
2125
2126 * devel/ftoption.h: Synchronize with
2127 include/freetype/config/ftoption.h.
2128
David Turnercda2d952006-02-16 22:45:31 +000021292006-02-16 David Turner <david@freetype.org>
2130
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002131 Massive changes to the internals to respect the internal object
2132 layouts and exported functions of FreeType 2.1.7. Note that the
2133 cache sub-system cannot be fully retrofitted, unfortunately.
David Turnercda2d952006-02-16 22:45:31 +00002134
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002135 * include/freetype/config/ftoption.h
2136 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
2137
2138 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
2139 include/freetype/cache/ftccmap.h,
2140 include/freetype/internal/ftcalc.h,
2141 include/freetype/internal/ftdriver.h,
2142 include/freetype/internal/ftmemory.h,
2143 include/freetype/internal/ftobjs.h,
2144 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
2145 include/freetype/internal/t1types.h,
2146 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
2147 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
2148 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
2149 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
2150 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
2151 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
2152 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
2153 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
2154 structures.
2155
2156 Move newly added structure elements to the end of the affected
2157 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
2158 defined) to assure binary compatibility with older FreeType
2159 versions.
2160 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
2161 functions:
2162
2163 ft_stub_set_char_sizes
2164 ft_stub_set_pixel_sizes
2165
2166 Rename the following internal functions to provide the old function
2167 names as stubs:
2168
2169 FT_Alloc -> ft_mem_alloc
2170 FT_QAlloc -> ft_mem_qalloc
2171 FT_Realloc -> ft_mem_realloc
2172 FT_QRealloc -> ft_mem_qrealloc
2173 FT_Free -> ft_mem_free
2174 FT_Alloc_Debug -> ft_mem_alloc_debug
2175 FT_QAlloc_Debug -> ft_mem_qalloc_debug
2176 FT_Realloc_Debug -> ft_mem_realloc_debug
2177 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
2178 FT_Free_Debug -> ft_mem_free_debug
David Turnercda2d952006-02-16 22:45:31 +00002179
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +000021802006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
2181
2182 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
2183 unused `max_points' and `max_contours'.
David Turnercda2d952006-02-16 22:45:31 +00002184
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002185 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
2186 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
2187
2188 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
2189 `max_components'.
2190
2191 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
2192 `loadSize' and `loadStack'.
2193
2194 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
2195 src/sfnt/ttload.c (tt_face_load_maxp): Update.
2196
2197 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
2198 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
2199 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
2200 defined.
2201
2202 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
2203 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
2204 (finally!)
2205
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002206
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002207 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
2208 and `face->root' is set later in `sfnt_load_face'. Here, we try to
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002209 make this work for _all_ tables. Also improve tracing messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002210
2211 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
2212 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
2213 then exit. Error handling or setting face->root is done later in
2214 `sfnt_load_face'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002215
2216 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
2217 Mac bitmap-only fonts are not scalable.
2218 Check that `face->header.Units_Per_EM' is not zero.
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002219 (LOAD_, LOADM_): Emit pretty trace messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002220
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002221 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
2222 from `eblc'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002223
2224 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
2225 (load_format_20, load_format_25, tt_face_get_ps_name): Use
2226 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
2227
Werner Lemberg52254022006-02-15 06:05:52 +000022282006-02-14 Werner Lemberg <wl@gnu.org>
2229
2230 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
2231 documentation that negative strength values are possible.
2232 Give an example call.
2233
2234 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
2235 documentation of `outline' field.
2236
2237 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
2238 * src/sfnt/sfdriver.c: Include ttmtx.h.
2239
2240 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
2241
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +000022422006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2243
Wu, Chia-I (吳佳一)3dc00182006-02-14 13:36:28 +00002244 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
2245
22462006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2247
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002248 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
2249 return error if table is missing.
2250 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
2251
2252 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
Werner Lemberg52254022006-02-15 06:05:52 +00002253 tables. The last change makes Mac bitmap-only font not load and
2254 this fixes it.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002255
Werner Lemberg52254022006-02-15 06:05:52 +00002256 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
2257 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002258
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +000022592006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2260
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002261 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
Werner Lemberg814839a2006-07-28 11:55:48 +00002262 split from `load_hhea'.
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002263
2264 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
2265 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
2266
2267 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
2268
22692006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2270
Wu, Chia-I (吳佳一)e0decd12006-02-14 07:20:06 +00002271 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
2272 code...
2273
22742006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2275
Werner Lemberg52254022006-02-15 06:05:52 +00002276 Clean up the SFNT_Interface. In this pass, we want to treat the
2277 font directory (offset table and table directory) as a normal table
2278 like the others. This also means that TTCs are no longer recognized
2279 there but in `init_face'.
Wu, Chia-I (吳佳一)65863a52006-02-14 07:01:29 +00002280
2281 * include/freetype/internal/sfnt.h (SFNT_Interface),
2282 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
2283 combined and renamed to `load_font_dir'.
2284
2285 * src/sfnt/ttload.h, src/sfnt/ttload.c:
2286 s/sfnt_dir_check/check_table_dir/.
2287 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
2288 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
2289 and renamed to `tt_face_load_font_dir'.
2290
2291 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
2292
22932006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2294
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002295 Clean up the SFNT_Interface. Table loading functions are now named
Werner Lemberg52254022006-02-15 06:05:52 +00002296 after the tables' tags; `hdmx' is TrueType-specific and thus the
2297 code is moved to the truetype module; `get_metrics' is moved here
2298 from the truetype module so that the code can be shared with the cff
2299 module.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002300
2301 This pass involves no real changes. That is, the code is moved
2302 verbatim mostly. The only exception is the return value of
2303 `tt_face_get_metrics'.
2304
2305 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
2306 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
2307 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
2308 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
David Turnercda2d952006-02-16 22:45:31 +00002309
Werner Lemberg52254022006-02-15 06:05:52 +00002310 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
2311 tables' loading and parsing code is moved to here.
2312 Move `tt_face_get_metrics' here from the truetype module. The
2313 return value is changed from `void' to `FT_Error'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002314
2315 * include/freetype/internal/fttrace.h: New trace: ttmtx.
2316
2317 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
2318 parsing code is moved here.
Werner Lemberg814839a2006-07-28 11:55:48 +00002319 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002320 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
2321
2322 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
2323
2324 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2325
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +000023262006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2327
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002328 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
2329
2330 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
Werner Lembergd39fda22006-02-12 21:49:21 +00002331 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
2332 to it later in `af_latin_hints_link_segments'.
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002333
23342006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2335
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002336 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
Werner Lembergd39fda22006-02-12 21:49:21 +00002337 to enable autofit CJK script support. (#define'd by default.)
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002338
2339 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
2340
Werner Lembergd39fda22006-02-12 21:49:21 +00002341 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
2342 that `edge_distance_threshold' is always set.
2343 (af_latin_hints_link_segments): Potential divide-by-zero bug.
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002344 Use latin constant in the scoring formula.
2345
2346 * src/autofit/afcjk.c: Minor updates due to the above three changes.
2347
2348 * docs/TODO, docs/CHANGES: Updated.
2349
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +000023502006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
2351
2352 Introduce experimental autofit CJK module based on akito's autohint
2353 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
2354
2355 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
2356 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
2357 Add CJK module based on akito's autohint patch.
2358
2359 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002360 overlap length of the segments.
2361 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002362
2363 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002364 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
2365 `FT_LOCAL'.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002366 Use the character given by the caller.
2367 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
2368 the thresholds.
2369
2370 * src/autofit/afloader.c (af_loader_load_g): Respect
2371 AF_SCALER_FLAG_NO_ADVANCE.
2372
Werner Lemberg6be99f92006-02-09 07:38:57 +000023732006-02-09 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002374
Werner Lemberg6be99f92006-02-09 07:38:57 +00002375 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002376
Werner Lemberg6be99f92006-02-09 07:38:57 +000023772006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002378
Werner Lemberg6be99f92006-02-09 07:38:57 +00002379 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
2380 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
2381 2005-11-02).
2382
23832006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2384
2385 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
2386 option on UNIX platform. It has been broken since 2006-01-11.
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002387
Werner Lemberg38beff02006-02-01 05:14:25 +000023882006-02-01 Werner Lemberg <wl@gnu.org>
2389
2390 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
2391 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
2392
Werner Lemberg03379b62006-02-01 05:40:06 +00002393 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
2394 change from 2006-01-31).
2395 (TOP_DIR, OBJ_DIR): Update.
2396
Werner Lemberg9a8006b2006-02-01 06:07:05 +00002397 * builds/unix/install.mk (install): Fix path for ftmodule.h.
2398
Werner Lemberg54a79c82006-02-01 07:54:07 +00002399 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
2400 `?=' where appropriate.
Werner Lemberg8a4de0d2006-02-01 07:52:11 +00002401
2402 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
2403 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
2404
Werner Lemberg38beff02006-02-01 05:14:25 +000024052006-01-31 Werner Lemberg <wl@gnu.org>
Werner Lemberg59939242006-01-31 20:17:42 +00002406
2407 Implement new, simplified module selection. With GNU make it is now
2408 sufficient to modify a single file, `modules.cfg', to control the
2409 inclusion of modules and base extension files.
2410
2411 This change also fixes the creation of ftmodule.h; it now depends on
2412 `modules.cfg' and thus is rebuilt only if necessary.
2413
2414 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
2415 default location.
2416
2417 * modules.cfg: New file.
2418
2419 * builds/freetype.mk: Don't include `modules.mk'.
2420 Include all `rules.mk' files as specified in `modules.cfg'.
2421 (FTOPTION_FLAG, FTOPTION_H): New variables.
2422 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
2423 Add FTOPTION_FLAG.
2424 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
2425 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
2426 (INCLUDES): Add DEVEL_DIR.
2427 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
2428 OBJ_M, OBJ_S): Use `:=', not `='.
2429 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
2430 (distclean): Add remove_ftmodule_h.
2431
2432 * builds/modules.mk: (MODULE_LIST): Removed.
2433 (make_module_list, clean_module_list): Replace targets
2434 with...
2435 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
2436 variables. Reason for the change is that it is not possible to have
2437 a phony prerequisite which is run only if the target file must be
2438 rebuilt (phony prerequisites act like subroutines and are *always*
2439 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
2440 changed.
2441 Update all callers.
2442 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
2443 `modules.cfg'.
2444
2445 * builds/toplevel.mk: Rewrite and simplify module handling.
2446 (MODULES_CFG, FTMODULE_H): New variables.
2447 Include MODULES_CFG.
2448 (MODULES): New variable to include all `module.mk' and `rules.mk'
2449 files. We no longer use make's `wildcard' function for this.
2450
2451 * Makefile (USE_MODULES): Remove. Update all users.
2452 (OBJ_DIR): Define it here.
2453
2454 * src/*/module.mk: Change
2455
2456 make_module_list: foo
2457 foo: ...
2458
2459 to
2460
2461 FTMODULE_H_COMMANDS += FOO
2462 define FOO
2463 ...
2464 endef
2465
2466 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
2467
2468 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
2469
2470 * builds/unix/detect.mk (setup): Always execute `configure' script.
2471 (have_mk): Rename to...
2472 (have_Makefile): This.
2473 Don't use `strip' function.
2474
2475 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
2476 defined.
2477 (have_mk): Don't use `strip' function.
2478 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
2479 accordingly).
2480
2481 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
2482
2483 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
2484 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
2485 BUILD_DIR but DEVEL_DIR for development header files.
2486
2487 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
2488 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
2489 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
2490
2491 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
2492 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
2493
2494 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
2495 development header files.
2496 Don't define PLATFORM.
2497
2498 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
2499 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
2500 Be more verbose.
2501
2502 * include/freetype/config/ftmodule.h: Add comments -- this file is
2503 no longer used if FreeType is built with GNU make.
2504
2505 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
2506 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
2507 Other minor updates.
2508
2509 * modules.txt: Removed. Contents included in `modules.cfg'.
2510
2511
2512 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
2513 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
2514
2515 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
2516 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
2517 [FT_STRICT_ALIASING]: Implement.
2518
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +000025192006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2520
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002521 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
Werner Lemberg59939242006-01-31 20:17:42 +00002522 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
2523 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
2524 units_per_EM, ascender - descender).
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002525
25262006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2527
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002528 * include/freetype/internal/t1types.h (AFM_FontInfo),
2529 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
2530 `Ascender', and `Descender' from an AFM.
2531
2532 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
2533
Werner Lemberg59939242006-01-31 20:17:42 +00002534 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
2535 be changed after file attachment.
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002536
Werner Lemberg7596fd32006-01-28 16:29:29 +000025372006-01-28 Werner Lemberg <wl@gnu.org>
2538
2539 * src/*/module.mk (.PHONY): Add.
2540
Werner Lemberg68a15eb2006-01-28 07:30:58 +000025412006-01-27 Werner Lemberg <wl@gnu.org>
2542
2543 * README, docs/FTL.TXT: Fix email address for bug reports.
2544 Other minor formatting.
2545
Werner Lembergf6a25502006-01-28 10:38:15 +00002546 * devel/ftoption.h: Synchronize with
2547 include/freetype/config/ftoption.h.
2548
2549 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
2550 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
2551 whitespace.
2552
2553 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
2554 renderer classes.
2555
David Turnerff0e9e62006-01-27 09:15:53 +000025562006-01-27 David Turner <david@freetype.org>
2557
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002558 * builds/unix/configure.ac: Fix build problem on Cygwin.
David Turnercda2d952006-02-16 22:45:31 +00002559
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002560 * builds/unix/install.mk (install): Don't install the internal
2561 headers, and remove existing ones if found in the target install
2562 directory.
David Turner7213b4f2006-01-27 16:42:32 +00002563
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002564 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
2565 if the warp hinter isn't active (it shouldn't, still experimental).
David Turner6a681fa2006-01-27 12:11:22 +00002566
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002567 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
Werner Lembergbe3c9812006-01-27 14:16:16 +00002568 and `otvalid' from the list of modules that are linked statically
2569 to a given FreeType library. Functionality has been moved to the
2570 `ftvalid' CVS module.
David Turner6a681fa2006-01-27 12:11:22 +00002571
Werner Lembergbe3c9812006-01-27 14:16:16 +00002572 Note also that current Make-based build system still compiles the
2573 modules though.
David Turner6a681fa2006-01-27 12:11:22 +00002574
Werner Lembergbe3c9812006-01-27 14:16:16 +00002575 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
2576 which controls the definitions of the memory management functions to
2577 avoid warnings with recent versions of GCC. This macro is only here
2578 to be disabled, in case we detect problems with the new scheme.
David Turner6a681fa2006-01-27 12:11:22 +00002579
Werner Lembergbe3c9812006-01-27 14:16:16 +00002580 NOTE: Disable macro to use the memory debugger -- this will be fixed
2581 later!
2582
2583 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
2584 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
2585 New versions.
2586
2587
2588 * builds/win32/visualc/freetype.dsp: Updating project file to
2589 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
2590 compilation.
2591
2592
2593 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
2594 macro FT2_BUILD_LIBRARY when compiling the library.
2595
2596 * include/freetype/config/ftheader.h: Remove inclusions of internal
2597 headers except if the macro FT2_BUILD_LIBRARY is defined.
2598
2599
2600 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
2601 AFM_FontInfo): Move structure declarations to...
2602 * include/freetype/internal/t1types.h: This file.
2603
2604
2605 * (many files): Fix compiler warnings.
2606 Various minor reorganizations.
2607
2608
2609 * src/cff/cffload.c (cff_font_done): Don't free static array
2610 `subfonts'.
2611
2612 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
2613 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
2614
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002615
2616 Get rid of writable static variables (i.e., the string table) in
2617 afmparse, and fix compilation in FT2_MULTI mode.
2618
Werner Lembergbe3c9812006-01-27 14:16:16 +00002619 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
2620 (AFM_MAX_ARGUMENTS): Define...
2621 * src/psaux/afmparse.h: Here.
2622 * src/psaux/Jamfile (_sources): Add afmparse.
2623
2624 * src/psaux/psconv.c: Include psconv.h.
2625
2626 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
2627 FT_INTERNAL_POSTSCRIPT_AUX_H.
2628 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
David Turnerff0e9e62006-01-27 09:15:53 +00002629
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +000026302006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2631
Wu, Chia-I (吳佳一)bcc438b2006-01-23 14:12:40 +00002632 * include/freetype/freetype.h (FT_Select_Size): Rename the second
2633 argument from `idx' to `strike_index'.
2634 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
2635 this enum.
2636
2637 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
2638 FT_REQUEST_HEIGHT): New macros to get the width and height of a
2639 request, in fractional pixels.
2640
2641 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
2642 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
2643 FT_Request_Metrics): New base functions to set the font metrics. They
2644 were part of FT_Select_Size/FT_Request_Size and are made independent
2645 functions so that metrics are not set again and again.
2646
2647 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
2648 only when driver's size_select/size_request is NULL. That is, drivers
2649 should set the metrics themselves.
2650 (FT_Match_Size): Round before matching. This was what we did and it
2651 does cause some problems without rounding.
2652
2653 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
2654 (tt_size_select): Set the font metrics.
2655 s/index/strike_index/.
2656 The scaled metrics are always preferred over strikes' metrics, even
2657 when some strike is selected. This is done because the strikes'
2658 metrics are not reliable, e.g., the sign of the descender is wrong for
2659 some fonts.
2660
2661 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
2662 (tt_size_request): Set the font metrics.
2663 Call cff_size_select/tt_size_select when some strike is matched.
2664
2665 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
2666 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
2667 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
2668 Set the font metrics.
2669 s/index/strike_index/.
2670
2671 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
2672 files were committed. Just a catch-up.
2673 (PS_Conv_ToFixed): Remove the `goto'.
2674 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
2675
2676 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
2677 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
2678 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
2679 advertised metrics in `available_sizes' are different from those
2680 actually used.
2681
26822006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2683
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +00002684 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
2685 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
2686
Werner Lemberged70ca52006-01-23 07:28:03 +000026872006-01-22 Werner Lemberg <wl@gnu.org>
2688
2689 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
Werner Lemberg4836f952006-06-06 12:54:08 +00002690 `texinfo' CVS module at savannah.gnu.org.
Werner Lemberged70ca52006-01-23 07:28:03 +00002691
Werner Lemberg1be9ebf2006-01-22 06:58:16 +000026922006-01-21 Werner Lemberg <wl@gnu.org>
2693
2694 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
2695
Werner Lembergb36bf522006-01-22 07:09:54 +00002696 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
2697 to avoid compiler warnings.
2698
2699 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
2700 shadowing variable declarations.
2701 Fix warning parameters and replace printf with AF_LOG.
2702 (af_warper_compute): Remove unused variable.
2703
David Turnerbb4edc92006-01-21 14:31:45 +000027042006-01-20 David Turner <david@freetype.org>
2705
Werner Lemberg1be9ebf2006-01-22 06:58:16 +00002706 Adding experimental implementation of `warp hinting' (new hinting
2707 algorithm for gray-level and LCD rendering). It is disabled by
2708 default, you need to #define AF_USE_WARPER in aftypes.h.
2709
2710 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
2711 New function.
2712 * src/autofit/afhints.h: Updated.
2713
2714 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
2715 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
2716 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
2717 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
2718 appropriately.
2719
2720 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
2721 Isolate code for adjusting metrics.
2722
2723 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
2724 default).
2725
2726 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
2727
2728 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
2729
2730 * src/autofit/Jamfile (_sources): Add afwarp.
David Turnerbb4edc92006-01-21 14:31:45 +00002731
David Turner8c16ed32006-01-19 13:10:49 +000027322006-01-19 David Turner <david@freetype.org>
2733
Werner Lemberge7be64e2006-01-21 17:27:32 +00002734 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
2735 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
David Turner8c16ed32006-01-19 13:10:49 +00002736
Werner Lemberg8b560632006-01-19 08:30:58 +000027372006-01-19 Brian Weed <bw@imaginengine.com>
2738
2739 * builds/win32/visualc/freetype.dsp: Updated.
2740
Werner Lemberg47bf95d2006-01-17 16:55:32 +000027412006-01-17 Werner Lemberg <wl@gnu.org>
2742
2743 Use pscmap service in CFF module.
2744
2745 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
2746 (cff_sid_to_glyph_name): New function.
2747 (cff_cmap_unicode_init, cff_cmap_unicode_done,
2748 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
2749 service.
2750 (cff_cmap_unicode_class_rec): Updated.
2751 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
2752
2753
2754 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
2755 return value.
2756
2757
2758 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
Werner Lemberge7be64e2006-01-21 17:27:32 +00002759 to avoid compiler warnings regarding type-punning.
Werner Lemberg47bf95d2006-01-17 16:55:32 +00002760
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +000027612006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
2762
2763 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
Werner Lembergce94c7a2006-01-16 22:35:33 +00002764 implement an AFM parser.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002765
2766 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
Werner Lembergce94c7a2006-01-16 22:35:33 +00002767 conversion functions (e.g., PS real number => FT_Fixed) for the
2768 PS_Parser and AFM_Parser. Some of the functions are taken, with
2769 some modifications, from the file psobjs.c.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002770
2771 * src/psaux/psobjs.c: Use functions from psconv.c.
2772
Werner Lembergce94c7a2006-01-16 22:35:33 +00002773 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002774 `AFM_Parser' to the `psaux' service.
2775
Werner Lembergce94c7a2006-01-16 22:35:33 +00002776 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
2777 those new files.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002778
2779 * src/tools/test_afm.c: A test program for AFM parser.
2780
Werner Lembergce94c7a2006-01-16 22:35:33 +00002781 * include/freetype/internal/services/svkern.h: New file providing a
2782 `Kerning' service. It is currently only used to get the track
2783 kerning information.
2784
2785 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
2786 macro.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002787
2788 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
2789 src/type1/t1afm.h: Update to use the AFM parser.
2790 Provide the `Kerning' service.
2791
2792 * include/freetype/freetype.h, src/base/ftobjs.c: New API
2793 `FT_Get_Track_Kerning'.
2794
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +000027952006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2796
Wu, Chia-I (吳佳一)ea1e8d32006-01-15 15:01:45 +00002797 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
2798 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
2799 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
2800 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
2801
2802 * docs/CHANGES: Mention that vertical metrics are synthesized for
2803 fonts not having this info.
2804
28052006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2806
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002807 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002808 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002809 vertical metrics.
2810
2811 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002812 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
2813 which are monotone.
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002814
2815 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002816 formattings in vertical metrics faking. There is still room for
2817 improvements (and so does the CFF module).
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002818
28192006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2820
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002821 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
2822 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002823 the linear advance fields as they are only used by the outline
2824 glyphs.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002825
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002826 * include/freetype/freetype.h: Documentation updates and
2827 clarifications.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002828 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
2829 change need be made to the code.
2830
2831 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
2832 decide whether to use the auto-hinter according to documentation.
2833 There should to be no real difference.
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002834 Some checks (e.g., is text height positve?) after the glyph is
2835 loaded.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002836 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
2837 Be careful that scales won't be negative.
2838
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +000028392006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
2840
2841 * docs/CHANGES: Mention the size selection change.
2842
2843 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
2844 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
2845 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
Werner Lemberg3d8eeb82006-01-14 07:10:45 +00002846 matching for requests of type NOMINAL and REAL_DIM.
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +00002847
2848 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
2849 `pixel_height' is used for nominal height.
2850
2851 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
2852 face is bitmap only and driver doesn't provide `request_size'. This
2853 is added merely for completion as no driver satisfies the conditions.
2854
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +000028552006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2856
2857 Introduce new size selection interface.
2858
Werner Lembergf1c2b912006-01-13 14:53:28 +00002859 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +00002860 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
2861 `select_size'.
2862
2863 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
2864 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
2865 (FT_Select_Size, FT_Request_Size): API additions to export the new
2866 size selection interface.
2867
2868 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
2869 `FT_Request_Size'.
2870
2871 * include/freetype/internal/ftobjs.h (FT_Match_Size),
2872 src/base/ftobjs.c (FT_Match_Size): New function to match a size
2873 request against `available_sizes'. Drivers supporting bitmap strikes
2874 can use this function to implement `request_size'.
2875
2876 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
2877 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
2878 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
2879 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
2880 Update to new size selection interface.
2881
2882 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
2883 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
2884 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
2885 selection interface.
2886 Make `strike_index' FT_ULong and always defined.
2887 Use `load_strike_metrics' provided by SFNT interface.
2888
28892006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2890
2891 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
2892 `load_strike_metrics' used to load the strike's metrics.
2893
2894 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2895 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
2896
2897 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
2898
2899 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
2900 nominal size unless it is obviously incorrect.
2901
2902 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
2903 FNT driver.
2904
Werner Lemberg8ab09792006-01-12 08:12:27 +000029052006-01-12 Werner Lemberg <wl@gnu.org>
2906
2907 Prepare use of pscmap service within CFF module.
2908
2909 * include/freetype/internal/services/svpscmap.h: Include
2910 FT_INTERNAL_OBJECTS_H.
2911 (PS_Unicode_Index_Func): Removed. Unused.
2912 (PS_Macintosh_Name_Func): Renamed to...
2913 (PS_Macintosh_NameFunc): This.
2914 Update all callers.
2915 (PS_Adobe_Std_Strings_Func): Renamed to...
2916 (PS_Adobe_Std_StringsFunc): This.
2917 Update all callers.
2918 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
2919 Add `cmap' member.
2920 Update all callers.
2921 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
2922 Update all callers.
2923 (PS_Glyph_NameFunc): New typedef.
2924 (PS_Unicodes_InitFunc): Change arguments to expect a function
2925 and generic data pointer which returns a glyph name from a given
2926 index.
2927
2928 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
2929 ps_unicodes_char_next, pscmaps_interface): Updated.
2930
2931 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
2932
2933 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
2934 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
2935
2936 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
2937 (t1_cmap_unicode_init, t1_cmap_unicode_done,
2938 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
2939 t1_cmap_unicode_class_rec): Updated.
2940
2941 * src/type42/t42types.h (T42_FaceRec): Updated.
2942
29432006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)356a4d82006-01-12 03:33:16 +00002944
2945 * include/freetype/ftmac.h: Add declaration of new functions
2946 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
2947 were introduced by the jumbo patch on 2006-01-11.
2948
Werner Lemberg8ab09792006-01-12 08:12:27 +000029492006-01-11 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002950
Werner Lembergadf828f2006-01-11 10:08:49 +00002951 Fix Savannah bug #15056 and use pscmap service in psaux module.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002952
Werner Lembergadf828f2006-01-11 10:08:49 +00002953 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
2954 FT_UInt32 for `glyph_index'.
2955 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
2956 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
2957 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
2958 FT_UInt32.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002959
Werner Lembergadf828f2006-01-11 10:08:49 +00002960 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
2961 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
2962 variant glyph (this is, it has non-leading `.' in its name).
2963 (compare_uni_maps): Sort base glyphs before variant glyphs.
2964 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
2965 Reallocate only if number of used entries is much smaller.
2966 Updated to handle variant glyphs.
2967 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
2968 over variant glyphs.
2969 Simplify code.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002970
Werner Lembergadf828f2006-01-11 10:08:49 +00002971 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
2972 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
2973 t1_cmap_unicode_char_next): Use pscmap service.
2974 (t1_cmap_unicode_done): Updated.
2975
2976 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
2977 (T1_CMapUnicode): Use PS_Unicodes structure.
2978
29792006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2980
2981 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
2982 Intel, as reported by Sean McBride <sean@rogue-research.com> on
2983 2005-08-24.
2984
2985 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
2986 functions on Tiger.
2987
2988 * builds/unix/configure.ac: Add options and autochecks for Carbon
2989 functions availabilities, for MacOS X.
2990
2991 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002992 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
Werner Lembergadf828f2006-01-11 10:08:49 +00002993 macros to avoid unavailable functions.
2994 ftmac.c must be compiled without `-strict ansi', because it disables
2995 cpp macro to use ToolBox system call.
2996
2997 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
2998 macros to avoid unavailable functions.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002999
3000 * builds/mac/README: Detailed notes on function availabilities.
3001
3002 * docs/CHANGES: Notes about (possible) incompatibilities.
3003
Werner Lemberge8f92af2006-01-08 13:43:30 +000030042006-01-08 Werner Lemberg <wl@gnu.org>
3005
Werner Lemberg6cdab922006-01-08 22:34:01 +00003006 * docs/CHANGES: Updated.
3007
30082006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
3009
3010 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
3011 declaration.
3012
3013 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
3014
30152006-01-07 Werner Lemberg <wl@gnu.org>
3016
Werner Lemberge8f92af2006-01-08 13:43:30 +00003017 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
Werner Lemberg30bd2842006-01-08 19:38:42 +00003018 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
3019
3020 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
3021 Reported by Niels Boldt <nielsboldt@gmail.com>.
Werner Lemberge8f92af2006-01-08 13:43:30 +00003022
30232005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00003024
Werner Lemberg05cda082006-01-08 13:37:15 +00003025 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
3026 MPW compiler.
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00003027
David Turnere6bb9532005-12-23 13:32:06 +000030282005-12-23 David Turner <david@freetype.org>
3029
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003030 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
3031 refdoc' works correctly to generate the API reference in
3032 `docs/reference'.
David Turnere6bb9532005-12-23 13:32:06 +00003033
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003034 * src/tools/docmaker/tohtml.py (print_html_field,
3035 print_html_field_list): Update to output nicer fields lists in the
3036 API reference.
David Turnere6bb9532005-12-23 13:32:06 +00003037
3038 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003039 forces auto-hinting.
David Turnere6bb9532005-12-23 13:32:06 +00003040
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003041 * freetype/freetype.h: Updating the documentation for
3042 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
David Turnere6bb9532005-12-23 13:32:06 +00003043
Werner Lemberg6be99f92006-02-09 07:38:57 +000030442005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00003045
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003046 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
3047 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
3048 unsupported formats (fbit, NFNT). The number of available faces are
3049 passed via face->num_faces. If bitmap faces are embedded in sfnt
3050 resource, face->num_fixed_size is correctly set. In public API,
3051 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
3052 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00003053
3054 * doc/CHANGES: Mention the changes.
3055
Wu, Chia-I (吳佳一)ce34d122005-12-17 13:12:49 +000030562005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
3057
3058 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
3059 correctly (so that memory debug system won't panic).
3060
Wu, Chia-I (吳佳一)dcb8b712005-12-16 14:27:14 +000030612005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
3062
3063 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
3064 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
3065
3066 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
3067
3068 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3069 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
3070 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
3071
3072 * doc/CHANGES: Mention the changes.
3073
David Turner5b5f3822005-12-14 16:37:15 +000030742005-12-13 David Turner <david@freetype.org>
3075
Werner Lembergb79b5132005-12-20 12:01:58 +00003076 Change the implementation of the LIGHT hinting mode to completely
3077 disable horizontal hinting. This is an experimental effort to
3078 integrate David Chester's latest patch without affecting the other
3079 hinting modes as well.
David Turner5b5f3822005-12-14 16:37:15 +00003080
Werner Lembergb79b5132005-12-20 12:01:58 +00003081 Note that this doesn't force auto-hinting for all fonts, however.
David Turner5b5f3822005-12-14 16:37:15 +00003082
Werner Lembergb79b5132005-12-20 12:01:58 +00003083 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
3084 scaler_fiags here but...
3085 (af_glyph_hints_rescale): Here.
David Turner8def3c82005-12-14 16:38:31 +00003086
Werner Lembergb79b5132005-12-20 12:01:58 +00003087 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
3088 hinting for `light' hinting mode.
David Turnerdb0182f2005-12-14 21:16:33 +00003089
David Turnerdb0182f2005-12-14 21:16:33 +00003090
Werner Lembergb79b5132005-12-20 12:01:58 +00003091 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
3092 same location as other generated objects (i.e., within the `objs'
3093 directory of the current directory).
David Turnerdb0182f2005-12-14 21:16:33 +00003094
Werner Lembergb79b5132005-12-20 12:01:58 +00003095
3096 Add support for an embedded `BDF ' table within SFNT-based bitmap
3097 font files. This is used to store atoms & properties from the
3098 original BDF fonts that were used to generate the font file.
3099
3100 The feature is controlled by TT_CONFIG_OPTION_BDF within
3101 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
3102 font files.
3103
3104 At the moment, this is still experimental, the BDF table format
3105 isn't cast into stone yet.
3106
3107 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
3108 macro.
3109
3110 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
3111
3112 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
3113 [TT_CONFIG_OPTION_BDF]: New structure.
3114 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
3115
3116 * include/freetype/ttags.h (TTAG_BDF): New macro.
3117
3118 * src/sfnt/Jamfile (_sources): Add ttbdf.
3119
3120 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
3121
3122 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
3123 FT_SERVICE_BDF_H.
3124 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
3125 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
3126 (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
3127
3128 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
3129
3130 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
3131 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
3132 tt_face_free_bdf_props.
3133
3134 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
David Turner89a2a4b2005-12-14 20:38:15 +00003135
Werner Lemberg364db082005-12-07 20:34:11 +000031362005-12-07 Werner Lemberg <wl@gnu.org>
3137
3138 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
3139 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
3140
Wu, Chia-I (吳佳一)a3690cd2005-12-06 08:24:01 +000031412005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
3142
3143 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
3144 initialized twice.
3145 size->strike_index is not initialized.
3146
Werner Lemberg2a0903a2005-12-03 08:13:43 +000031472005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
3148
Werner Lemberg3b8db662005-12-06 10:47:44 +00003149 * src/type42/t42objs.c (T42_Face_Init): Replace call to
Werner Lemberg2a0903a2005-12-03 08:13:43 +00003150 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
3151
Werner Lembergb797fdb2005-11-30 08:48:32 +000031522005-11-30 Werner Lemberg <wl@gnu.org>
3153
3154 * docs/CHANGES: Document ftdump's `-v' option.
Werner Lembergb5d88e82005-11-30 08:55:51 +00003155 Document latest charmap code changes.
Werner Lembergb797fdb2005-11-30 08:48:32 +00003156
Werner Lemberg44e47d52005-11-30 18:47:49 +00003157 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
3158 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
3159
Wu, Chia-I (吳佳一)a28bc4c2005-11-30 02:39:10 +000031602005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
3161
3162 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
3163 tt_cmap12_char_map_binary): Fix compiler warnings.
3164
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +000031652005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
3166
Werner Lemberg44e47d52005-11-30 18:47:49 +00003167 Major update to distinguish between unsorted and overlapping
3168 segments for cmap format 4. For overlapping but sorted segments,
3169 which is previously considered unsorted, we still use binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003170
David Turner5b5f3822005-12-14 16:37:15 +00003171 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003172 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
3173
3174 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
David Turner5b5f3822005-12-14 16:37:15 +00003175 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003176 (tt_cmap4_reset): Removed.
3177 (tt_cmap4_init): Updated accordingly.
3178 (tt_cmap4_next): Updated accordingly.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003179 Take care of overlapping segments.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003180 (tt_cmap4_validate): Make sure the subtable is large enough.
3181 Do not check glyph_ids because some fonts set the length wrongly.
Werner Lemberg05cda082006-01-08 13:37:15 +00003182 Also, if all segments have offset 0, glyph_ids is always invalid.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003183 It does not cause any problem so far only because the check misses
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003184 equality.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003185 Distinguish between unsorted and overlapping segments.
3186 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
3187 to do `charcode => glyph index' by linear/binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003188 (tt_cmap4_char_index, tt_cmap4_char_next): Use
3189 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
3190 (tt_face_build_cmaps): Treat the return value of validator as flags
3191 for cmap.
3192
31932005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
3194
Werner Lemberg44e47d52005-11-30 18:47:49 +00003195 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
3196 New structures and functions for fast `next char'.
3197 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
3198 index' by binary search.
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +00003199 (tt_cmap12_char_index, tt_cmap12_char_next): Use
3200 tt_cmap12_char_map_binary.
3201 (tt_face_build_cmaps): Check table and offset correctly (equality is
3202 missing).
3203
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032042005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003205
3206 * builds/amiga/smakefile: Adjusted the compiler options
3207 to the current sources, now really builds the gxvalid, gzip
3208 and psnames modules.
3209
3210 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
3211 in the file cache was off by one byte which could cause false
3212 errors in font files.
3213
Werner Lemberg6be99f92006-02-09 07:38:57 +000032142005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)6b1c5972005-11-24 05:16:57 +00003215
3216 * builds/mac/FreeType.m68k_far.make.txt,
3217 builds/mac/FreeType.m68k_cfm.make.txt,
3218 builds/mac/FreeType.ppc_classic.make.txt,
3219 builds/mac/FreeType.ppc_carbon.make.txt:
3220 Updated for MPW to build all available modules.
3221
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032222005-11-21 Håvard Wall <haavardw@ifi.uio.no>
Werner Lemberg67ba2112005-11-21 17:32:03 +00003223
3224 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
3225 memory leak.
3226
Werner Lemberg840232a2005-11-21 12:36:42 +000032272005-11-21 Werner Lemberg <wl@gnu.org>
3228
3229 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
3230
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +000032312005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3232
Werner Lemberg840232a2005-11-21 12:36:42 +00003233 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
Werner Lemberg05cda082006-01-08 13:37:15 +00003234 added twice to image_start if image_format was 2 or 5.
Wu, Chia-I (吳佳一)275be9b2005-11-21 03:05:34 +00003235
32362005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3237
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +00003238 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
3239 before loading the table directory.
3240
3241 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
3242 tt_face_load_directory): Delay sfnt_dir_check from
3243 tt_face_load_sfnt_header to tt_face_load_directory.
3244
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +000032452005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
3246
3247 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
3248 error code.
3249 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
3250 is synthesized into a TTC font with one offset table.
3251 (tt_face_load_sfnt_header): Use sfnt_init.
Werner Lemberg05cda082006-01-08 13:37:15 +00003252 Fix an invalid access if the font is TTC and face_index is -1.
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +00003253
Werner Lemberg1a293d62005-11-18 08:23:06 +000032542005-11-18 Werner Lemberg <wl@gnu.org>
3255
3256 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
3257 of metrics instead of aborting. Patch suggested by Derek Noonburg.
3258
Werner Lemberg6c990452005-11-18 21:10:59 +00003259 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3260 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
3261 the glyph properly if no hinter is available.
3262
3263 * docs/CHANGES: Mention scaling bug.
3264
Suzuki, Toshiya (鈴木俊哉)8d81d412005-11-18 07:47:06 +000032652005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3266
3267 * include/freetype/ftgxval.h, src/base/ftgxval.c
3268 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
3269 buffers allocated by gxvalid module.
3270 * include/freetype/ftotval.h, src/base/ftotval.c
3271 (FT_OpenType_Free): New function to free buffer allocated by
3272 otvalid module.
3273
Wu, Chia-I (吳佳一)cb182382005-11-18 04:29:31 +000032742005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
3275
3276 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3277 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3278 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
3279 s/FT_EXPORT/FT_BASE/.
3280
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032812005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner4859ac42005-11-17 14:21:07 +00003282
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003283 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
3284 FT_Trace_Get_Name, FT_Message, FT_Panic),
3285 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
3286 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
3287
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032882005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003289
Werner Lemberg1a293d62005-11-18 08:23:06 +00003290 * builds/amiga/makefile, builds/amiga/makefile.os4,
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003291 builds/amiga/smakefile,
Detlef Würkner4859ac42005-11-17 14:21:07 +00003292 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
Werner Lemberg1a293d62005-11-18 08:23:06 +00003293 build files (added support for the gxvalid module).
Detlef Würkner4859ac42005-11-17 14:21:07 +00003294
Werner Lembergcfc0cf22005-11-17 08:12:00 +000032952005-11-17 Werner Lemberg <wl@gnu.org>
3296
3297 Add vertical metrics support to OpenType CFF outlines. Based on a
Werner Lemberg1a293d62005-11-18 08:23:06 +00003298 patch from Mike Moening <MikeM@RetekSolutions.com>.
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003299
3300 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
3301 (cff_slot_load): Use cff_face_get_vertical_metrics.
3302
3303 * docs/CHANGES: Updated.
3304
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +000033052005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
3306
3307 * src/base/ftcalc.c (FT_MulTo64): Commented out.
3308
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003309 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
3310 src/base/ftcalc.c (FT_SqrtFixed),
3311 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
3312 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003313 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003314 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
3315 include/freetype/internal/ftstream.h (FT_Stream_Open),
3316 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
3317 s/FT_EXPORT/FT_BASE/.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003318
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003319 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
3320 too.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003321
David Turnerf7cc1812005-11-15 17:30:56 +000033222005-11-15 David Turner <david@freetype.org>
3323
Werner Lemberg674ba912005-11-16 18:09:27 +00003324 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
David Turnerf7cc1812005-11-15 17:30:56 +00003325 invalid computations, resulting in very weird bugs in TrueType
Werner Lemberg674ba912005-11-16 18:09:27 +00003326 bytecode hinted fonts.
David Turnerf7cc1812005-11-15 17:30:56 +00003327
Werner Lemberg674ba912005-11-16 18:09:27 +00003328 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
3329 structure copy each time.
David Turnerf7cc1812005-11-15 17:30:56 +00003330
Werner Lembergd829ff72005-11-12 17:07:11 +000033312005-11-11 Werner Lemberg <wl@gnu.org>
3332
3333 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
3334 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
3335
David Turnerf7cc1812005-11-15 17:30:56 +00003336 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
Werner Lembergd829ff72005-11-12 17:07:11 +00003337 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
3338
3339 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
3340 (FT_Sqrt32): Commented out. Unused.
3341
3342 * include/freetype/cache/ftccache.h:
3343 s/ftc_node_destroy/FTC_Node_Destroy/.
3344
3345 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
3346
3347 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
3348 (FTC_Node_Destroy): New exported wrapper function for
3349 ftc_node_destroy.
3350
3351 * src/cache/ftcmanag.c: Include ftccback.c.
3352
Werner Lemberg4309edc2005-11-11 15:49:14 +000033532005-11-10 Werner Lemberg <wl@gnu.org>
3354
3355 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
3356 Comment out. Unused.
3357
Werner Lembergf2c53302005-11-11 16:20:59 +00003358 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
3359
Werner Lemberg4309edc2005-11-11 15:49:14 +000033602005-11-10 Christian Biesinger <cbiesinger@web.de>
3361
3362 * builds/beos/beos.mk: Call beos-def.mk before anything else to
3363 define the separator.
3364
3365 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
3366
Werner Lembergea4c3dc2005-11-08 09:10:16 +000033672005-11-07 Werner Lemberg <wl@gnu.org>
3368
3369 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
3370 table available'. From Sergey Tolstov <stolstov@esri.com>.
3371
Werner Lemberg4e03fe72006-04-29 06:20:09 +000033722005-11-03 Ville Syrjälä <syrjala@sci.fi>
Werner Lembergb2d02532005-11-04 06:58:49 +00003373
3374 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
3375
33762005-11-02 Werner Lemberg <wl@gnu.org>
3377
3378 Make compiling instructions in docs/CUSTOMIZE work again.
3379
3380 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
3381 (CFLAGS): Don't include @CPPFLAGS@.
3382 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
3383
David Turnerdab24542005-11-02 09:24:00 +000033842005-10-28 David Turner <david@freetype.org>
3385
Werner Lembergcee37a32005-11-12 07:34:40 +00003386 Update build system to support the generation of a list of exported
3387 symbols or Windows .DEF files by parsing the public headers with the
Werner Lembergb2d02532005-11-04 06:58:49 +00003388 `apinames' tool located in src/tools/apinames.c.
David Turnerdab24542005-11-02 09:24:00 +00003389
Werner Lembergb2d02532005-11-04 06:58:49 +00003390 Only tested on Unix at the moment. On Windows, the .DEF file is
3391 generated but isn't used yet to generate a DLL.
David Turnerdab24542005-11-02 09:24:00 +00003392
Werner Lembergcee37a32005-11-12 07:34:40 +00003393 * builds/exports.mk: New file.
David Turnerdab24542005-11-02 09:24:00 +00003394
Werner Lembergcee37a32005-11-12 07:34:40 +00003395 * builds/freetype.mk: Include exports.mk.
3396 (dll): New target.
3397 (clean_project_dos): Fix rule.
David Turnerdab24542005-11-02 09:24:00 +00003398
Werner Lembergcee37a32005-11-12 07:34:40 +00003399 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
3400 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
3401 variables for controlling executable extensions.
David Turnerdab24542005-11-02 09:24:00 +00003402
Werner Lembergcee37a32005-11-12 07:34:40 +00003403 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
3404 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
3405 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
3406 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
3407 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
3408 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
3409
3410 * Jamfile (GenExportSymbols): Updated.
3411
3412
3413 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
3414 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
3415 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
3416
3417
3418 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
3419 (FT_MulFix): Performance optimizations.
3420
3421
3422 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
3423 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
3424 checking points and contours. Update callers to use
3425 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
3426 at profile-detected hot-spots.
3427
3428 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
3429 to 0 to not call `AdjustPoints' every time.
3430
David Turnerdab24542005-11-02 09:24:00 +00003431
Werner Lembergb2d02532005-11-04 06:58:49 +00003432 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
3433 FT_Angle_Diff.
David Turnerdab24542005-11-02 09:24:00 +00003434
Werner Lembergcee37a32005-11-12 07:34:40 +00003435 * src/autofit/afhints.c (af_direction_compute): Re-implement.
3436 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
Werner Lembergb2d02532005-11-04 06:58:49 +00003437 AF_ANGLE_DIFF to speed up the detection of inflexions.
David Turnerdab24542005-11-02 09:24:00 +00003438
Werner Lembergcee37a32005-11-12 07:34:40 +00003439
3440 * src/tools/apinames.c: Include <string.h>.
3441 (OutputFormat): New enumeration.
3442 (names_dump): Add two parameters to control output format and DLL
3443 name.
3444 (names_dump_windef): Removed. Code folded into `names_dump'.
3445 (read_header_file): Use isalnum, not isalpha. Otherwise function
3446 names with digits aren't read correctly.
3447 (usage): Updated.
3448 (main): New option `-o' to control output file name.
3449 New option `-d' to indicate DLL file name.
3450 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
3451
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +000034522005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3453
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003454 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
3455 ftlib.prj is unmaintained and incompatible with current tree.
3456 freetype.mak is unrecoverably broken.
3457
3458 * builds/mac/ftlib.prj.xml: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003459 Generated by Metrowerks CodeWarrior 9.0.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003460
3461 * builds/mac/FreeType.m68k_far.make.txt,
3462 builds/mac/FreeType.m68k_cfm.make.txt,
3463 builds/mac/FreeType.ppc_classic.make.txt,
3464 builds/mac/FreeType.ppc_carbon.make.txt: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003465 Skeleton files of MPW makefiles.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003466
3467 * builds/mac/ascii2mpw.py: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003468 Python script to make MPW makefile from skeleton.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003469
3470 * builds/mac/README: Updated.
3471 Almost rewritten to use new files.
3472
34732005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3474
Werner Lemberg05cda082006-01-08 13:37:15 +00003475 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
3476 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +00003477 and George Williams.
3478
Werner Lemberg4b5661c2005-10-27 21:28:35 +000034792005-10-27 Werner Lemberg <wl@gnu.org>
3480
3481 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
3482 Obsolete.
3483
Werner Lemberg43b057b2005-10-26 18:37:40 +000034842005-10-25 Werner Lemberg <wl@gnu.org>
3485
3486 * src/sfnt/sfdriver.c (sfnt_interface): Move out
3487 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
3488 Ibbs <tibs@sj.co.uk>.
3489
Werner Lemberg6c0e7342005-10-23 19:31:01 +000034902005-10-23 Werner Lemberg <wl@gnu.org>
3491
3492 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
3493 C++.
3494
David Turner398d64c2005-10-21 10:01:25 +000034952005-10-21 David Turner <david@freetype.org>
3496
Werner Lemberg90968f72005-10-22 10:34:45 +00003497 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
3498 Another realloc memory counting bug fix.
David Turner398d64c2005-10-21 10:01:25 +00003499
Werner Lemberg90968f72005-10-22 10:34:45 +00003500 * src/tools/Jamfile: Add missing file.
David Turner398d64c2005-10-21 10:01:25 +00003501
Werner Lemberg90968f72005-10-22 10:34:45 +00003502 * src/lzw/Jamfile: Fix incorrect source file reference.
David Turner398d64c2005-10-21 10:01:25 +00003503
David Turnerc1b6d082005-10-20 15:33:34 +000035042005-10-20 David Turner <david@freetype.org>
3505
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003506 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
3507 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
3508 to better account for memory reallocations.
David Turnerc1b6d082005-10-20 15:33:34 +00003509
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003510 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
David Turner398d64c2005-10-21 10:01:25 +00003511 src/lzw/rules.mk: First version of LZW loader re-implementation.
3512 Apparently, this saves about 330 KB of heap memory when loading
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003513 timR24.pcf.Z.
David Turnerc1b6d082005-10-20 15:33:34 +00003514
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +000035152005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
3516
3517 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
3518 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003519 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
3520 FT_EXPORT/FT_EXPORT_DEF tagging.
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +00003521
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +000035222005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003523
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003524 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
3525 be invalid when FT_LOAD_NO_SCALE is set.
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003526
35272005-10-17 David Turner <david@freetype.org>
3528
3529 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
3530 FT_New_Size if we are opening a face with face_index < 0 (which is
3531 only used for testing the format).
3532
3533 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
3534 Remove compiler warning.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003535
35362005-10-16 David Turner <david@freetype.org>
3537
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003538 * src/tools/apinames.c: Add new tool to extract public API function
3539 names from header files.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003540
35412005-10-05 Werner Lemberg <wl@gnu.org>
3542
3543 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
3544 a hinting engine of its own.
3545
3546 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
3547
3548 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
3549 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
3550 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
3551 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
3552 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
3553
3554 * docs/CHANGES: Document it.
3555
35562005-09-27 Werner Lemberg <wl@gnu.org>
3557
3558 * builds/unix/freetype2.m4: Add license exception so that the file
3559 can be used in any other autoconf script.
3560
35612005-09-26 David Turner <david@freetype.org>
3562
3563 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
3564 computation of the `vertical' flag, causing ugly things in LCD mode
3565 and others.
3566
35672005-09-23 David Turner <david@freetype.org>
3568
3569 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
3570 prevented internal hint mode bitflags from being computed correctly.
3571
3572 * src/base/Jamfile: Adding src/base/ftgxval.c.
3573
3574 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
3575 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
3576 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
3577 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3578 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3579 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
3580 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3581 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
3582 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
3583 src/truetype/ttgload.c: Remove _many_ compiler warnings when
3584 compiling with Visual C++ at maximum level (/W4).
3585
3586 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
3587 implementation with one using lookup tables. This simple thing
3588 speeds up glyph loading by 18%, according to ftbench!
3589
3590 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
3591 `get_sfnt' and `load_sfnt' module interfaces.
3592
35932005-09-22 Werner Lemberg <wl@gnu.org>
3594
3595 * docs/CHANGES: Mention SING Glyphlet support.
3596
35972005-09-22 David Turner <david@freetype.org>
3598
3599 * src/base/Jamfile: Disable compilation of ftgxval module
3600 temporarily.
3601
36022005-09-19 David Somers <dsomers@omz13.com>
3603
3604 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
3605 font to have no `head' table if tables `SING' and `META' are
3606 present; this is to support `SING Glyphlet'.
3607
3608 `SING Glyphlet' is an extension to OpenType developed by Adobe
3609 primarily to facilitate adding supplemental glyphs to an OpenType
3610 font (with emphasis on, but not necessariy limited to, gaiji to a
3611 CJK font). A SING Glyphlet Font is an OpenType font that contains
3612 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
3613 `cmap', `BASE', and `GSUB' tables are present with the same format
3614 and functionaliy as a regular OpenType font; there are no `name',
3615 `head', `OS/2', and `post' tables; there are two new tables, `SING'
3616 which contains details about the glyphlet, and `META' which contains
3617 metadata.
3618
3619 Further information on the SING Glyphlet format can be found at:
3620
3621 http://www.adobe.com/products/indesign/sing_gaiji.html
3622
3623 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
3624 macros for the OpenType tables `SING' and `META'. These two tables
3625 are used in SING Glyphlet Format fonts.
3626
36272005-09-09 Werner Lemberg <wl@gnu.org>
3628
3629 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
3630 FT_FACE_FLAG_KERNING which has been commented out erroneously.
3631
3632 * docs/CHANGES: Document it.
3633
36342005-09-05 Werner Lemberg <wl@gnu.org>
3635
3636 Fixes for `make multi' and using C++ compiler.
3637
3638 * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
3639 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
3640 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
3641 (gxv_compare_ranges): Make it static.
3642 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
3643 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
3644 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
3645 trace messages.
3646 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
3647 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3648 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
3649 gxvcommn.h.
3650
3651 * gxvalid/gxvcommn.h: Add prototypes for
3652 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
3653 gxv_XStateTable_validate, gxv_array_getlimits_byte,
3654 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
3655 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
3656 gxv_odtect_validate.
3657 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3658 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
3659 gxvcommn.c.
3660
3661 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
3662 gxv_bsln_parts_fmt1_validate): Improve trace messages.
3663
3664 * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
3665 * gxvalid/gxvfeat.h: New file.
3666
3667 * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
3668 message.
3669
3670 * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
3671 (gxv_kern_subtable_fmt1_valueTable_load,
3672 gxv_kern_subtable_fmt1_subtable_setup,
3673 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
3674 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
3675 Improve trace message.
3676 (gxv_kern_validate_generic): Fix C++ compiler error.
3677 Improve trace message.
3678 (gxv_kern_validate_classic): Fix C++ compiler error.
3679
3680 * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
3681 with FT_LOCAL_DEF.
3682
3683 * gxvalid/gxvmort1.c
3684 (gxv_mort_subtable_type1_substitutionTable_load,
3685 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
3686 (gxv_mort_subtable_type1_substTable_validate): Improve trace
3687 message.
3688 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3689
3690 * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
3691 gxv_mort_subtable_type2_subtable_setup,
3692 gxv_mort_subtable_type2_ligActionOffset_validate,
3693 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
3694 errors.
3695 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3696
3697 * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
3698 with FT_LOCAL_DEF.
3699
3700 * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
3701 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
3702 errors.
3703 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3704
3705 * gxvalid/gxvmort.c: Include gxvfeat.h.
3706 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
3707 Declare with FT_LOCAL_DEF.
3708 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
3709 messages.
3710
3711 * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
3712
3713 * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
3714 with FT_LOCAL_DEF.
3715
3716 * gxvalid/gxvmorx1.c
3717 (gxv_morx_subtable_type1_substitutionTable_load,
3718 gxv_morx_subtable_type1_subtable_setup,
3719 gxv_morx_subtable_type1_entry_validate,
3720 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
3721 compiler errors.
3722 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3723
3724 * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
3725 gxv_morx_subtable_type2_subtable_setup,
3726 gxv_morx_subtable_type2_ligActionIndex_validate,
3727 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
3728 errors.
3729 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3730 Fix typo.
3731
3732 * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
3733 with FT_LOCAL_DEF.
3734
3735 * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
3736 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
3737 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3738
3739 * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
3740 gxv_morx_validate): Improve trace message.
3741
3742 * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
3743 warnings.
3744 (gxv_opbd_validate): Improve trace message.
3745
3746 * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
3747 appropriate.
3748 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
3749 message.
3750
3751 * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
3752 parameter. Update all callers.
3753 (gxv_trak_validate): Improve trace message.
3754
3755 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
3756
37572005-09-01 Werner Lemberg <wl@gnu.org>
3758
3759 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
3760
3761 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
3762 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
3763 typo.
3764
3765 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3766 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
3767 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
3768 messages.
3769 Decorate constants with `U' and `L' where appropriate.
3770 Fix compiler warnings.
3771
37722005-08-31 Werner Lemberg <wl@gnu.org>
3773
3774 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
3775
3776 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
3777
3778 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
3779
3780 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
3781 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
3782 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3783 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3784 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
3785 messages.
3786 Decorate constants with `U' and `L' where appropriate.
3787 Fix compiler warnings.
3788
37892005-08-30 Werner Lemberg <wl@gnu.org>
3790
3791 * src/gxvalid/README: Revised.
3792 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
3793 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
3794 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
3795 parameter. Update all callers.
3796 Improve trace messages.
3797 Some formatting.
3798
37992005-08-29 Werner Lemberg <wl@gnu.org>
3800
3801 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
3802 a preliminary section with some explanations about user allocation.
3803
3804 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
3805 Don't abort if there are no data types, functions, etc., in a
3806 section.
3807 Print synopsis only if we have a data type, function, etc.
3808
3809 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
3810 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
3811 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
3812
38132005-08-28 George Williams <gww@silcom.com>
3814
3815 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
3816 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
3817
38182005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
3819
3820 * builds/unix/freetype2.in (CFlags): Add missing directory.
3821
38222005-08-24 Werner Lemberg <wl@gnu.org>
3823
3824 * docs/CHANGES: Mention gxvalid module.
3825
38262005-08-23 Werner Lemberg <wl@gnu.org>
3827
3828 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
3829 render mode properly. Reported by chris@dokein.co.uk.
3830
Werner Lemberg6be99f92006-02-09 07:38:57 +000038312005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003832
3833 Add gxvalid module to validate TrueType GX/AAT tables.
3834
3835 Modifications on existing files:
3836
3837 * Jamfile: Register gxvalid module.
3838 * src/base/Jamfile: Register ftgxval.c.
3839 * src/base/rule.mk: Register ftgxval.c.
3840 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
3841
3842 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
3843 to include gxvalid header file.
3844 * include/freetype/config/ftmodule.h: Register gxv_module_class.
3845
3846 * include/freetype/ftchapters.h: Add comment about gx_validation.
3847 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
3848 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
3849 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
3850
3851 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
3852 macro for gxvalid service.
3853 * include/freetype/internal/fttrace.h: Add trace facilities for
3854 gxvalid.
3855
3856 New files on existing directories:
3857
3858 * include/freetype/internal/services/svgxval.h: Registration of
3859 validation service for TrueType GX/AAT and classic kern table.
3860 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
3861 * src/base/ftgxval.c: Public API of gxvalid.
3862
3863 New files under src/gxvalid/:
3864
3865 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
3866 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
3867 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
3868 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
3869 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
3870 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
3871 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
3872 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
3873 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
3874 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
3875 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
3876 src/gxvalid/gxvtrak.c: New files, gxvalid body.
3877
38782005-08-21 Werner Lemberg <wl@gnu.org>
3879
3880 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
3881 to (0,0) if bit 1 of the `head' table isn't set. This improves
3882 rendering of buggy fonts.
3883
38842005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
3885
3886 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
3887 ttmetrics here. TrueType fonts with only sbits always have
3888 ttmetrics.valid set to false.
3889
3890 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
3891 valid before loading outline glyph.
3892
3893 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
3894
38952005-08-20 Werner Lemberg <wl@gnu.org>
3896
3897 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
3898 `hhea' table for SFNT Mac fonts. Change based on a patch by
3899 mpsuzuki@hiroshima-u.ac.jp.
3900
39012005-08-20 Masatake YAMATO <jet@gyve.org>
3902
3903 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
3904 of ft_setjmp.
3905
39062005-08-19 Werner Lemberg <wl@gnu.org>
3907
3908 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
3909 warnings.
3910
39112005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3912
3913 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
3914 messages.
3915
39162005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3917
3918 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
3919 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
3920 with slight changes.
3921 Update all callers.
3922 (TT_New_Context): Now takes TT_Driver argument directly.
3923 Update all callers.
3924
3925 * src/truetype/ttobjs.h (tt_slot_init): New function.
3926 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
3927 context here.
3928 (tt_slot_init): New function to create extra points for the internal
3929 glyph loader. We then use it directly, instead of face's glyph
3930 loader, when loading glyph.
3931
3932 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
3933 glyph slot initialization.
3934 (Load_Glyph): Load flag dependencies are handled here. Return error
3935 if size is NULL.
3936
3937 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
3938 (org_to_cur): Removed.
3939 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
3940 (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
3941 (TT_Process_Simple_Glyph): s/load/loader/.
3942 Use loader->pp values instead of recalculation.
3943 Use TT_Hint_Glyph.
3944 No need to save/restore loader->stream before and after
3945 TT_Vary_Get_Glyph_Deltas now.
3946 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
3947 points.
3948 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
3949 Savannah bug #13107.
3950 Forget glyph frame before calling TT_Process_Simple_Glyph.
3951 Use TT_LOADER_SET_PP.
3952 Scale all four phantom points.
3953 Split off some functionality to ...
3954 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
3955 new functions.
3956 (TT_Load_Glyph): Set various fields of `glyph' here, not in
3957 load_truetype_glyph and compute_glyph_metrics.
3958 Split off some functionality to ...
3959 (load_sbit_image, tt_loader_init): These new functions.
3960 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
3961
39622005-08-08 Werner Lemberg <wl@gnu.org>
3963
3964 * docs/INSTALL.ANY: Updated.
3965
39662005-08-05 Werner Lemberg <wl@gnu.org>
3967
3968 * src/cff/cffgload.c (cff_builder_close_contour),
3969 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
3970 zero `outline' pointer.
3971
3972 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
3973 `loader' address.
3974
39752005-08-03 Werner Lemberg <wl@gnu.org>
3976
3977 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
3978 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
3979 to make X work again.
3980
39812005-08-02 Werner Lemberg <wl@gnu.org>
3982
3983 * src/otvalid/otvcommn.h: Remove dead code.
3984
39852005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
3986
3987 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
3988 functions.
3989
3990 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
3991 functions.
3992 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
3993 zone.
3994 Move code that runs fpgm to tt_size_run_fpgm.
3995 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
3996 (tt_glyphzone_new): Allocate right size of arrays.
3997 Set max_points and max_contours properly.
3998
39992005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
4000
4001 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
4002 computations and clean up.
4003
4004 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
4005 internal copy of metrics.
4006
40072005-07-12 Werner Lemberg <wl@gnu.org>
4008
4009 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
4010 Reported by Xerxes.
4011
40122005-07-04 Werner Lemberg <wl@gnu.org>
4013
4014 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
4015 Reported by Brett Hutley.
4016
40172005-06-30 David Turner <david@freetype.org>
4018
4019 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
4020 Removing compiler warnings (Visual C++ /W4).
4021
4022
4023 Implement a work-around for broken C preprocessor in Visual C++ (it
4024 has been confirmed by the MS developers that it is indeed a bug
4025 which won't be fixed in the very near future).
4026
4027 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
4028
4029 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
4030 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
4031 avoid argument expansion by argument prescan.
4032 Append `Func' to all affected macros and change them to take just a
4033 single argument. Example: `AttachList' is renamed to
4034 `AttachListFunc'.
4035
4036 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
4037 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
4038 affected by the changes to OTV_NESTx and modify them to take just a
4039 single argument.
4040
40412005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
4042
4043 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
4044 ft_glyphslot_grid_fit_metrics.
4045
4046 * src/truetype/ttgload.c (compute_glyph_metrics): Use
4047 ft_glyphslot_grid_fit_metrics.
4048
4049 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
4050 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
4051 ft_glyphslot_grid_fit_metrics.
4052 FT_Outline_Get_CBox is called twice.
4053
4054 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
4055 reasonable values when emboldening outline glyphs. The theoretic
4056 ones are unrealistic.
4057
40582005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
4059
4060 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
4061 halved.
4062
4063 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
4064 strength.
4065 Don't increase slot->advance.y.
4066
40672005-06-16 Werner Lemberg <wl@gnu.org>
4068
4069 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
4070 (FREETYPE_PATCH): Set to 0.
4071
4072 * builds/unix/configure.ac (version_info): Set to 9:9:3.
4073 Currently, we are still binary compatible.
4074
4075 * builds/win32/visualc/index.html,
4076 builds/win32/visualc/freetype.dsp,
4077 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
4078
4079 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
4080 s/2.1.9/2.1.10/.
4081
4082 * docs/CHANGES, docs/VERSION.DLL: Updated.
4083
4084 * ChangeLog: Split off older entries into...
4085 * ChangeLog.20, ChangeLog.21: These new files.
4086
40872005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
4088
4089 The next release will be 2.2.0, so don't worry about source code
4090 backwards compatibility.
4091
4092 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
4093 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
4094 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
4095 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
4096 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
4097 parameters with `const' where appropriate.
4098
40992005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
4100
4101 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
4102 to make glyphs centered vertically.
4103
4104 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
4105 vertBearingY to make glyphs centered vertically.
4106 Fix some bugs in vertical metrics:
4107
4108 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
4109 units.
4110 . As we use the glyph's cbox to calculate the top bearing now
4111 there iss no need to adjust `top'.
4112
41132005-06-15 Werner Lemberg <wl@gnu.org>
4114
4115 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
4116 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
4117
41182005-06-13 Werner Lemberg <wl@gnu.org>
4119
4120 * docs/release: Update.
4121
4122----------------------------------------------------------------------------
4123
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00004124Copyright 2005, 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004125David Turner, Robert Wilhelm, and Werner Lemberg.
4126
4127This file is part of the FreeType project, and may only be used, modified,
4128and distributed under the terms of the FreeType project license,
4129LICENSE.TXT. By continuing to use, modify, or distribute this file you
4130indicate that you have read the license and understand and accept it
4131fully.
4132
4133
4134Local Variables:
4135version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004136coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004137End: