blob: 4fe7145a9d7a56d14457c2db5b06aa953895b39d [file] [log] [blame]
David Turner2628ea92007-01-10 13:15:56 +000012007-01-10 David Turner <david@freetype.org>
2
3 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections):
4 fixed a typo which created an endless loop with some malformed
5 font files
6
Werner Lembergbf02d392007-01-10 07:07:37 +000072007-01-10 Derek Clegg <dclegg@apple.com>
8
9 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
10 values.
11
David Turnerf48b60e2007-01-08 15:15:32 +0000122007-01-08 David Turner <david@freetype.org>
13
Werner Lembergcc7f12a2007-01-09 10:37:36 +000014 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +000015
Werner Lembergcc7f12a2007-01-09 10:37:36 +000016 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
17 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +000018 corresponding to a given character pixel size.
19
Werner Lembergcc7f12a2007-01-09 10:37:36 +000020 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
21 `gasp' table, in order to avoid potential problems with later
22 versions.
David Turnerf48b60e2007-01-08 15:15:32 +000023
Werner Lembergcc7f12a2007-01-09 10:37:36 +000024 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
25 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +000026
Werner Lembergcc7f12a2007-01-09 10:37:36 +000027 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
28 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
29 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
30 default build.
David Turnerf48b60e2007-01-08 15:15:32 +000031
Werner Lemberge6b6f372007-01-07 00:06:47 +0000322007-01-07 Werner Lemberg <wl@gnu.org>
33
Werner Lembergb8004d22007-01-07 09:13:38 +000034 * src/cid/cidparse.c (cid_parser_new): Improve error message for
35 Type 11 fonts.
36 Scan for `/sfnts' token.
37
382007-01-07 Werner Lemberg <wl@gnu.org>
39
40 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +000041
Werner Lembergbe5f7972007-01-06 07:51:48 +0000422007-01-06 Werner Lemberg <wl@gnu.org>
43
44 * src/cff/cffload.c (cff_index_init): Remove unused variable.
45 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
46
David Turnera8cf42b2007-01-04 16:46:46 +0000472007-01-04 David Turner <david@freetype.org>
48
Werner Lembergf6294392007-01-06 07:47:45 +000049 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
50 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +000051
Werner Lembergf6294392007-01-06 07:47:45 +000052
53 Do not allocate interpreter-specific tables in memory if we are not
54 going to load glyphs with the bytecode interpreter anyway.
55
56 * src/truetype/ttgload.c (tt_loader_init): Load execution context
57 only if glyph is hinted.
58 Updated.
59 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
60 and `cvs_ready'.
61 Add `tt_size_ready_bytecode' declaration.
62 * src/truetype/ttobjs.c (tt_size_done_bytecode,
63 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
64 (tt_size_init): Move most code into `tt_size_init_bytecode'.
65 (tt_size_done): Move most code into `tt_size_done_bytecode'.
66 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
David Turner384be232007-01-05 15:32:01 +000067
David Turner91a34022007-01-05 14:47:08 +000068
Werner Lembergf6294392007-01-06 07:47:45 +000069 Don't extract the metrics table from the SFNT font file. Instead,
70 reparse it on each glyph load. The runtime difference is not
71 noticeable, and it can save a lot of heap memory when memory-mapped
72 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +000073
Werner Lembergf6294392007-01-06 07:47:45 +000074 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
75 `horz_metrics_offset' and `vert_metrics_ofset'.
76 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
77 Updated.
78
79
80 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
81
82
83 Do not load the CFF index offsets into memory, since this wastes a
84 *lot* of heap memory with large Asian CFF fonts. There is no
85 significant performance loss.
86
87 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
88 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
89 `data_size'.
90 (CFF_CharsetRec): Add field `num_glyphs'.
91
92 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
93 cff_charset_cid_to_gindex): New functions.
94 (cff_new_index): Renamed to...
95 (cff_index_init): This. Update all callers.
96 Updated -- some code has been moved to `cff_index_load_offsets'.
97 (cff_done_index): Renamed to...
98 (cff_index_done): This. Update all callers.
99 (cff_index_get_pointers, cff_index_access_element): Updated to use
100 stream offsets.
101 (cff_charset_compute_cids): Set `num_glyphs' field.
102 (cff_encoding_load): Updated.
103
104 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000105
1062007-01-04 David Turner <david@freetype.org>
107
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000108 * docs/INSTALL.UNIX: Simplify some parts, add reference to
109 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000110
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000111 * README.CVS: Add common problem description and solution
112 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000113
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000114 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000115
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000116 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000117
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000118 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000119
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000120 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
121 (TWorker): This.
122 Remove `count_table' and `memory'.
123 Make `grays' a pointer.
124 (TRaster): New structure.
125 (count_table): New static array.
126 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
127 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
128 ft_black_set_mode, ft_black_render): Updated.
129 (ft_black_init): Don't initialize `count_table'.
130 (ft_black_reset): Use the render pool. This saves about 6KB of
131 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000132
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000133 * src/smooth/ftgrays.c (TRaster): Replaced with...
134 (TWorker): This.
135 Remove `memory'.
136 (TRaster): New structure.
137
138 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
139 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
140 gray_render_span, gray_raster_render): Updated.
141 (gray_raster_reset): Use the render pool. This saves about 6KB of
142 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000143
David Turner8a6c44e2007-01-04 17:03:11 +0000144 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
145 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000146 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
147 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
148 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000149
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000150 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
151 Remove a typo that results in no hinting and a memory leak with some
152 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000153
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000154 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000155 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000156 CFF_Faces in it. We need to close all faces before destroying the
157 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000158
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001592007-01-02 Werner Lemberg <wl@gnu.org>
160
161 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
162 Remove compiler warning.
163
David Turner9207e002007-01-02 16:58:13 +00001642007-01-02 David Turner <david@freetype.org>
165
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000166 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000167
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001682006-12-31 Masatake YAMATO <jet@gyve.org>
169
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000170 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
171 function.
172 Check uniqueness of the gid pairs.
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000173 (gxv_kern_subtable_fmt0_validate): Move some code to
174 `gxv_kern_subtable_fmt0_pairs_validate'.
175
David Turner115b4422006-12-22 11:37:05 +00001762006-12-22 David Turner <david@freetype.org>
177
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000178 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
179 warnings.
David Turner115b4422006-12-22 11:37:05 +0000180
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000181 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
182 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000183
Werner Lemberg4755bf72006-12-16 08:58:44 +00001842006-12-16 Anders Kaseorg <anders@kaseorg.com>
185
186 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
187 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
188
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001892006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
190
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +0000191 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000192 sync with the modification by Jens Claudius on 2006-08-22; cf.
193 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 +0000194
1952006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
196
197 * src/base/ftmac.c: Specialized for Mac OS X only.
198 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
199 * builds/unix/configure.raw: Ditto. When explicit switches for
200 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
201 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
202
2032006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
204
205 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
206 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
207 instead of src/base/ftmac.c
208 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
209 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
210 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
211 that cannot be built at present.
212
2132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
214
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000215 * src/base/ftobjs.c: Improvement of resource fork handler for
216 POSIX, cf.
217 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000218 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
219 format or .dfont, to simulate the face index number counted by ftmac.c.
220 (IsMacResource): Return the number of scalable faces correctly.
221
Werner Lembergec5b4502006-12-10 07:51:38 +00002222006-12-10 Werner Lemberg <wl@gnu.org>
223
224 * builds/toplevel.mk (version): Protect against `distclean' target.
225
Werner Lembergb26b3142006-12-09 20:01:43 +00002262006-12-09 Werner Lemberg <wl@gnu.org>
227
228 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
229 or `type'.
230
231 * builds/freetype.mk (version): Extracted from freetype.h, using
232 GNU make's built-in string functions.
233 (refdoc): Use $(version) instead of static version number.
234
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00002352006-12-08 Werner Lemberg <wl@gnu.org>
236
237 * builds/toplevel.mk (dist): Extract version number from freetype.h.
238
Werner Lemberg15c29502006-12-09 07:29:54 +00002392006-12-08 Vladimir Volovich <vvv@vsu.ru>
240
241 * src/tools/apinames (State): Remove final comma in structure -- xlc
242 v5 under AIX 4.3 doesn't like this.
243
David Turnerdbf3b432006-12-07 21:18:09 +00002442006-12-07 David Turner <david@freetype.org>
245
Werner Lemberg256a3512006-12-08 06:49:33 +0000246 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
247 to the spacing of auto-fitted glyphs. This only impacts rare
248 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000249
Werner Lemberg11171312006-12-03 09:43:40 +00002502006-12-03 Werner Lemberg <wl@gnu.org>
251
252 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
253
Werner Lemberg960ba592006-12-01 08:20:47 +00002542006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000255
Werner Lemberg960ba592006-12-01 08:20:47 +0000256 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
257 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
258 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000259
David Turner80658e52006-11-28 08:09:20 +0000260
Werner Lemberg960ba592006-12-01 08:20:47 +0000261 * include/freetype/ftxf86.h: Fix and extend comment so that it
262 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000263
Werner Lemberg960ba592006-12-01 08:20:47 +0000264 * include/freetype/ftchapters.h: Add `font_format' section.
265
266
267 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
268 to TOC in index page.
269
2702006-11-28 David Turner <david@freetype.org>
271
272 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
273 trying to render into a zero-width/height bitmap, not an error code.
274
275 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
276
277 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
278 ones instead.
279
280 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
281 variable.
David Turner80658e52006-11-28 08:09:20 +0000282
Werner Lemberg8636c292006-11-26 22:28:13 +00002832006-11-26 Pierre Hanser <hanser@club-internet.fr>
284
285 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
286
Werner Lemberg960ba592006-12-01 08:20:47 +00002872006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000288
Werner Lemberg960ba592006-12-01 08:20:47 +0000289 * src/autofit/afhints.c (af_glyph_hints_dump_points,
290 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
291 Add stubs to link the `ftgrid' test program when debugging is
292 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000293
Werner Lemberg960ba592006-12-01 08:20:47 +00002942006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000295
296 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000297 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
298
299 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
300 Emit more sensible information.
301
302 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
303
304 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
305 rounding of blue values.
306 (af_latin_hints_compute_segments): Hint segment heights.
307 (af_latin_hints_link_segments): Reduce `len_score' value.
308 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
309 value and use `height' member for comparisons.
310 (af_latin_hint_edges): Extend logging message.
311 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000312
Werner Lemberg91959bf2006-11-22 10:36:55 +00003132006-11-22 Werner Lemberg <wl@gnu.org>
314
315 Fix Savannah bug #15553.
316
317 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
318 program after a change from mono to grayscaling (and vice versa).
319 Use correct constant for comparison to get `exec->grayscale'.
320
Werner Lemberg913a3652006-11-19 09:19:17 +00003212006-11-18 Werner Lemberg <wl@gnu.org>
322
323 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000324 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000325 This patch fixes Savannah bug #18301.
326
327 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
328 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
329 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
330 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
331 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
332 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
333 (FNT_Load_Glyph): Check validity of `glyph_index'.
334
David Turner7bab6ae2006-11-13 11:25:06 +00003352006-11-13 David Turner <david@freetype.org>
336
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000337 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
338 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000339
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000340 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
341 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
342 when building the library to change the default LCD filter to be
343 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000344
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000345 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000346
David Turner8765c712006-11-10 16:49:42 +00003472006-11-10 David Turner <david@freetype.org>
348
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000349 * src/smooth/ftsmooth.c: API change for the LCD
350 filter. The FT_LcdFilter value is an enumeration describing which
351 filter to apply, with new values FT_LCD_FILTER_LIGHT and
352 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
353 algorithm which produces strong color fringes for everything
354 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000355
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000356 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
357 second parameter to an enum type.
358
359 * src/base/ftlcdfil.c (USE_LEGACY): Define.
360 (_ft_lcd_filter): Rename to...
361 (_ft_lcd_filter_fir): This.
362 Update parameters.
363 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
364 (FT_Library_Set_LcdFilter): Update parameters.
365 Handle new filter modes.
366
367 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
368 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
369 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
370 callback and update other fields.
371
372 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
373 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
374 Other minor improvements.
375
376 * src/autofit/aflatin.c: Various tiny improvements that drastically
377 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
378 (af_latin_hints_compute_edges): Fix typo.
379 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000380
David Turner4e9cc3c2006-11-09 16:31:52 +00003812006-11-09 David Turner <david@freetype.org>
382
Werner Lemberg49c77a82006-11-09 21:51:57 +0000383 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
384 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000385
Werner Lemberg5e430892006-11-07 09:35:03 +00003862006-11-07 Zhe Su <james.su@gmail.com>
387
388 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
389 also.
390
Werner Lemberg111b5ae2006-11-03 09:40:12 +00003912006-11-03 Werner Lemberg <wl@gnu.org>
392
393 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
394
David Turner40604742006-11-02 16:37:35 +00003952006-11-02 David Turner <david@freetype.org>
396
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000397 Add a few tweaks to better handle serif fonts.
398 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000399
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000400 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
401 segments that are less than 1.5 pixels high. This gets rid of
402 *many* corner cases with serifs.
403 (af_latin_align_linked_edge): Add logging message.
404 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
405 Add logging messages.
406 Handle AF_EDGE_FLAG flag specially.
407
408 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
409 _af_debug_disable_blue_hints, and _af_debug_hints variables.
410
411 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
412 Update external declarations.
413 (af_corner_orientation, af_corner_is_flat): Replaced by...
414
415 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
416 ft_corner_is_flat): These declarations.
417
418 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
419 Comment out. Replaced by...
420
421 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
422 These functions. Update all callers.
423 (FT_Add64) [!FT_LONG64]: Simplify.
424
425 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
426 (af_direction_compute): Add a missing FT_ABS call. This bug caused
427 production of garbage by missing lots of segments.
428
429 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
430
431 * src/autofit/afloader.c (af_loader_init, af_loader_done)
432 [AF_DEBUG]: Set _af_debug_hints.
433
434
435 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
436 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
437 and ft_corner_orientation.
438
439
440 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000441
Werner Lemberge88c5262006-10-24 05:46:26 +00004422006-10-24 Werner Lemberg <wl@gnu.org>
443
444 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
445
446 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
447 as argument.
448
David Turnera1861392006-10-23 16:00:59 +00004492006-10-23 Zhe Su <zsu@novell.com>
450
Werner Lemberg715e96e2006-10-24 05:28:45 +0000451 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
452 better deal with broken Asian fonts with strange glyphs, having
453 self-intersections and other peculiarities. The used algorithm is
454 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000455
David Turnere140f142006-10-23 08:56:57 +00004562006-10-23 David Turner <david@freetype.org>
457
Werner Lemberg715e96e2006-10-24 05:28:45 +0000458 Speed up the CFF font loader. With some large CFF fonts,
459 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000460
Werner Lemberg715e96e2006-10-24 05:28:45 +0000461 * src/cff/cffload.c (cff_get_offset): Removed.
462 (cff_new_index): Inline functionality of `cff_get_offset'.
463 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
464 (cff_charset_done): Call `cff_charset_free_cids'.
465 (cff_charset_load): Call `cff_charset_compute_cids'.
466 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
467
468 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
469 with FT_NEXT_XXX.
470
471
472 Speed up the Postscript hinter, with more than 100% speed increase
473 on my machine.
474
475 * src/pshinter/pshalgo.c (psh_corner_is_flat,
476 psh_corner_orientation): New functions.
477 (psh_glyph_compute_inflections): Merge loops for efficiency.
478 Use `psh_corner_orientation'.
479 (psh_glyph_init): Use `psh_corner_is_flat'.
480 (psh_hint_table_find_strong_point): Renamed to...
481 (psh_hint_table_find_strong_points): This.
482 Rewrite, adding argument to handle all points at once.
483 Update all callers.
484 (PSH_MAX_STRONG_INTERNAL): New macro.
485 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000486
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00004872006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
488
489 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000490 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000491
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00004922006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
493
494 * docs/INSTALL.CROSS: New document file for cross-building.
495
496 * builds/unix/configure.raw: Preliminary cross-building support.
497 Find native C compiler and pass it by CC_BUILD, and
498 find suffix for native executable and pass it by EXEEXT_BUILD.
499 Also suffix for target executable is passed by EXEEXT.
500
Werner Lembergb9e6d692006-10-15 08:58:40 +0000501 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
502 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000503 CC_BUILD and EXEEXT_BUILD.
504
Werner Lembergb9e6d692006-10-15 08:58:40 +0000505 * builds/exports.mk (APINAMES_EXE): Change the extension for
506 apinames from the suffix for target (E) to that for building host
507 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000508
Werner Lemberg82a07e92006-10-12 06:20:44 +00005092006-10-12 Werner Lemberg <wl@gnu.org>
510
511 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
512 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
513 which reference those files.
514
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00005152006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
516
Werner Lembergb9e6d692006-10-15 08:58:40 +0000517 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
518 embedded in freetype2.pc and freetype-config. Use it to record
519 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000520
521 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
522
523 * builds/unix/freetype-config.in: Ditto.
524
Werner Lemberg28e17d92006-10-11 17:27:47 +00005252006-10-11 Werner Lemberg <wl@gnu.org>
526
527 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
528 development.
529
Jens Claudius336d2292006-10-03 08:53:37 +00005302006-10-03 Jens Claudius <jens.claudius@yahoo.com>
531
532 * include/freetype/config/ftstdlib.h: Cast away volatileness from
533 argument to ft_setjmp.
534
535 * include/freetype/internal/ftvalid.h: Add comment that
536 ft_validator_run must not be used.
537
Werner Lemberg2863cfa2006-10-01 17:04:00 +00005382006-10-01 Werner Lemberg <wl@gnu.org>
539
540 * src/base/ftbase.c: Undo change from 2006-09-30.
541
542 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
543
5442006-09-30 David Turner <david@freetype.org>
545
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000546 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
547 s/unpatented_hinting/ignore_unpatented_hinter/.
548 Update all callers.
549
550 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
551 auto-hinting shall be used or not.
552
553 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000554
Werner Lemberg2863cfa2006-10-01 17:04:00 +00005552006-09-30 Werner Lemberg <wl@gnu.org>
556
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000557 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
558 in use).
559
560 * src/base/ftbase.c: Include `ftlcdfil.c'.
561
Werner Lemberg9b15ea32006-09-29 18:22:11 +00005622006-09-29 Werner Lemberg <wl@gnu.org>
563
564 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
565 overlapping segments. Bug reported by Stefan Koch.
566
David Turnerad830712006-09-27 16:20:59 +00005672006-09-28 David Turner <david@freetype.org>
568
Werner Lemberg2c002e12006-09-29 21:31:53 +0000569 Fix a bug in the automatic unpatented hinting support which prevents
570 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000571
Werner Lemberg2c002e12006-09-29 21:31:53 +0000572 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
573 s/force_autohint/unpatented_hinting/. Update all callers.
574
575 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
576
577 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000578
David Turner8a317cf2006-09-27 07:52:48 +00005792006-09-27 David Turner <david@freetype.org>
580
Werner Lemberg2c002e12006-09-29 21:31:53 +0000581 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000582
David Turner8a317cf2006-09-27 07:52:48 +0000583
David Turnere140f142006-10-23 08:56:57 +0000584 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000585 In a default build, the function `FT_Library_SetLcdFilter' returns
586 `FT_Err_Unimplemented_Feature'; you need to #define
587 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
588 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000589
Werner Lemberg2c002e12006-09-29 21:31:53 +0000590 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000591
Werner Lemberg2c002e12006-09-29 21:31:53 +0000592 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
593 typedef.
594 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
595 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000596
Werner Lemberg2c002e12006-09-29 21:31:53 +0000597 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
598 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000599
Werner Lemberg2c002e12006-09-29 21:31:53 +0000600 Handle subpixel rendering.
601 Simplify function.
602 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
603 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
604
605 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
606 pointing to <freetype/ftlcdfil.h>.
607
608 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
609 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
610
611 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000612
Werner Lemberge20df4a2006-09-27 06:29:21 +00006132006-09-26 David Bustin
614
615 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
616 correctly. Reported as Savannah bug #17843.
617
David Turner6f8c6222006-09-26 15:42:44 +00006182006-09-26 David Turner <david@freetype.org>
619
Werner Lemberg110246c2006-09-26 21:55:44 +0000620 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
621 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
622 horizontal and vertical hinting for the purpose of debugging the
623 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000624
Werner Lemberg110246c2006-09-26 21:55:44 +0000625 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
626 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000627
Werner Lemberg110246c2006-09-26 21:55:44 +0000628 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
629
630 * include/freetype/config/ftoption.h, devel/ftoption.h
631 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
632 we want to compile LCD-optimized rendering code (à la ClearType) or
633 not. The macro *must* be disabled in default builds of the library
634 for patent reasons.
635
636 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
637 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
638 isn't defined at compile time. This only changes the content of the
639 rendered glyph to match the one of normal gray-level rendering,
640 hence clients should not need to be modified.
641
642 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000643
Werner Lemberg745ff2c2006-09-19 05:48:02 +00006442006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
645
646 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
647 LWFN fails and both are available.
648
David Turnerf3050052006-09-11 12:00:32 +00006492006-09-11 David Turner <david@freetype.org>
650
Werner Lembergf9644552006-09-12 13:48:10 +0000651 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
652 report their English names through an Apple Roman
653 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000654
Werner Lembergf9644552006-09-12 13:48:10 +0000655 If the font uses another name entry with language_id == English, it
656 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000657
Werner Lembergf9644552006-09-12 13:48:10 +0000658 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
659 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000660
Werner Lemberg36d2eab2006-09-05 19:24:34 +00006612006-09-05 Werner Lemberg <wl@gnu.org>
662
663 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000664 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000665 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
666 `HAN NOM B.ttf').
667
668 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
669
David Turner772e55d2006-09-05 09:45:15 +00006702006-09-05 David Turner <david@freetype.org>
671
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000672 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000673
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000674 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
675 (TRaster): Remove `count_ex' and `count_ey'.
676 (gray_find_cell): Remove 2nd and 3rd argument.
677 (gray_alloc_cell): Merged with `gray_find_cell'.
678 (gray_record_cell): Simplify.
679 (gray_set_cell): Rewrite.
680 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
681 (gray_render_span): Don't use FT_MEM_SET for small values.
682 (gray_dump_cells) [DEBUG_GRAYS]: New function.
683 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
684 bitmap scanline.
685 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000686
David Turneraa557a92006-09-04 16:42:44 +00006872006-09-04 David Turner <david@freetype.org>
688
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000689 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
690 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000691
Werner Lemberg2d8629b2006-09-03 06:18:45 +00006922006-09-03 Werner Lemberg <wl@gnu.org>
693
694 * devel/ftoption.h: Synchronize with
695 include/freetype/config/ftoption.h.
696
697 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
698 variable declaration.
699 (gray_convert_glyph): Fix compiler warnings.
700
David Turner6d79f212006-09-01 14:09:35 +00007012006-09-01 David Turner <david@freetype.org>
702
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000703 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
704 to recognize a few fonts that require the automatic unpatented
705 loader.
David Turnerbd502952006-09-01 19:05:24 +0000706
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000707 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
708 rasterizer. The speed improvement is between 15% and 25%, depending
709 on the font data.
710
711 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
712 (TCell): Redefine.
713 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
714 (gray_init_cells): Updated.
715 (gray_find_cell, gray_alloc_cell): New functions.
716 (gray_record_cell): Rewritten to use `gray_find_cell' and
717 `gray_alloc_cell'.
718 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
719 QSORT_THRESHOLD):
720 Removed.
721 (gray_shell_sort, gray_quick_sort, gray_check_sort,
722 gray_dump_cells): Removed.
723 (gray_sweep): Rewritten.
724 (gray_convert_glyph): Rewrite code which used one of the sorting
725 functions.
726 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000727
Werner Lembergd898aed2006-08-29 09:50:34 +00007282006-08-29 Dr. Werner Fink <werner@suse.de>
729
730 * configure: Make it possible to handle configure options which
731 have strings containing spaces.
732
7332006-08-27 David Turner <david@freetype.org>
734
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000735 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
736 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
737 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
738
739 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
740 src/truetype/truetype.c, src/truetype/ttdriver.c,
741 src/truetype/ttgload.c, src/truetype/ttgload.h,
742 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
743 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
744 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
745
746 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
747 member `force_autohint'.
748
749 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
750
751 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
752 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000753
Jens Claudiusa787f452006-08-27 11:26:18 +00007542006-08-27 Jens Claudius <jens.claudius@yahoo.com>
755
756 Fix miscellaneous compiler warnings.
757
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000758 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
759 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000760
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000761 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
762 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
763 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000764
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000765 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
766 volatileness of argument to ft_longjmp. Spotted by Werner
767 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000768
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000769 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
770 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000771
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000772 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
773 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000774
Werner Lembergc4c35b72006-08-27 08:03:46 +00007752006-08-27 Werner Lemberg <wl@gnu.org>
776
777 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
778 Reported by Jens.
779
Jens Claudius088e44e2006-08-22 14:24:30 +00007802006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000781
Jens Claudius088e44e2006-08-22 14:24:30 +0000782 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000783 about addresses of volatile objects passed as function arguments as
784 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000785
Werner Lembergc4c35b72006-08-27 08:03:46 +0000786 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
787 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000788
789 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
790 argument `table' a pointer to a volatile object.
791
792 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
793 argument `table' a pointer to a volatile object.
794
Jens Claudius2652bd52006-08-18 17:20:37 +00007952006-08-18 Jens Claudius <jens.claudius@yahoo.com>
796
797 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
798 variable `_sfnt' as volatile since it must keep its value across
799 a call to ft_setjmp.
800 (gxv_validate): Same for local variables `memory' and `valid'.
801 (classic_kern_validate): Same for local variables `memory',
802 `ckern', and `valid'.
803
804 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
805 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
806 `jstf', and 'valid'.
807
808 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
809 local variable `cmap'.
810
David Turner9fbfc6a2006-08-16 09:11:31 +00008112006-08-16 David Turner <david@freetype.org>
812
Werner Lemberg12342992006-08-19 11:18:09 +0000813 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
814 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +0000815
Werner Lemberg12342992006-08-19 11:18:09 +0000816 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
817 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +0000818
David Turner33f5f242006-08-16 16:50:55 +0000819
Werner Lemberg12342992006-08-19 11:18:09 +0000820 Improvements to native TrueType hinting. This is a first try,
821 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
822
823 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
824 `extra_points2'.
825
826 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
827 `orus'.
828
829 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
830 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
831 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
832 handle `extra_points2'.
833
834 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
835 Remove compiler warning.
836 (cur_to_arg): Remove macro.
837 (TT_Hint_Glyph): Updated.
838 (TT_Process_Simple_Glyph): Handle `orus'.
839
840 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
841 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
842 (LOC_Ins_IUP): Renamed to...
843 (IUP_WorkerRec): This.
844 Add `orus' member.
845 (Shift): Renamed to...
846 (_iup_worker_shift): This.
847 Updated.
848 (Interp): Renamed to...
849 (_iup_worker_interpolate): This.
850 Updated to handle `orus'.
851 (Ins_IUP): Updated.
852
853 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
854 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +0000855
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00008562006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
857
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000858 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +0000859 build ftvalid in ft2demos. This has been inadvertedly changed
860 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000861
8622006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
863
Werner Lemberg12342992006-08-19 11:18:09 +0000864 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
865 Jens:
866 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000867
Werner Lemberg12342992006-08-19 11:18:09 +0000868 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
869 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000870
871 * freetype2/src/gxvalid/gxvmod.c: Ditto.
872
Jens Claudius9950adc2006-08-13 12:14:36 +00008732006-08-13 Jens Claudius <jens.claudius@yahoo.com>
874
Werner Lemberg12342992006-08-19 11:18:09 +0000875 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
876 T1_TOKEN_TYPE_KEY.
877 (T1_FieldRec): Add `dict'.
878 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
879 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
880 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +0000881
Werner Lemberg12342992006-08-19 11:18:09 +0000882 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
883 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000884
885 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
886
887 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +0000888 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
889 not T1_TOKEN_TYPE_ANY.
890 (ps_parser_load_field): Make sure a token that should be a string or
891 name is really a string or name.
892 Avoid memory leak if a keyword has been already encountered and its
893 value is overwritten.
894 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
895 T1_FIELD_XXX.
896 (parse_dict): Ignore keywords that occur in the wrong dictionary
897 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +0000898
Werner Lemberg12342992006-08-19 11:18:09 +0000899 * freetype2/src/type1/t1tokens.h: Adjust invocations of
900 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000901
Werner Lemberg12342992006-08-19 11:18:09 +0000902 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
903 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000904
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00009052006-07-18 Jens Claudius <jens.claudius@yahoo.com>
906
907 Move creation of field `buildchar' of T1_DecoderRec out of
908 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
909 of it.
910
911 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
912 and `T1_Compute_Max_Advance'.
913
914 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
915 Remove field `face', add `len_buildchar'.
916
917 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
918 field `buildchar'.
919
920 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
921 finisher for T1_Decoder.
922 (cid_slot_load_glyph): Do not ignore failure when initializing the
923 T1_Decoder.
924
925 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
926 Updated.
927 (t1_decoder_init): Remove initialization of fields `buildchar' and
928 `len_buildchar'.
929 (t1_decoder_done): Remove deallocation of field `buildchar'.
930
931 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
932 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
933 T1_Decoder.
934 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
935 `len_buildchar'; make sure to call finisher for T1_Decoder even in
936 case of error.
937
938 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
939 `buildchar' of T1_FaceRec.
940
941 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
942 `buildchar' of T1_FaceRec.
943
Werner Lemberg1a380e02006-07-14 18:28:08 +00009442006-07-14 Jens Claudius <jens.claudius@yahoo.com>
945
946 * freetype2/include/freetype/internal/psaux.h: New macros
947 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
948 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
949 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
950 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
951 (T1_DecoderRec): New fields `buildchar' and `face'.
952 (IS_PS_TOKEN): New macro.
953
954 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
955 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
956
957 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
958 `default_design_vector' and `num_default_design_vector'.
959
960 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
961 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
962 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
963
964 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
965 `token' argument to be NULL if we want only to count the number of
966 tokens.
967 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
968 want to skip the array.
969 (ps_tofixedarray): Allow `values' argument to be NULL if we just
970 want to skip the array.
971
972 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
973 support for (partially commented out) othersubrs 19-25, 27, and 28.
974 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
975 (t1_decoder_done): Release new field `buildchar'.
976
977 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
978 functions.
979 (t1_keywords): Register them.
980 (t1_allocate_blend): Updated.
981 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
982 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
983 (parse_dict): Remove `keyword_flags' argument.
984 Use new macro IS_PS_TOKEN.
985 Changed function so that later PostScript definitions override
986 earlier ones.
987 (t1_init_loader): Initialize new field `keywords_encountered'.
988 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
989 `len_buildchar'.
990 Remove `keywords_flags'.
991
992 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
993 `keywords_encountered'.
994 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
995
996 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
997 New entries for parsing /NDV, /CDV, and /DesignVector.
998
Werner Lemberg4af3c4d2006-07-08 21:31:24 +00009992006-07-07 Werner Lemberg <wl@gnu.org>
1000
1001 Add many checks to protect against malformed PCF files.
1002
1003 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1004 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1005
1006 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1007 data and check that tables don't overlap (using a simple
1008 bubblesort).
1009 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1010 New macros which give the size of data structures in the data
1011 stream.
1012 (pcf_get_properties): Use rough estimates to get array size limits.
1013 Assign `face->nprops' and `face->properties' earlier so that a call
1014 to PCF_Face_Done can do the clean-up in case of error.
1015 Protect against invalid string offsets.
1016 (pcf_get_metrics): Clean up code.
1017 Adjust tracing message levels.
1018 Use rough estimate to get array size limit.
1019 (pcf_get_bitmaps): Clean up code.
1020 Adjust tracing message levels.
1021 Use rough estimates to get offset limits.
1022 (pcf_get_encodings): Adjust tracing message level.
1023 (pcf_get_accel): Clean up code.
1024
Werner Lemberg8eb05252006-06-27 06:20:01 +000010252006-06-26 Werner Lemberg <wl@gnu.org>
1026
1027 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1028 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1029
Werner Lemberg24703f82006-06-26 19:12:51 +000010302006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1031
1032 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1033 (t1_decoder_parse_charstrings): Operator with
1034 opcode 15 pops its two arguments.
1035 Handle the case where the pops of an othersubr may be part of a
1036 subroutine.
1037 Handle unknown othersubrs gracefully: count their operands and let
1038 the following pop operators push the operands as the results onto
1039 the Type1 stack.
1040 Improve handling of setcurrentpoint opcode.
1041
Werner Lembergc011f4c2006-06-26 09:40:00 +000010422006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1043
1044 The Type 1 parser now skips over top-level procedures as required
1045 for a `Simplified Parser'. This makes the parser more robust as it
1046 doesn't poke around in PostScript code. Additionally, it makes the
1047 FontDirectory hackery in src/type1/t1load.c unnecessary.
1048
1049 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1050 (skip_literal_string): Add FT_Error as return value.
1051 Handle escapes better.
1052 (skip_string): Add FT_Error as return value.
1053 Don't set `parser->error' but return error code directly.
1054 (skip_procedure): New function.
1055 (ps_parser_skip_PS_token): Handle procedures.
1056 Update code.
1057 (ps_parser_to_token): Update code.
1058 (ps_parser_load_field_table): Handle bbox entries also.
1059
1060 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1061 Add commented-out code for synthetic fonts.
1062
Werner Lemberga2da05c2006-06-25 06:27:27 +000010632006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1064
1065 Fix two hinting bugs as reported in
1066 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1067
1068 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1069 `first_point' member.
1070
1071 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1072 `first_point'.
1073 (TT_Process_Composite_Glyph): Always untouch points.
1074
1075 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1076 `first_point' and `last_point' in case of composite glyphs.
1077 (Ins_IUP): Fix computation of `end_point'.
1078
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000010792006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1080
Werner Lembergef3d2c22006-06-25 06:07:14 +00001081 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1082 Mac. The original patch was written by David Sachitano and Lawrence
1083 Coopet, and modified by Sean McBride for MPW compatibility. Only
1084 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001085
Werner Lembergef3d2c22006-06-25 06:07:14 +00001086 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1087 Mac OS X platforms.
1088 (OS_INLINE): Undefine before definition.
1089 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1090 FontAssociation table in FOND resource.
1091 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1092 and fontSize at each entry of FontAssociation table in FOND
1093 resource.
1094 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1095 ffStylOff of FamilyRecord header of FOND resource, the header,
1096 fontSize, fontID at each entry of FontAssociation table, and
1097 StyleMapping table.
1098 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001099
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000011002006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1101
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001102 Public API of TrueTypeGX, OpenType, and classic kern table validator
1103 should return `FT_Err_Unimplemented_Feature' if validation service
1104 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001105 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001106 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1107
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001108 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1109 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1110 unavailable.
1111 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1112 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001113
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001114 * src/base/ftotval.c (FT_OpenType_Validate): Return
1115 FT_Err_Unimplemented_Feature if OpenType validation service is
1116 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001117
Werner Lembergb10e45a2006-06-08 07:32:56 +000011182006-06-08 Werner Lemberg <wl@gnu.org>
1119
1120 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1121 errors.
1122
David Turner5f1f7502006-06-07 05:11:50 +000011232006-06-07 David Turner <david@freetype.org>
1124
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001125 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1126 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1127 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001128
David Turner457b4a82006-06-06 08:14:14 +000011292006-06-06 David Turner <david@freetype.org>
1130
Werner Lemberg4836f952006-06-06 12:54:08 +00001131 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001132
Werner Lemberg4836f952006-06-06 12:54:08 +00001133 We change `ps_unicodes_init' so that it also takes a
1134 `free_glyph_name' callback to release the glyph names returned by
1135 `get_glyph_name'
1136
1137 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1138 Renamed to ...
1139 (PS_GetGlyphNameFunc): This.
1140 (PS_FreeGlyphNameFunc): New typedef.
1141 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1142
1143 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1144 argument.
1145 (cff_sid_free_glyph_name): New function.
1146 (cff_cmap_unicode_init): Updated.
1147
1148 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1149
1150 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1151 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001152
1153
David Turner09717352006-06-04 14:33:08 +000011542006-06-04 David Turner <david@freetype.org>
1155
Werner Lembergd724f202006-06-04 15:17:41 +00001156 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1157 `item_size == 0' as well -- though this sounds weird, it can
1158 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001159
Werner Lembergd724f202006-06-04 15:17:41 +00001160 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1161 of `face->num_glyphs' which missed the last glyph, due to
1162 the offset-by-1 computation, since the PFR format doesn't
1163 guarantee that glyph index 0 corresponds to the `missing
1164 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001165
Werner Lemberg33779662006-05-26 06:30:05 +000011662006-05-25 Werner Lemberg <wl@gnu.org>
1167
1168 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1169 `-no-undefined'. Reported by Christian Biesinger.
1170
Werner Lemberg24773d62006-05-20 08:53:13 +000011712006-05-19 Brian Weed <bw@imaginengine.com>
1172
1173 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1174 have debug information, and debug libraries use `C7 compatible'
1175 debug info.
1176
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000011772006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1178
Werner Lemberga6523a62006-05-20 08:47:01 +00001179 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001180 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001181
Werner Lemberga6523a62006-05-20 08:47:01 +00001182 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1183 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001184
1185 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001186 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001187
11882006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1189
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001190 * build/unix/configure.raw: Add a fallback to disable Carbon
1191 dependency, if configured with no options on Mac OS X.
1192
11932006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1194
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001195 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001196 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001197 the second part of Savannah bug #16590.
1198
Werner Lemberg545c4e52006-05-17 22:55:04 +000011992006-05-18 Werner Lemberg <wl@gnu.org>
1200
1201 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1202 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1203
David Turnerdc3ff312006-05-17 12:59:35 +000012042006-05-17 David Turner <david@freetype.org>
1205
Werner Lemberg545c4e52006-05-17 22:55:04 +00001206 This is a major patch used to drastically improve the performance of
1207 loading glyphs. This both speeds up loading the glyph vectors
1208 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001209
Werner Lemberg545c4e52006-05-17 22:55:04 +00001210 We now use inline assembler code with GCC to implement `FT_MulFix',
1211 which is probably the most important function related to the
1212 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001213
Werner Lemberg545c4e52006-05-17 22:55:04 +00001214 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001215
1216
Werner Lemberg545c4e52006-05-17 22:55:04 +00001217 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1218 `cursor' and `limit'.
1219
1220 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1221 New functions.
1222 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1223 [TEST]: Remove.
1224
1225 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1226 code.
1227
1228 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1229 `FT_ZERO'
1230 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1231 (af_glyph_hints_reload: Rewrite recognition of weak points.
1232
1233 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1234 constant values out of the loops.
1235
1236 * src/autofit/aftypes.h: Updated.
1237
1238 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1239
1240 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1241 product to get orientation.
1242
1243 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1244 (FT_Stream_OpenGzip): Use it to handle small files directly in
1245 memory.
1246
1247 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1248 Improve performance.
1249
1250 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1251 `limit'.
1252
1253 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1254 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1255 exceedingly large values of number of contours. Speed up by
1256 reducing the number of loops.
1257
1258 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1259
1260
1261 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1262 used to detect rogue clients from 4 to 16. This is to prevent some
1263 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1264 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001265
Werner Lembergde2d90a2006-05-17 08:54:30 +000012662007-05-17 Werner Lemberg <wl@gnu.org>
1267
1268 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001269 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001270
12712006-05-16 Werner Lemberg <wl@gnu.org>
1272
1273 * docs/PROBLEMS: Updated icl issues.
1274
Werner Lemberg6756dc12006-05-12 08:00:13 +000012752006-05-12 Werner Lemberg <wl@gnu.org>
1276
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001277
1278 * Version 2.2.1 released.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001279 =========================
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001280
1281
1282 Tag sources with `VER-2-2-1'.
1283
12842006-05-12 Werner Lemberg <wl@gnu.org>
1285
Werner Lemberg6756dc12006-05-12 08:00:13 +00001286 * src/tools/docmaker/sources.py (re_source_keywords): Add word
1287 boundary markers.
1288 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
1289 (but not at the beginning or end).
Werner Lemberge12a4712006-05-12 14:20:43 +00001290 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Werner Lemberg6e467a62006-05-12 15:05:45 +00001291 (block_footer): Split into...
1292 (block_footer_start, block_footer_middle, block_footer_end): This to
1293 add navigation buttons.
1294 (HtmlFormatter::block_exit): Updated.
Werner Lemberg6756dc12006-05-12 08:00:13 +00001295
1296 * include/freetype/*: Many minor documentation improvements (adding
1297 links, spelling errors, etc.).
1298
Werner Lembergfd74ec62006-05-12 04:00:44 +000012992006-05-11 Werner Lemberg <wl@gnu.org>
1300
1301 * README: Minor updates.
1302
1303 * include/freetype/*: s/scale/scaling value/ where appropriate.
1304 Many other minor documentation improvements.
1305
1306 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
1307 trailing punctuation.
1308 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
1309 warning message for undefined cross references.
1310 Update handling of re_italic and re_bold.
1311
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +000013122006-05-11 Masatake YAMATO <jet@gyve.org>
David Turner281679d2006-05-17 13:34:21 +00001313
1314 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +00001315 read system call returns -1.
1316 Remove a redundant parenthesis.
1317
Werner Lembergb80d85f2006-05-10 04:47:35 +000013182006-05-10 Werner Lemberg <wl@gnu.org>
1319
1320 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
1321 given an empty, un-mmap()able file. Reported and suggested fix in
1322 Savannah bug #16555.
1323
Werner Lemberge0d15592006-05-10 13:44:47 +00001324 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
1325 directory to suppress generation of .pyc files. According to the
1326 Python docs there isn't a more elegant solution (currently).
1327
1328 * builds/toplevel.mk (dist): New target which builds .tar.gz,
1329 .tar.bz2, and .zip files. Note that the version number is still
1330 hard-coded.
1331 (do-dist): Sub-target of `dist'.
1332 (CONFIG_GUESS, CONFIG_SUB): New variables.
1333 (.PHONY): Updated.
1334
Werner Lemberga127ca42006-05-09 13:41:50 +000013352006-05-09 Rajeev Pahuja <rpahuja@esri.com>
1336
1337 * builds/win32/visualc/freetype.sln,
1338 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
1339 VS.NET 2003
1340 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
1341
1342 * builds/win32/visualc/index.html: Updated.
1343
Werner Lemberg4df5b262006-05-08 07:10:29 +000013442006-05-07 Werner Lemberg <wl@gnu.org>
1345
1346 Put version information into the configure script. Reported by Paul
1347 Watson <pwatson@redlinepy.com>.
1348
1349 * builds/unix/configure.ac: Renamed to...
1350 * builds/unix/configure.raw: This which now serves (with appropriate
1351 modifications) as a template for configure.ac.
1352
1353 * version.sed: New script.
1354
1355 * autogen.sh: Generate configure.ac from configure.raw, using
1356 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
1357
Werner Lemberg1639c792006-05-06 16:44:58 +000013582006-05-06 Werner Lemberg <wl@gnu.org>
1359
1360 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
1361
1362 * builds/unix/configure.ac (version_info): Set to 9:10:3.
1363
1364 * builds/win32/visualc/index.html,
1365 builds/win32/visualc/freetype.dsp,
1366 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
1367 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
1368 Minor updates.
1369
1370 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
1371 Updated.
1372
1373 * builds/unix/install-sh: Updated from `texinfo' CVS module at
Werner Lemberg4836f952006-06-06 12:54:08 +00001374 savannah.gnu.org.
Werner Lemberg1639c792006-05-06 16:44:58 +00001375
1376 * devel/ftoption.h: Synchronize with
1377 include/freetype/config/ftoption.h.
1378
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +000013792006-05-04 Werner Lemberg <wl@gnu.org>
1380
1381 * src/lzw/ftlzw2.c: Renamed to...
1382 * src/lzw/ftlzw.c: This.
1383
1384 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
1385
1386 * builds/mac/FreeType.m68k_cfm.make.txt,
1387 builds/mac/FreeType.m68k_far.make.txt,
1388 builds/mac/FreeType.ppc_carbon.make.txt,
1389 builds/mac/FreeType.ppc_classic.make.txt: Updated.
1390
David Turner679a2522006-05-03 09:40:33 +000013912006-05-03 David Turner <david@freetype.org>
1392
Werner Lemberga94746c2006-05-03 20:39:55 +00001393 Allow compilation again with C++ compilers.
1394
1395 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
1396 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
1397 which exist in two variants (for C and C++).
1398 Update callers accordingly.
David Turner679a2522006-05-03 09:40:33 +00001399
Werner Lemberg58eed042006-05-02 22:26:09 +000014002006-05-03 Werner Lemberg <wl@gnu.org>
1401
1402 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
1403
Werner Lembergc6afa122006-05-02 22:22:16 +000014042006-05-02 Werner Lemberg <wl@gnu.org>
1405
1406 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
1407 (FT_ALLOC): Remove redundant redefinition.
1408
1409 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
1410 `-Wstrict-prototypes'.
1411
1412 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
1413
Werner Lemberg58eed042006-05-02 22:26:09 +00001414 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
1415 Remove `extern'.
Werner Lemberg94204892006-05-02 22:24:06 +00001416
David Turner264f3072006-05-02 06:34:27 +000014172006-05-02 David Turner <david@freetype.org>
1418
Werner Lembergc6afa122006-05-02 22:22:16 +00001419 Update the memory management functions and macros to safely deal
1420 with array size buffer overflows. This corresponds to attemps to
1421 allocate arrays that are too large. For an example, consider the
1422 following code:
David Turner264f3072006-05-02 06:34:27 +00001423
Werner Lembergc6afa122006-05-02 22:22:16 +00001424 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
1425 count ); for ( nn = 0; nn < count; nn++ )
1426 array[nn] = read_item_from_file();
David Turner264f3072006-05-02 06:34:27 +00001427
Werner Lembergc6afa122006-05-02 22:22:16 +00001428 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
1429 multiplication overflows, and the array allocated os smaller than
1430 the data read from the file. In this case, the heap will be
1431 trashed, and this can be used as a denial-of-service attack, or make
1432 the engine crash later.
David Turner264f3072006-05-02 06:34:27 +00001433
Werner Lembergc6afa122006-05-02 22:22:16 +00001434 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
1435 count is no larger than `FT_INT_MAX/item_size', otherwise a new
1436 error code `FT_Err_Array_Too_Large' will be returned.
David Turner264f3072006-05-02 06:34:27 +00001437
Werner Lembergc6afa122006-05-02 22:22:16 +00001438 Note that the memory debugger now works again when FT_DEBUG_MEMORY
1439 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
1440 code is now the default.
David Turner264f3072006-05-02 06:34:27 +00001441
David Turner9ca78252006-05-02 09:00:29 +00001442
Werner Lembergc6afa122006-05-02 22:22:16 +00001443 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
1444 Don't use `extern'.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001445
Werner Lembergc6afa122006-05-02 22:22:16 +00001446 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
1447 code.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001448
Werner Lembergc6afa122006-05-02 22:22:16 +00001449 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
1450 [FT_DEBUG_MEMORY]: New macro.
1451 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
1452 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
1453 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1454 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
1455 FT_MEM_FREE): Redefine.
1456 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
1457 FT_MEM_QRENEW_ARRAY): Redefine.
1458 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
1459 FT_MEM_QREALLOC_MULT): New macros. Update callers where
1460 appropriate.
1461 (FT_MEM_SET_ERROR): Slightly redefine.
1462
1463
1464 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
1465 [FT_DEBUG_MEMORY]: New global variables, replacing...
1466 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
1467 `line_no'. Update all callers.
1468 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
1469 overflow.
1470 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
1471 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1472
1473 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
1474 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
1475 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
1476 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
1477
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +00001478
1479 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
1480 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
1481 place where the frames were entered, extracted, exited or released
1482 in the memory debugger.
1483
1484 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
1485 Call ft_mem_free.
1486 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
1487 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
1488
Werner Lembergc6afa122006-05-02 22:22:16 +000014892006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1490
1491 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
1492 initialization, remove extra cast to copy to pfb_lenpos. This fixes
1493 parsing of PFB fonts with MacOS resource fork (bug introduced
1494 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001495
Werner Lemberg8fe65392006-04-29 07:31:16 +000014962006-04-29 Werner Lemberg <wl@gnu.org>
1497
1498 Further C library abstraction. Based on a patch from
1499 msn2@bidyut.com.
1500
1501 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
1502 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
1503 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
1504 C library functions. Update all users accordingly (and catch some
1505 other places where the C library function was used instead of the
1506 wrapper functions).
1507
1508 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
1509 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
1510 include malloc.h.
1511
Werner Lemberg06fceb32006-04-29 07:53:40 +00001512
1513 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
1514 and forthcoming versions.
1515
Werner Lemberg50ef72b2006-04-29 07:02:36 +000015162006-04-28 Werner Lemberg <wl@gnu.org>
1517
1518 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
1519 obsolete.
1520
Werner Lemberg12cceaa2006-04-27 05:02:35 +000015212006-04-27 yi luo <luoyi.ly@gmail.com>
1522
1523 * builds/win32/visualc/freetype.vcproj: Updated.
1524
David Turner3b47dd62006-04-26 19:34:24 +000015252006-04-26 David Turner <david@freetype.org>
1526
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001527
1528 * Version 2.2 released.
Werner Lembergc6afa122006-05-02 22:22:16 +00001529 =======================
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001530
1531
1532 Tag sources with `VER-2-2-0'.
David Turner3b47dd62006-04-26 19:34:24 +00001533
Werner Lemberg564b4432006-04-26 15:02:52 +000015342006-04-26 Werner Lemberg <wl@gnu.org>
1535
1536 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001537 FT_PtrDiff for `delta'. Reported by Céline PILLET
Werner Lemberg564b4432006-04-26 15:02:52 +00001538 <Celine.Pillet@Tagginfo.com>.
1539
David Turner8e438ea2006-04-21 08:35:11 +000015402006-04-21 David Turner <david@freetype.org>
1541
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001542 * include/freetype/ftincrem.h: Documentation updates.
1543 (FT_Incremental_Interface): New typedef.
David Turner8e438ea2006-04-21 08:35:11 +00001544
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001545 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
1546 Documentation updates.
1547
1548 * include/freetype/freetype.h: Documentation update.
1549 (FT_HAS_FAST_GLYPHS): Always set to 0.
1550
1551 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
1552 Take an FT_Library argument instead of FT_Memory.
1553
1554 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
David Turner7aa20102006-04-21 08:38:35 +00001555
David Turner65c7c772006-04-13 07:51:58 +000015562006-04-13 David Turner <david@freetype.org>
1557
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001558 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
1559 superfluous code in the auto-fitter's loader.
David Turner65c7c772006-04-13 07:51:58 +00001560
Werner Lemberg4e03fe72006-04-29 06:20:09 +000015612006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner7d043222006-04-05 07:17:12 +00001562
1563 * builds/amiga/makefile, builds/amiga/makefile.os4,
1564 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
1565
Werner Lemberg7f18de62006-04-03 16:47:34 +000015662006-04-03 luoyi <luoyi.ly@gmail.com>
1567
1568 * builds/compiler/intelc.mk (TE): New variable.
1569 (ANSIFLAGS): Updated.
1570
Werner Lembergfd7456c2006-04-03 15:46:48 +000015712006-04-03 Werner Lemberg <wl@gnu.org>
1572
1573 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
1574 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
1575 (.PHONY): Updated.
1576
1577 * configure.ac: Minor fixes to improve --help output.
1578
Werner Lemberg764b2512006-04-03 16:42:39 +00001579
1580 * docs/PROBLEMS: New file.
1581
Werner Lemberg40917862006-04-01 18:49:07 +000015822006-04-01 David Turner <david@freetype.org>
David Turner0f15e1c2006-04-01 16:11:53 +00001583
Werner Lemberg40917862006-04-01 18:49:07 +00001584 * docs/CHANGES: Updated.
David Turnercf603712006-04-01 16:22:06 +00001585
Werner Lemberg40917862006-04-01 18:49:07 +00001586 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
1587 Update documentation comments.
David Turner0f15e1c2006-04-01 16:11:53 +00001588
Werner Lemberg6e9df682006-04-01 05:22:07 +000015892006-04-01 Werner Lemberg <wl@gnu.org>
1590
1591 * builds/unix/install.mk (uninstall): Don't handle `cache'
1592 directory which no longer exists.
1593
Werner Lemberg4e03fe72006-04-29 06:20:09 +000015942006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001595
Werner Lemberg6e9df682006-04-01 05:22:07 +00001596 * src/psaux/psconv.c: Changed some variables which are expected to
1597 hold negative values from `char' to `FT_Char' to allow building with
1598 a compiler where `char' is unsigned by default.
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001599
David Turner42137bc2006-03-27 20:10:26 +000016002006-03-27 David Turner <david@freetype.org>
1601
Werner Lembergfa3651e2006-03-28 05:06:50 +00001602 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
1603 causes some programs to go into an infinite loop when dealing with
1604 fonts that don't have a properly sorted kerning sub-table.
David Turner42137bc2006-03-27 20:10:26 +00001605
Werner Lemberg26170df2006-03-26 07:19:07 +000016062006-03-26 Werner Lemberg <wl@gnu.org>
1607
1608 * src/bdf/bdflib.c (ERRMSG4): New macro.
1609 (_bdf_parse_glyphs): Handle invalid BBX values.
1610
1611 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
1612 macro.
1613
Werner Lemberg4db32ec2006-03-24 11:54:53 +000016142006-03-23 Werner Lemberg <wl@gnu.org>
1615
1616 * docs/CHANGES: Updated.
1617
Werner Lembergd6e24982006-03-24 18:31:47 +00001618
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001619 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
1620 padding between table elements.
Werner Lemberge0dd18f2006-03-24 12:14:48 +00001621 (html_header_1): The `DOCTYPE' comment must be in uppercase.
Werner Lembergd6e24982006-03-24 18:31:47 +00001622 (make_html_para): Convert `...' quotations into real left and
1623 right single quotes.
1624 Use `para_header' and `para_footer'.
1625
1626 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
1627 also.
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001628
David Turner2ce92032006-03-23 20:58:20 +000016292006-03-23 David Turner <david@freetype.org>
1630
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001631 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
Werner Lembergc6afa122006-05-02 22:22:16 +00001632 we do not expose the FT_SubGlyphRec structure.
David Turner2ce92032006-03-23 20:58:20 +00001633
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001634 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
1635 to...
1636 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
1637 (FT_Get_SybGlyph_Info): New declaration.
1638
1639 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
1640
1641
1642 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
Werner Lembergc6afa122006-05-02 22:22:16 +00001643 rsb_delta correctly in edge cases.
David Turner2ce92032006-03-23 20:58:20 +00001644
Werner Lemberg3867d2f2006-03-22 08:03:06 +000016452006-03-22 Werner Lemberg <wl@gnu.org>
1646
Werner Lemberg6c5b6172006-03-22 15:30:41 +00001647 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
1648 [!FTC_INLINE]: Compile conditionally.
1649 * src/cache/ftccache.h: Updated.
1650
1651 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
1652 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
1653 s/FT_EXPORT/FT_LOCAL/.
1654 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
1655 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
1656 s/FT_EXPORT/FT_LOCAL/.
1657 * src/cache/ftcglyph.h: Updated.
1658
1659 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
1660 s/FT_EXPORT/FT_LOCAL/.
1661 (FTC_INode_Weight): Commented out.
1662 * src/cache/ftcimage.h: Updated.
1663
1664 * src/cache/ftmanag.c (FTC_Manager_Compress,
1665 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
1666 s/FT_EXPORT/FT_LOCAL/.
1667 * src/cache/ftmanag.h: Updated.
1668
1669 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
1670 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
1671 (FTC_SNode_Weight): Commented out.
1672 * src/cache/ftcsbits.h: Updated.
1673
16742006-03-22 Werner Lemberg <wl@gnu.org>
1675
Werner Lemberg3867d2f2006-03-22 08:03:06 +00001676 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
1677 Remove, unused.
1678
1679 * src/cache/ftccmap.h: Remove, unused.
1680
1681 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
1682
Werner Lemberg5556dd22006-03-21 21:36:33 +000016832006-03-21 Zhe Su <james.su@gmail.com>
1684
1685 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
1686 algorithm.
1687
Werner Lemberg26377002006-03-21 18:41:40 +000016882006-03-21 Werner Lemberg <wl@gnu.org>
1689
1690 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
1691
1692 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
1693
1694 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
1695 to `FT_UInt'.
1696 Check range of `glyph_index'.
1697 * src/cff/cffgload.h: Updated.
1698
Werner Lemberg8439fe82006-03-21 21:04:33 +00001699
Werner Lemberg95f206b2006-03-21 20:47:28 +00001700 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
1701 correctly.
1702
Werner Lemberg8439fe82006-03-21 21:04:33 +00001703
1704 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
1705 README: s/2.1.10/2.2/.
1706
Werner Lemberg26377002006-03-21 18:41:40 +000017072006-03-21 David Turner <david@freetype.org>
David Turner24b9e872006-03-21 16:30:04 +00001708
Werner Lemberga62007f2006-03-21 17:41:40 +00001709 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
1710 that crashes the auto-hinter (introduced by previous patch).
David Turner24b9e872006-03-21 16:30:04 +00001711
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000017122006-03-20 Werner Lemberg <wl@gnu.org>
David Turnerdad2a2d2006-03-20 11:48:13 +00001713
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001714 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
1715 (FREETYPE_H): Updated.
David Turnere091ce32006-03-20 16:01:28 +00001716
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001717 * src/cache/rules.mk (CACHE_H_DIR): Remove.
1718 (CACHE_DRV_H): Updated.
David Turnerda95af62006-03-20 13:32:33 +00001719
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000017202006-03-20 David Turner <david@freetype.org>
David Turnerda95af62006-03-20 13:32:33 +00001721
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001722 * include/freetype/cache/ftccache.h,
1723 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
1724 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
1725 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
1726 Move to...
David Turner505667c2006-03-20 12:13:14 +00001727
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001728 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
1729 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
1730 src/cache/ftcmru.h: This new location.
1731 Update declarations according to the changes in the corresponding
1732 source files.
David Turner256de4b2006-03-20 12:10:24 +00001733
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001734 Note that these files are not used by FreeType clients; all public
1735 APIs of the cache module have been already moved to
1736 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
1737 macros resolve to it.
David Turner256de4b2006-03-20 12:10:24 +00001738
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001739 Reason for the move is to allow modifications of the internals
1740 without interferences with rogue clients. Note that there are no
1741 known clients that access the cache internals at the moment.
David Turner256de4b2006-03-20 12:10:24 +00001742
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001743 * builds/unix/install.mk (install): Don't install headers from
1744 $(CACHE_H).
1745 Remove `freetype/cache' from the target directory.
David Turnerdad2a2d2006-03-20 11:48:13 +00001746
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001747 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
1748 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
1749 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
1750 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
1751 FT_CACHE_H.
David Turnerdad2a2d2006-03-20 11:48:13 +00001752
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001753 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
1754 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
1755 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
1756 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
1757 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
1758 but include the headers directly (which are now in `src/cache').
David Turnerdad2a2d2006-03-20 11:48:13 +00001759
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001760 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1761 macros but include the headers directly.
1762 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
1763 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
1764
1765 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1766 macros but include the headers directly.
1767 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
1768 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
1769 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
1770 Declare as FT_LOCAL_DEF.
1771 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
1772 conditionally.
1773 Declare as FT_LOCAL_DEF.
1774
1775
1776 * builds/win32/visualc/freetype.dsp: Update project file, add
1777 missing base source files (ftstroke.c, ftxf86.c, etc.).
1778
1779
1780 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
1781 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
1782 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
1783 src/type1/t1objs.c: Remove compiler warnings when building with
1784 Visual C++ 6 and /W4.
1785
1786 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1787 hinting for italic/oblique fonts.
1788
1789
1790
1791 * src/truetype/ttpload.c, src/truetype/ttpload.h
1792 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
1793
17942006-03-06 David Turner <david@freetype.org>
David Turner65b96aa2006-03-07 00:38:24 +00001795
Werner Lemberge6a8fca2006-03-07 23:53:55 +00001796 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
1797 Mozilla/FireFox print preview in Ubuntu Hoary.
David Turner65b96aa2006-03-07 00:38:24 +00001798
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +000017992006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1800
Wu, Chia-I (吳佳一)9f5d3de2006-02-28 13:21:50 +00001801 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
1802 return error when size == 0.
1803
18042006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1805
Werner Lemberge88d24c2006-02-28 21:49:54 +00001806 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
1807 order so that type42 module is removed before truetype module. This
1808 avoids double free in some occasions.
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +00001809
Werner Lembergc6afa122006-05-02 22:22:16 +000018102006-02-28 David Turner <david@freetype.org>
David Turnere9a47192006-02-28 09:26:58 +00001811
Werner Lemberge88d24c2006-02-28 21:49:54 +00001812 * Release candidate VER-2-2-0-RC4.
1813 ----------------------------------
David Turnere9a47192006-02-28 09:26:58 +00001814
Werner Lemberge88d24c2006-02-28 21:49:54 +00001815 * docs/CHANGES: Documentation updates.
David Turnere9a47192006-02-28 09:26:58 +00001816
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +000018172006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1818
Werner Lemberge88d24c2006-02-28 21:49:54 +00001819 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
1820 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
1821 built.
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +00001822
Werner Lembergc07ee522006-02-27 18:13:12 +000018232006-02-27 Werner Lemberg <wl@gnu.org>
1824
1825 * include/freetype/cache/ftccache.h
1826 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
1827 ftc_node_done.
1828
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001829 * src/cache/ftccache.c (ftc_node_destroy)
1830 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
1831 should now fix all possible compilation options.
1832
David Turnerc13e75f2006-02-27 13:14:42 +000018332006-02-27 David Turner <david@freetype.org>
1834
Werner Lemberg422d2a02006-02-27 18:25:22 +00001835 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
1836 ft_mem_qrealloc): Return an error if a negative size is passed in
1837 parameters.
David Turnerc13e75f2006-02-27 13:14:42 +00001838
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001839 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
1840 it needs to be exported for rogue clients.
David Turner65b96aa2006-03-07 00:38:24 +00001841
Werner Lemberg422d2a02006-02-27 18:25:22 +00001842 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
1843 with malformed fonts which have an odd number of blue values (these
1844 are broken according to the specs).
David Turnerc13e75f2006-02-27 13:14:42 +00001845
Werner Lemberg422d2a02006-02-27 18:25:22 +00001846 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
1847 (T1_Open_Face): Modify the loaders to force even-ness of
1848 `num_blue_values'.
1849
1850 (cff_index_access_element): Ignore invalid entries in index files.
David Turnerc13e75f2006-02-27 13:14:42 +00001851
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +000018522006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1853
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001854 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
1855 or height is 0.
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +00001856
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +000018572006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1858
1859 * builds/mac/FreeType.m68k_cfm.make.txt,
1860 builds/mac/FreeType.m68k_far.make.txt,
1861 builds/mac/FreeType.ppc_carbon.make.txt,
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001862 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
1863 inclusion introduced on 2006-02-16.
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00001864
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +000018652006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1866
Werner Lemberg422d2a02006-02-27 18:25:22 +00001867 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
1868 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001869 Re-enable glyph metrics grid-fitting. It is now done in the base
1870 layer.
Werner Lembergc07ee522006-02-27 18:13:12 +00001871 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
1872 height are not too small or too large, just like we were doing in
1873 2.1.10.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001874
Werner Lembergc07ee522006-02-27 18:13:12 +00001875 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
1876 are not scaled.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001877
Werner Lembergf99d8462006-02-26 17:50:59 +000018782006-02-26 Werner Lemberg <wl@gnu.org>
1879
1880 * docs/release: Minor additions and clarifications.
1881
1882 * docs/CHANGES: Updated to reflect many fixes for backwards
1883 compatibility. Still incomplete.
1884
David Turnerb4636652006-02-26 07:57:45 +000018852006-02-26 David Turner <david@freetype.org>
1886
Werner Lemberg0aaf4292006-02-26 17:30:15 +00001887 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
1888 conservative rounding of metrics to avoid breaking clients like
1889 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
David Turnerb4636652006-02-26 07:57:45 +00001890
Werner Lemberg20a8d0c2006-02-25 16:56:04 +000018912006-02-25 Werner Lemberg <wl@gnu.org>
1892
1893 * devel/ftoption.h: Synchronize with
1894 include/freetype/config/ftoption.h.
1895
Werner Lembergae1e4b12006-02-25 17:11:04 +00001896 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
1897
David Turner6c71c6b2006-02-25 12:49:40 +000018982006-02-25 David Turner <david@freetype.org>
1899
Werner Lemberg7f049f42006-02-25 16:52:16 +00001900 Fix compiler warnings as well as C++ compilation problems.
1901 Add missing prototypes.
David Turner6c71c6b2006-02-25 12:49:40 +00001902
Werner Lemberg7f049f42006-02-25 16:52:16 +00001903 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
1904 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
1905 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
1906 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
1907 initialize variables, and decorate functions with FT_CALLBACK_DEF,
1908 etc., to fix compiler warnings (and C++ compiling errors).
David Turner6c71c6b2006-02-25 12:49:40 +00001909
Werner Lemberg7f049f42006-02-25 16:52:16 +00001910 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
1911 gcc.
David Turnerde271ab2006-02-25 14:53:02 +00001912
Werner Lemberg7f049f42006-02-25 16:52:16 +00001913 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
1914 FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001915
Werner Lemberg7f049f42006-02-25 16:52:16 +00001916 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001917
Werner Lemberg7f049f42006-02-25 16:52:16 +00001918 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
1919
1920 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
1921 define for C++.
1922
1923 * include/freetype/internal/services/svotval.h: Don't include
1924 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
1925
1926 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
1927
1928 * src/gzip/ftgzip.c: Include FT_GZIP_H.
1929
1930 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
1931
1932 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
David Turner6c71c6b2006-02-25 12:49:40 +00001933
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +000019342006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1935
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001936 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1937 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
David Turner6c71c6b2006-02-25 12:49:40 +00001938 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001939 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
1940
19412006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1942
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001943 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
1944 documentation.
1945
1946 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
1947 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
Werner Lembergd7e6b762006-02-25 06:24:28 +00001948 sure a glyph slot owns its bitmap. It is also marked experimental
1949 and due to change.
1950 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
1951 rendering the outline confuses some applications.
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001952
David Turnerca7d76f2006-02-24 09:09:10 +000019532006-02-24 David Turner <david@freetype.org>
1954
Werner Lembergd7e6b762006-02-25 06:24:28 +00001955 * Release candidate VER-2-2-0-RC3.
1956 ----------------------------------
David Turner478c5912006-02-24 09:56:23 +00001957
Werner Lembergd7e6b762006-02-25 06:24:28 +00001958 * src/cache/ftcbasic.c: Correct compatibility hack bug.
David Turnerca7d76f2006-02-24 09:09:10 +00001959
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +000019602006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1961
Werner Lembergd7e6b762006-02-25 06:24:28 +00001962 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
1963 of `width' and `height' to `FT_Long'.
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +00001964 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
1965 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
1966 directly.
1967
David Turner6cda6c02006-02-23 12:37:18 +000019682006-02-23 David Turner <david@freetype.org>
1969
Werner Lembergd7e6b762006-02-25 06:24:28 +00001970 Two BDF patches from Debian libfreetype6 for 2.1.10.
David Turner6cda6c02006-02-23 12:37:18 +00001971
Werner Lembergd4303da2006-02-23 21:01:34 +00001972 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
1973 glyphs.
1974 Fix a problem with large encodings.
David Turner481838e2006-02-23 12:40:14 +00001975
Werner Lembergd7e6b762006-02-25 06:24:28 +00001976
1977 Fix binary compatibility issues for gnustep-back (GNUstep backend
1978 module) which still crashes under Sarge.
1979
1980 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
1981 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
1982 structures and enumerations.
1983 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
1984 compatibility code.
David Turner88d89852006-02-23 22:35:26 +00001985
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001986 * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
David Turneraa557a92006-09-04 16:42:44 +00001987 support rogue clients compiled against 2.1.7 to work correctly.
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001988 This probably explains the GNUstep crashes with the second release
1989 candidate.
David Turnerbd502952006-09-01 19:05:24 +00001990
Wu, Chia-I (吳佳一)890f8072006-02-22 20:47:39 +000019912006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
1992
1993 * include/freetype/ftoutln.h (enum FT_Orientation): New value
1994 `FT_ORIENTATION_NONE'.
1995
1996 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1997 ft_contour_enclosed, ft_outline_get_orientation): Another version of
1998 `FT_Outline_Get_Orientation'. This version differs from the public
1999 one in that each part (contour not enclosed in another contour) of the
2000 outline is checked for orientation.
2001 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
2002
2003 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
2004 use bitmap's embolden routine when the outline one failed.
2005
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +000020062006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
2007
2008 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
2009 compatibility.
2010
2011 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
2012
2013 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
2014 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
Werner Lemberg5edafed2006-02-22 08:23:35 +00002015 loading. (Only tested with bit aligned sbit with x_pos == 0.)
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00002016
2017 * src/truetype/ttpload.c (tt_face_load_hdmx,
Werner Lemberg5edafed2006-02-22 08:23:35 +00002018 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
2019 actually used.
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00002020
David Turner1ae134a2006-02-21 16:50:17 +000020212006-02-21 David Turner <david@freetype.org>
2022
Werner Lemberg5edafed2006-02-22 08:23:35 +00002023 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
2024 we have a patented, unpatented, or unimplemented TrueType bytecode
2025 interpreter.
David Turner0b5dc4d2006-02-21 22:36:23 +00002026
Werner Lemberg5edafed2006-02-22 08:23:35 +00002027 The FT_Get_Module_Flags API was removed consequently.
David Turner0b5dc4d2006-02-21 22:36:23 +00002028
David Turner88d89852006-02-23 22:35:26 +00002029 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Werner Lemberg5edafed2006-02-22 08:23:35 +00002030 Replaced with...
2031 (FT_Get_TrueType_Engine_Type): This.
2032 (FT_TrueTypeEngineType): New enumeration.
David Turner0b5dc4d2006-02-21 22:36:23 +00002033
Werner Lemberg5edafed2006-02-22 08:23:35 +00002034 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
2035 New macro.
David Turner1ae134a2006-02-21 16:50:17 +00002036
Werner Lemberg5edafed2006-02-22 08:23:35 +00002037 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2038 (FT_Module_Get_Flags): Removed. Replaced with...
2039 (FT_Get_TrueType_Engine_Type): This.
David Turnerc093db92006-02-21 17:06:35 +00002040
Werner Lemberg5edafed2006-02-22 08:23:35 +00002041 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2042 (tt_service_truetype_engine): New service structure.
2043 (tt_services): Register it.
2044
2045 * include/freetype/internal/services/svtteng.h: New file.
2046
2047
2048 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
2049 embedded bitmaps from being correctly listed and used.
2050
2051
2052 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
2053 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
2054 libXfont is directly accessing the HMTX data, unfortunately.
2055 Fix some compiler warnings.
2056 (tt_face_get_metrics): Ditto.
2057
2058
2059 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
2060 character advances.
David Turner1ae134a2006-02-21 16:50:17 +00002061
David Turnerdd0f3602006-02-20 23:50:21 +000020622006-02-20 David Turner <david@freetype.org>
2063
David Turner0b5dc4d2006-02-21 22:36:23 +00002064 Support binary compatibility with the X.Org server's Xfont library.
Werner Lembergd41aecd2006-02-21 08:08:14 +00002065 Note that this change unfortunately prevents memory optimizations
2066 for the embedded bitmap loader.
David Turnerdd0f3602006-02-20 23:50:21 +00002067
Werner Lembergd41aecd2006-02-21 08:08:14 +00002068 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
2069 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
2070 version 2.1.8.
David Turnerdd0f3602006-02-20 23:50:21 +00002071
Werner Lembergd41aecd2006-02-21 08:08:14 +00002072 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
2073 FT_Size_Request.
2074 (sfnt_interface): Updated.
2075
2076 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
2077 ttsbit0.c.
2078 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
2079
2080 * src/sfnt/ttsbit.h: Updated.
David Turnerdd0f3602006-02-20 23:50:21 +00002081
David Turner0880ac32006-02-17 17:23:13 +000020822006-02-17 David Turner <david@freetype.org>
2083
Werner Lembergf145e312006-02-19 16:12:18 +00002084 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
2085 functions anymore. This ensures that all FT_BASE internal functions
2086 are available for dynamic linking.
2087
2088 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
2089 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
2090 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
2091 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
2092 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
2093 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
2094 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
2095 cache sub-system. We try to recognize old legacy signatures with a
2096 gross hack (hope it works).
David Turner0880ac32006-02-17 17:23:13 +00002097
Werner Lemberg1fae6692006-02-17 16:16:40 +000020982006-02-17 Werner Lemberg <wl@gnu.org>
2099
2100 * devel/ftoption.h: Synchronize with
2101 include/freetype/config/ftoption.h.
2102
David Turnercda2d952006-02-16 22:45:31 +000021032006-02-16 David Turner <david@freetype.org>
2104
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002105 Massive changes to the internals to respect the internal object
2106 layouts and exported functions of FreeType 2.1.7. Note that the
2107 cache sub-system cannot be fully retrofitted, unfortunately.
David Turnercda2d952006-02-16 22:45:31 +00002108
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002109 * include/freetype/config/ftoption.h
2110 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
2111
2112 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
2113 include/freetype/cache/ftccmap.h,
2114 include/freetype/internal/ftcalc.h,
2115 include/freetype/internal/ftdriver.h,
2116 include/freetype/internal/ftmemory.h,
2117 include/freetype/internal/ftobjs.h,
2118 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
2119 include/freetype/internal/t1types.h,
2120 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
2121 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
2122 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
2123 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
2124 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
2125 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
2126 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
2127 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
2128 structures.
2129
2130 Move newly added structure elements to the end of the affected
2131 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
2132 defined) to assure binary compatibility with older FreeType
2133 versions.
2134 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
2135 functions:
2136
2137 ft_stub_set_char_sizes
2138 ft_stub_set_pixel_sizes
2139
2140 Rename the following internal functions to provide the old function
2141 names as stubs:
2142
2143 FT_Alloc -> ft_mem_alloc
2144 FT_QAlloc -> ft_mem_qalloc
2145 FT_Realloc -> ft_mem_realloc
2146 FT_QRealloc -> ft_mem_qrealloc
2147 FT_Free -> ft_mem_free
2148 FT_Alloc_Debug -> ft_mem_alloc_debug
2149 FT_QAlloc_Debug -> ft_mem_qalloc_debug
2150 FT_Realloc_Debug -> ft_mem_realloc_debug
2151 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
2152 FT_Free_Debug -> ft_mem_free_debug
David Turnercda2d952006-02-16 22:45:31 +00002153
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +000021542006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
2155
2156 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
2157 unused `max_points' and `max_contours'.
David Turnercda2d952006-02-16 22:45:31 +00002158
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002159 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
2160 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
2161
2162 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
2163 `max_components'.
2164
2165 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
2166 `loadSize' and `loadStack'.
2167
2168 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
2169 src/sfnt/ttload.c (tt_face_load_maxp): Update.
2170
2171 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
2172 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
2173 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
2174 defined.
2175
2176 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
2177 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
2178 (finally!)
2179
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002180
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002181 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
2182 and `face->root' is set later in `sfnt_load_face'. Here, we try to
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002183 make this work for _all_ tables. Also improve tracing messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002184
2185 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
2186 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
2187 then exit. Error handling or setting face->root is done later in
2188 `sfnt_load_face'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002189
2190 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
2191 Mac bitmap-only fonts are not scalable.
2192 Check that `face->header.Units_Per_EM' is not zero.
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002193 (LOAD_, LOADM_): Emit pretty trace messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002194
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002195 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
2196 from `eblc'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002197
2198 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
2199 (load_format_20, load_format_25, tt_face_get_ps_name): Use
2200 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
2201
Werner Lemberg52254022006-02-15 06:05:52 +000022022006-02-14 Werner Lemberg <wl@gnu.org>
2203
2204 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
2205 documentation that negative strength values are possible.
2206 Give an example call.
2207
2208 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
2209 documentation of `outline' field.
2210
2211 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
2212 * src/sfnt/sfdriver.c: Include ttmtx.h.
2213
2214 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
2215
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +000022162006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2217
Wu, Chia-I (吳佳一)3dc00182006-02-14 13:36:28 +00002218 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
2219
22202006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2221
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002222 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
2223 return error if table is missing.
2224 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
2225
2226 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
Werner Lemberg52254022006-02-15 06:05:52 +00002227 tables. The last change makes Mac bitmap-only font not load and
2228 this fixes it.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002229
Werner Lemberg52254022006-02-15 06:05:52 +00002230 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
2231 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002232
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +000022332006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2234
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002235 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
Werner Lemberg814839a2006-07-28 11:55:48 +00002236 split from `load_hhea'.
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002237
2238 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
2239 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
2240
2241 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
2242
22432006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2244
Wu, Chia-I (吳佳一)e0decd12006-02-14 07:20:06 +00002245 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
2246 code...
2247
22482006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2249
Werner Lemberg52254022006-02-15 06:05:52 +00002250 Clean up the SFNT_Interface. In this pass, we want to treat the
2251 font directory (offset table and table directory) as a normal table
2252 like the others. This also means that TTCs are no longer recognized
2253 there but in `init_face'.
Wu, Chia-I (吳佳一)65863a52006-02-14 07:01:29 +00002254
2255 * include/freetype/internal/sfnt.h (SFNT_Interface),
2256 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
2257 combined and renamed to `load_font_dir'.
2258
2259 * src/sfnt/ttload.h, src/sfnt/ttload.c:
2260 s/sfnt_dir_check/check_table_dir/.
2261 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
2262 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
2263 and renamed to `tt_face_load_font_dir'.
2264
2265 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
2266
22672006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2268
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002269 Clean up the SFNT_Interface. Table loading functions are now named
Werner Lemberg52254022006-02-15 06:05:52 +00002270 after the tables' tags; `hdmx' is TrueType-specific and thus the
2271 code is moved to the truetype module; `get_metrics' is moved here
2272 from the truetype module so that the code can be shared with the cff
2273 module.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002274
2275 This pass involves no real changes. That is, the code is moved
2276 verbatim mostly. The only exception is the return value of
2277 `tt_face_get_metrics'.
2278
2279 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
2280 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
2281 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
2282 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
David Turnercda2d952006-02-16 22:45:31 +00002283
Werner Lemberg52254022006-02-15 06:05:52 +00002284 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
2285 tables' loading and parsing code is moved to here.
2286 Move `tt_face_get_metrics' here from the truetype module. The
2287 return value is changed from `void' to `FT_Error'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002288
2289 * include/freetype/internal/fttrace.h: New trace: ttmtx.
2290
2291 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
2292 parsing code is moved here.
Werner Lemberg814839a2006-07-28 11:55:48 +00002293 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002294 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
2295
2296 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
2297
2298 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2299
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +000023002006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2301
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002302 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
2303
2304 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
Werner Lembergd39fda22006-02-12 21:49:21 +00002305 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
2306 to it later in `af_latin_hints_link_segments'.
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002307
23082006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2309
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002310 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
Werner Lembergd39fda22006-02-12 21:49:21 +00002311 to enable autofit CJK script support. (#define'd by default.)
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002312
2313 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
2314
Werner Lembergd39fda22006-02-12 21:49:21 +00002315 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
2316 that `edge_distance_threshold' is always set.
2317 (af_latin_hints_link_segments): Potential divide-by-zero bug.
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002318 Use latin constant in the scoring formula.
2319
2320 * src/autofit/afcjk.c: Minor updates due to the above three changes.
2321
2322 * docs/TODO, docs/CHANGES: Updated.
2323
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +000023242006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
2325
2326 Introduce experimental autofit CJK module based on akito's autohint
2327 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
2328
2329 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
2330 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
2331 Add CJK module based on akito's autohint patch.
2332
2333 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002334 overlap length of the segments.
2335 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002336
2337 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002338 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
2339 `FT_LOCAL'.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002340 Use the character given by the caller.
2341 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
2342 the thresholds.
2343
2344 * src/autofit/afloader.c (af_loader_load_g): Respect
2345 AF_SCALER_FLAG_NO_ADVANCE.
2346
Werner Lemberg6be99f92006-02-09 07:38:57 +000023472006-02-09 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002348
Werner Lemberg6be99f92006-02-09 07:38:57 +00002349 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002350
Werner Lemberg6be99f92006-02-09 07:38:57 +000023512006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002352
Werner Lemberg6be99f92006-02-09 07:38:57 +00002353 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
2354 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
2355 2005-11-02).
2356
23572006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2358
2359 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
2360 option on UNIX platform. It has been broken since 2006-01-11.
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002361
Werner Lemberg38beff02006-02-01 05:14:25 +000023622006-02-01 Werner Lemberg <wl@gnu.org>
2363
2364 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
2365 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
2366
Werner Lemberg03379b62006-02-01 05:40:06 +00002367 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
2368 change from 2006-01-31).
2369 (TOP_DIR, OBJ_DIR): Update.
2370
Werner Lemberg9a8006b2006-02-01 06:07:05 +00002371 * builds/unix/install.mk (install): Fix path for ftmodule.h.
2372
Werner Lemberg54a79c82006-02-01 07:54:07 +00002373 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
2374 `?=' where appropriate.
Werner Lemberg8a4de0d2006-02-01 07:52:11 +00002375
2376 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
2377 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
2378
Werner Lemberg38beff02006-02-01 05:14:25 +000023792006-01-31 Werner Lemberg <wl@gnu.org>
Werner Lemberg59939242006-01-31 20:17:42 +00002380
2381 Implement new, simplified module selection. With GNU make it is now
2382 sufficient to modify a single file, `modules.cfg', to control the
2383 inclusion of modules and base extension files.
2384
2385 This change also fixes the creation of ftmodule.h; it now depends on
2386 `modules.cfg' and thus is rebuilt only if necessary.
2387
2388 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
2389 default location.
2390
2391 * modules.cfg: New file.
2392
2393 * builds/freetype.mk: Don't include `modules.mk'.
2394 Include all `rules.mk' files as specified in `modules.cfg'.
2395 (FTOPTION_FLAG, FTOPTION_H): New variables.
2396 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
2397 Add FTOPTION_FLAG.
2398 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
2399 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
2400 (INCLUDES): Add DEVEL_DIR.
2401 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
2402 OBJ_M, OBJ_S): Use `:=', not `='.
2403 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
2404 (distclean): Add remove_ftmodule_h.
2405
2406 * builds/modules.mk: (MODULE_LIST): Removed.
2407 (make_module_list, clean_module_list): Replace targets
2408 with...
2409 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
2410 variables. Reason for the change is that it is not possible to have
2411 a phony prerequisite which is run only if the target file must be
2412 rebuilt (phony prerequisites act like subroutines and are *always*
2413 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
2414 changed.
2415 Update all callers.
2416 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
2417 `modules.cfg'.
2418
2419 * builds/toplevel.mk: Rewrite and simplify module handling.
2420 (MODULES_CFG, FTMODULE_H): New variables.
2421 Include MODULES_CFG.
2422 (MODULES): New variable to include all `module.mk' and `rules.mk'
2423 files. We no longer use make's `wildcard' function for this.
2424
2425 * Makefile (USE_MODULES): Remove. Update all users.
2426 (OBJ_DIR): Define it here.
2427
2428 * src/*/module.mk: Change
2429
2430 make_module_list: foo
2431 foo: ...
2432
2433 to
2434
2435 FTMODULE_H_COMMANDS += FOO
2436 define FOO
2437 ...
2438 endef
2439
2440 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
2441
2442 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
2443
2444 * builds/unix/detect.mk (setup): Always execute `configure' script.
2445 (have_mk): Rename to...
2446 (have_Makefile): This.
2447 Don't use `strip' function.
2448
2449 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
2450 defined.
2451 (have_mk): Don't use `strip' function.
2452 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
2453 accordingly).
2454
2455 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
2456
2457 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
2458 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
2459 BUILD_DIR but DEVEL_DIR for development header files.
2460
2461 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
2462 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
2463 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
2464
2465 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
2466 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
2467
2468 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
2469 development header files.
2470 Don't define PLATFORM.
2471
2472 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
2473 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
2474 Be more verbose.
2475
2476 * include/freetype/config/ftmodule.h: Add comments -- this file is
2477 no longer used if FreeType is built with GNU make.
2478
2479 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
2480 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
2481 Other minor updates.
2482
2483 * modules.txt: Removed. Contents included in `modules.cfg'.
2484
2485
2486 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
2487 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
2488
2489 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
2490 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
2491 [FT_STRICT_ALIASING]: Implement.
2492
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +000024932006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2494
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002495 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
Werner Lemberg59939242006-01-31 20:17:42 +00002496 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
2497 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
2498 units_per_EM, ascender - descender).
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002499
25002006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2501
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002502 * include/freetype/internal/t1types.h (AFM_FontInfo),
2503 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
2504 `Ascender', and `Descender' from an AFM.
2505
2506 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
2507
Werner Lemberg59939242006-01-31 20:17:42 +00002508 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
2509 be changed after file attachment.
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002510
Werner Lemberg7596fd32006-01-28 16:29:29 +000025112006-01-28 Werner Lemberg <wl@gnu.org>
2512
2513 * src/*/module.mk (.PHONY): Add.
2514
Werner Lemberg68a15eb2006-01-28 07:30:58 +000025152006-01-27 Werner Lemberg <wl@gnu.org>
2516
2517 * README, docs/FTL.TXT: Fix email address for bug reports.
2518 Other minor formatting.
2519
Werner Lembergf6a25502006-01-28 10:38:15 +00002520 * devel/ftoption.h: Synchronize with
2521 include/freetype/config/ftoption.h.
2522
2523 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
2524 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
2525 whitespace.
2526
2527 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
2528 renderer classes.
2529
David Turnerff0e9e62006-01-27 09:15:53 +000025302006-01-27 David Turner <david@freetype.org>
2531
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002532 * builds/unix/configure.ac: Fix build problem on Cygwin.
David Turnercda2d952006-02-16 22:45:31 +00002533
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002534 * builds/unix/install.mk (install): Don't install the internal
2535 headers, and remove existing ones if found in the target install
2536 directory.
David Turner7213b4f2006-01-27 16:42:32 +00002537
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002538 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
2539 if the warp hinter isn't active (it shouldn't, still experimental).
David Turner6a681fa2006-01-27 12:11:22 +00002540
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002541 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
Werner Lembergbe3c9812006-01-27 14:16:16 +00002542 and `otvalid' from the list of modules that are linked statically
2543 to a given FreeType library. Functionality has been moved to the
2544 `ftvalid' CVS module.
David Turner6a681fa2006-01-27 12:11:22 +00002545
Werner Lembergbe3c9812006-01-27 14:16:16 +00002546 Note also that current Make-based build system still compiles the
2547 modules though.
David Turner6a681fa2006-01-27 12:11:22 +00002548
Werner Lembergbe3c9812006-01-27 14:16:16 +00002549 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
2550 which controls the definitions of the memory management functions to
2551 avoid warnings with recent versions of GCC. This macro is only here
2552 to be disabled, in case we detect problems with the new scheme.
David Turner6a681fa2006-01-27 12:11:22 +00002553
Werner Lembergbe3c9812006-01-27 14:16:16 +00002554 NOTE: Disable macro to use the memory debugger -- this will be fixed
2555 later!
2556
2557 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
2558 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
2559 New versions.
2560
2561
2562 * builds/win32/visualc/freetype.dsp: Updating project file to
2563 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
2564 compilation.
2565
2566
2567 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
2568 macro FT2_BUILD_LIBRARY when compiling the library.
2569
2570 * include/freetype/config/ftheader.h: Remove inclusions of internal
2571 headers except if the macro FT2_BUILD_LIBRARY is defined.
2572
2573
2574 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
2575 AFM_FontInfo): Move structure declarations to...
2576 * include/freetype/internal/t1types.h: This file.
2577
2578
2579 * (many files): Fix compiler warnings.
2580 Various minor reorganizations.
2581
2582
2583 * src/cff/cffload.c (cff_font_done): Don't free static array
2584 `subfonts'.
2585
2586 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
2587 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
2588
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002589
2590 Get rid of writable static variables (i.e., the string table) in
2591 afmparse, and fix compilation in FT2_MULTI mode.
2592
Werner Lembergbe3c9812006-01-27 14:16:16 +00002593 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
2594 (AFM_MAX_ARGUMENTS): Define...
2595 * src/psaux/afmparse.h: Here.
2596 * src/psaux/Jamfile (_sources): Add afmparse.
2597
2598 * src/psaux/psconv.c: Include psconv.h.
2599
2600 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
2601 FT_INTERNAL_POSTSCRIPT_AUX_H.
2602 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
David Turnerff0e9e62006-01-27 09:15:53 +00002603
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +000026042006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2605
Wu, Chia-I (吳佳一)bcc438b2006-01-23 14:12:40 +00002606 * include/freetype/freetype.h (FT_Select_Size): Rename the second
2607 argument from `idx' to `strike_index'.
2608 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
2609 this enum.
2610
2611 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
2612 FT_REQUEST_HEIGHT): New macros to get the width and height of a
2613 request, in fractional pixels.
2614
2615 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
2616 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
2617 FT_Request_Metrics): New base functions to set the font metrics. They
2618 were part of FT_Select_Size/FT_Request_Size and are made independent
2619 functions so that metrics are not set again and again.
2620
2621 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
2622 only when driver's size_select/size_request is NULL. That is, drivers
2623 should set the metrics themselves.
2624 (FT_Match_Size): Round before matching. This was what we did and it
2625 does cause some problems without rounding.
2626
2627 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
2628 (tt_size_select): Set the font metrics.
2629 s/index/strike_index/.
2630 The scaled metrics are always preferred over strikes' metrics, even
2631 when some strike is selected. This is done because the strikes'
2632 metrics are not reliable, e.g., the sign of the descender is wrong for
2633 some fonts.
2634
2635 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
2636 (tt_size_request): Set the font metrics.
2637 Call cff_size_select/tt_size_select when some strike is matched.
2638
2639 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
2640 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
2641 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
2642 Set the font metrics.
2643 s/index/strike_index/.
2644
2645 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
2646 files were committed. Just a catch-up.
2647 (PS_Conv_ToFixed): Remove the `goto'.
2648 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
2649
2650 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
2651 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
2652 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
2653 advertised metrics in `available_sizes' are different from those
2654 actually used.
2655
26562006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2657
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +00002658 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
2659 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
2660
Werner Lemberged70ca52006-01-23 07:28:03 +000026612006-01-22 Werner Lemberg <wl@gnu.org>
2662
2663 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
Werner Lemberg4836f952006-06-06 12:54:08 +00002664 `texinfo' CVS module at savannah.gnu.org.
Werner Lemberged70ca52006-01-23 07:28:03 +00002665
Werner Lemberg1be9ebf2006-01-22 06:58:16 +000026662006-01-21 Werner Lemberg <wl@gnu.org>
2667
2668 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
2669
Werner Lembergb36bf522006-01-22 07:09:54 +00002670 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
2671 to avoid compiler warnings.
2672
2673 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
2674 shadowing variable declarations.
2675 Fix warning parameters and replace printf with AF_LOG.
2676 (af_warper_compute): Remove unused variable.
2677
David Turnerbb4edc92006-01-21 14:31:45 +000026782006-01-20 David Turner <david@freetype.org>
2679
Werner Lemberg1be9ebf2006-01-22 06:58:16 +00002680 Adding experimental implementation of `warp hinting' (new hinting
2681 algorithm for gray-level and LCD rendering). It is disabled by
2682 default, you need to #define AF_USE_WARPER in aftypes.h.
2683
2684 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
2685 New function.
2686 * src/autofit/afhints.h: Updated.
2687
2688 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
2689 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
2690 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
2691 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
2692 appropriately.
2693
2694 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
2695 Isolate code for adjusting metrics.
2696
2697 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
2698 default).
2699
2700 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
2701
2702 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
2703
2704 * src/autofit/Jamfile (_sources): Add afwarp.
David Turnerbb4edc92006-01-21 14:31:45 +00002705
David Turner8c16ed32006-01-19 13:10:49 +000027062006-01-19 David Turner <david@freetype.org>
2707
Werner Lemberge7be64e2006-01-21 17:27:32 +00002708 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
2709 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
David Turner8c16ed32006-01-19 13:10:49 +00002710
Werner Lemberg8b560632006-01-19 08:30:58 +000027112006-01-19 Brian Weed <bw@imaginengine.com>
2712
2713 * builds/win32/visualc/freetype.dsp: Updated.
2714
Werner Lemberg47bf95d2006-01-17 16:55:32 +000027152006-01-17 Werner Lemberg <wl@gnu.org>
2716
2717 Use pscmap service in CFF module.
2718
2719 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
2720 (cff_sid_to_glyph_name): New function.
2721 (cff_cmap_unicode_init, cff_cmap_unicode_done,
2722 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
2723 service.
2724 (cff_cmap_unicode_class_rec): Updated.
2725 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
2726
2727
2728 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
2729 return value.
2730
2731
2732 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
Werner Lemberge7be64e2006-01-21 17:27:32 +00002733 to avoid compiler warnings regarding type-punning.
Werner Lemberg47bf95d2006-01-17 16:55:32 +00002734
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +000027352006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
2736
2737 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
Werner Lembergce94c7a2006-01-16 22:35:33 +00002738 implement an AFM parser.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002739
2740 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
Werner Lembergce94c7a2006-01-16 22:35:33 +00002741 conversion functions (e.g., PS real number => FT_Fixed) for the
2742 PS_Parser and AFM_Parser. Some of the functions are taken, with
2743 some modifications, from the file psobjs.c.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002744
2745 * src/psaux/psobjs.c: Use functions from psconv.c.
2746
Werner Lembergce94c7a2006-01-16 22:35:33 +00002747 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002748 `AFM_Parser' to the `psaux' service.
2749
Werner Lembergce94c7a2006-01-16 22:35:33 +00002750 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
2751 those new files.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002752
2753 * src/tools/test_afm.c: A test program for AFM parser.
2754
Werner Lembergce94c7a2006-01-16 22:35:33 +00002755 * include/freetype/internal/services/svkern.h: New file providing a
2756 `Kerning' service. It is currently only used to get the track
2757 kerning information.
2758
2759 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
2760 macro.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002761
2762 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
2763 src/type1/t1afm.h: Update to use the AFM parser.
2764 Provide the `Kerning' service.
2765
2766 * include/freetype/freetype.h, src/base/ftobjs.c: New API
2767 `FT_Get_Track_Kerning'.
2768
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +000027692006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2770
Wu, Chia-I (吳佳一)ea1e8d32006-01-15 15:01:45 +00002771 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
2772 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
2773 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
2774 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
2775
2776 * docs/CHANGES: Mention that vertical metrics are synthesized for
2777 fonts not having this info.
2778
27792006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2780
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002781 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002782 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002783 vertical metrics.
2784
2785 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002786 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
2787 which are monotone.
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002788
2789 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002790 formattings in vertical metrics faking. There is still room for
2791 improvements (and so does the CFF module).
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002792
27932006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2794
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002795 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
2796 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002797 the linear advance fields as they are only used by the outline
2798 glyphs.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002799
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002800 * include/freetype/freetype.h: Documentation updates and
2801 clarifications.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002802 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
2803 change need be made to the code.
2804
2805 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
2806 decide whether to use the auto-hinter according to documentation.
2807 There should to be no real difference.
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002808 Some checks (e.g., is text height positve?) after the glyph is
2809 loaded.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002810 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
2811 Be careful that scales won't be negative.
2812
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +000028132006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
2814
2815 * docs/CHANGES: Mention the size selection change.
2816
2817 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
2818 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
2819 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
Werner Lemberg3d8eeb82006-01-14 07:10:45 +00002820 matching for requests of type NOMINAL and REAL_DIM.
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +00002821
2822 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
2823 `pixel_height' is used for nominal height.
2824
2825 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
2826 face is bitmap only and driver doesn't provide `request_size'. This
2827 is added merely for completion as no driver satisfies the conditions.
2828
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +000028292006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2830
2831 Introduce new size selection interface.
2832
Werner Lembergf1c2b912006-01-13 14:53:28 +00002833 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +00002834 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
2835 `select_size'.
2836
2837 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
2838 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
2839 (FT_Select_Size, FT_Request_Size): API additions to export the new
2840 size selection interface.
2841
2842 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
2843 `FT_Request_Size'.
2844
2845 * include/freetype/internal/ftobjs.h (FT_Match_Size),
2846 src/base/ftobjs.c (FT_Match_Size): New function to match a size
2847 request against `available_sizes'. Drivers supporting bitmap strikes
2848 can use this function to implement `request_size'.
2849
2850 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
2851 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
2852 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
2853 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
2854 Update to new size selection interface.
2855
2856 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
2857 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
2858 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
2859 selection interface.
2860 Make `strike_index' FT_ULong and always defined.
2861 Use `load_strike_metrics' provided by SFNT interface.
2862
28632006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2864
2865 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
2866 `load_strike_metrics' used to load the strike's metrics.
2867
2868 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2869 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
2870
2871 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
2872
2873 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
2874 nominal size unless it is obviously incorrect.
2875
2876 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
2877 FNT driver.
2878
Werner Lemberg8ab09792006-01-12 08:12:27 +000028792006-01-12 Werner Lemberg <wl@gnu.org>
2880
2881 Prepare use of pscmap service within CFF module.
2882
2883 * include/freetype/internal/services/svpscmap.h: Include
2884 FT_INTERNAL_OBJECTS_H.
2885 (PS_Unicode_Index_Func): Removed. Unused.
2886 (PS_Macintosh_Name_Func): Renamed to...
2887 (PS_Macintosh_NameFunc): This.
2888 Update all callers.
2889 (PS_Adobe_Std_Strings_Func): Renamed to...
2890 (PS_Adobe_Std_StringsFunc): This.
2891 Update all callers.
2892 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
2893 Add `cmap' member.
2894 Update all callers.
2895 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
2896 Update all callers.
2897 (PS_Glyph_NameFunc): New typedef.
2898 (PS_Unicodes_InitFunc): Change arguments to expect a function
2899 and generic data pointer which returns a glyph name from a given
2900 index.
2901
2902 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
2903 ps_unicodes_char_next, pscmaps_interface): Updated.
2904
2905 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
2906
2907 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
2908 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
2909
2910 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
2911 (t1_cmap_unicode_init, t1_cmap_unicode_done,
2912 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
2913 t1_cmap_unicode_class_rec): Updated.
2914
2915 * src/type42/t42types.h (T42_FaceRec): Updated.
2916
29172006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)356a4d82006-01-12 03:33:16 +00002918
2919 * include/freetype/ftmac.h: Add declaration of new functions
2920 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
2921 were introduced by the jumbo patch on 2006-01-11.
2922
Werner Lemberg8ab09792006-01-12 08:12:27 +000029232006-01-11 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002924
Werner Lembergadf828f2006-01-11 10:08:49 +00002925 Fix Savannah bug #15056 and use pscmap service in psaux module.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002926
Werner Lembergadf828f2006-01-11 10:08:49 +00002927 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
2928 FT_UInt32 for `glyph_index'.
2929 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
2930 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
2931 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
2932 FT_UInt32.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002933
Werner Lembergadf828f2006-01-11 10:08:49 +00002934 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
2935 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
2936 variant glyph (this is, it has non-leading `.' in its name).
2937 (compare_uni_maps): Sort base glyphs before variant glyphs.
2938 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
2939 Reallocate only if number of used entries is much smaller.
2940 Updated to handle variant glyphs.
2941 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
2942 over variant glyphs.
2943 Simplify code.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002944
Werner Lembergadf828f2006-01-11 10:08:49 +00002945 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
2946 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
2947 t1_cmap_unicode_char_next): Use pscmap service.
2948 (t1_cmap_unicode_done): Updated.
2949
2950 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
2951 (T1_CMapUnicode): Use PS_Unicodes structure.
2952
29532006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2954
2955 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
2956 Intel, as reported by Sean McBride <sean@rogue-research.com> on
2957 2005-08-24.
2958
2959 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
2960 functions on Tiger.
2961
2962 * builds/unix/configure.ac: Add options and autochecks for Carbon
2963 functions availabilities, for MacOS X.
2964
2965 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002966 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
Werner Lembergadf828f2006-01-11 10:08:49 +00002967 macros to avoid unavailable functions.
2968 ftmac.c must be compiled without `-strict ansi', because it disables
2969 cpp macro to use ToolBox system call.
2970
2971 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
2972 macros to avoid unavailable functions.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002973
2974 * builds/mac/README: Detailed notes on function availabilities.
2975
2976 * docs/CHANGES: Notes about (possible) incompatibilities.
2977
Werner Lemberge8f92af2006-01-08 13:43:30 +000029782006-01-08 Werner Lemberg <wl@gnu.org>
2979
Werner Lemberg6cdab922006-01-08 22:34:01 +00002980 * docs/CHANGES: Updated.
2981
29822006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
2983
2984 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
2985 declaration.
2986
2987 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
2988
29892006-01-07 Werner Lemberg <wl@gnu.org>
2990
Werner Lemberge8f92af2006-01-08 13:43:30 +00002991 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
Werner Lemberg30bd2842006-01-08 19:38:42 +00002992 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
2993
2994 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
2995 Reported by Niels Boldt <nielsboldt@gmail.com>.
Werner Lemberge8f92af2006-01-08 13:43:30 +00002996
29972005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00002998
Werner Lemberg05cda082006-01-08 13:37:15 +00002999 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
3000 MPW compiler.
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00003001
David Turnere6bb9532005-12-23 13:32:06 +000030022005-12-23 David Turner <david@freetype.org>
3003
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003004 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
3005 refdoc' works correctly to generate the API reference in
3006 `docs/reference'.
David Turnere6bb9532005-12-23 13:32:06 +00003007
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003008 * src/tools/docmaker/tohtml.py (print_html_field,
3009 print_html_field_list): Update to output nicer fields lists in the
3010 API reference.
David Turnere6bb9532005-12-23 13:32:06 +00003011
3012 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003013 forces auto-hinting.
David Turnere6bb9532005-12-23 13:32:06 +00003014
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003015 * freetype/freetype.h: Updating the documentation for
3016 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
David Turnere6bb9532005-12-23 13:32:06 +00003017
Werner Lemberg6be99f92006-02-09 07:38:57 +000030182005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00003019
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003020 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
3021 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
3022 unsupported formats (fbit, NFNT). The number of available faces are
3023 passed via face->num_faces. If bitmap faces are embedded in sfnt
3024 resource, face->num_fixed_size is correctly set. In public API,
3025 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
3026 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00003027
3028 * doc/CHANGES: Mention the changes.
3029
Wu, Chia-I (吳佳一)ce34d122005-12-17 13:12:49 +000030302005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
3031
3032 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
3033 correctly (so that memory debug system won't panic).
3034
Wu, Chia-I (吳佳一)dcb8b712005-12-16 14:27:14 +000030352005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
3036
3037 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
3038 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
3039
3040 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
3041
3042 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3043 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
3044 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
3045
3046 * doc/CHANGES: Mention the changes.
3047
David Turner5b5f3822005-12-14 16:37:15 +000030482005-12-13 David Turner <david@freetype.org>
3049
Werner Lembergb79b5132005-12-20 12:01:58 +00003050 Change the implementation of the LIGHT hinting mode to completely
3051 disable horizontal hinting. This is an experimental effort to
3052 integrate David Chester's latest patch without affecting the other
3053 hinting modes as well.
David Turner5b5f3822005-12-14 16:37:15 +00003054
Werner Lembergb79b5132005-12-20 12:01:58 +00003055 Note that this doesn't force auto-hinting for all fonts, however.
David Turner5b5f3822005-12-14 16:37:15 +00003056
Werner Lembergb79b5132005-12-20 12:01:58 +00003057 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
3058 scaler_fiags here but...
3059 (af_glyph_hints_rescale): Here.
David Turner8def3c82005-12-14 16:38:31 +00003060
Werner Lembergb79b5132005-12-20 12:01:58 +00003061 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
3062 hinting for `light' hinting mode.
David Turnerdb0182f2005-12-14 21:16:33 +00003063
David Turnerdb0182f2005-12-14 21:16:33 +00003064
Werner Lembergb79b5132005-12-20 12:01:58 +00003065 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
3066 same location as other generated objects (i.e., within the `objs'
3067 directory of the current directory).
David Turnerdb0182f2005-12-14 21:16:33 +00003068
Werner Lembergb79b5132005-12-20 12:01:58 +00003069
3070 Add support for an embedded `BDF ' table within SFNT-based bitmap
3071 font files. This is used to store atoms & properties from the
3072 original BDF fonts that were used to generate the font file.
3073
3074 The feature is controlled by TT_CONFIG_OPTION_BDF within
3075 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
3076 font files.
3077
3078 At the moment, this is still experimental, the BDF table format
3079 isn't cast into stone yet.
3080
3081 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
3082 macro.
3083
3084 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
3085
3086 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
3087 [TT_CONFIG_OPTION_BDF]: New structure.
3088 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
3089
3090 * include/freetype/ttags.h (TTAG_BDF): New macro.
3091
3092 * src/sfnt/Jamfile (_sources): Add ttbdf.
3093
3094 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
3095
3096 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
3097 FT_SERVICE_BDF_H.
3098 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
3099 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
3100 (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
3101
3102 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
3103
3104 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
3105 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
3106 tt_face_free_bdf_props.
3107
3108 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
David Turner89a2a4b2005-12-14 20:38:15 +00003109
Werner Lemberg364db082005-12-07 20:34:11 +000031102005-12-07 Werner Lemberg <wl@gnu.org>
3111
3112 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
3113 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
3114
Wu, Chia-I (吳佳一)a3690cd2005-12-06 08:24:01 +000031152005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
3116
3117 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
3118 initialized twice.
3119 size->strike_index is not initialized.
3120
Werner Lemberg2a0903a2005-12-03 08:13:43 +000031212005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
3122
Werner Lemberg3b8db662005-12-06 10:47:44 +00003123 * src/type42/t42objs.c (T42_Face_Init): Replace call to
Werner Lemberg2a0903a2005-12-03 08:13:43 +00003124 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
3125
Werner Lembergb797fdb2005-11-30 08:48:32 +000031262005-11-30 Werner Lemberg <wl@gnu.org>
3127
3128 * docs/CHANGES: Document ftdump's `-v' option.
Werner Lembergb5d88e82005-11-30 08:55:51 +00003129 Document latest charmap code changes.
Werner Lembergb797fdb2005-11-30 08:48:32 +00003130
Werner Lemberg44e47d52005-11-30 18:47:49 +00003131 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
3132 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
3133
Wu, Chia-I (吳佳一)a28bc4c2005-11-30 02:39:10 +000031342005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
3135
3136 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
3137 tt_cmap12_char_map_binary): Fix compiler warnings.
3138
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +000031392005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
3140
Werner Lemberg44e47d52005-11-30 18:47:49 +00003141 Major update to distinguish between unsorted and overlapping
3142 segments for cmap format 4. For overlapping but sorted segments,
3143 which is previously considered unsorted, we still use binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003144
David Turner5b5f3822005-12-14 16:37:15 +00003145 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003146 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
3147
3148 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
David Turner5b5f3822005-12-14 16:37:15 +00003149 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003150 (tt_cmap4_reset): Removed.
3151 (tt_cmap4_init): Updated accordingly.
3152 (tt_cmap4_next): Updated accordingly.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003153 Take care of overlapping segments.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003154 (tt_cmap4_validate): Make sure the subtable is large enough.
3155 Do not check glyph_ids because some fonts set the length wrongly.
Werner Lemberg05cda082006-01-08 13:37:15 +00003156 Also, if all segments have offset 0, glyph_ids is always invalid.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003157 It does not cause any problem so far only because the check misses
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003158 equality.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003159 Distinguish between unsorted and overlapping segments.
3160 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
3161 to do `charcode => glyph index' by linear/binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003162 (tt_cmap4_char_index, tt_cmap4_char_next): Use
3163 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
3164 (tt_face_build_cmaps): Treat the return value of validator as flags
3165 for cmap.
3166
31672005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
3168
Werner Lemberg44e47d52005-11-30 18:47:49 +00003169 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
3170 New structures and functions for fast `next char'.
3171 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
3172 index' by binary search.
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +00003173 (tt_cmap12_char_index, tt_cmap12_char_next): Use
3174 tt_cmap12_char_map_binary.
3175 (tt_face_build_cmaps): Check table and offset correctly (equality is
3176 missing).
3177
Werner Lemberg4e03fe72006-04-29 06:20:09 +000031782005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003179
3180 * builds/amiga/smakefile: Adjusted the compiler options
3181 to the current sources, now really builds the gxvalid, gzip
3182 and psnames modules.
3183
3184 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
3185 in the file cache was off by one byte which could cause false
3186 errors in font files.
3187
Werner Lemberg6be99f92006-02-09 07:38:57 +000031882005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)6b1c5972005-11-24 05:16:57 +00003189
3190 * builds/mac/FreeType.m68k_far.make.txt,
3191 builds/mac/FreeType.m68k_cfm.make.txt,
3192 builds/mac/FreeType.ppc_classic.make.txt,
3193 builds/mac/FreeType.ppc_carbon.make.txt:
3194 Updated for MPW to build all available modules.
3195
Werner Lemberg4e03fe72006-04-29 06:20:09 +000031962005-11-21 Håvard Wall <haavardw@ifi.uio.no>
Werner Lemberg67ba2112005-11-21 17:32:03 +00003197
3198 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
3199 memory leak.
3200
Werner Lemberg840232a2005-11-21 12:36:42 +000032012005-11-21 Werner Lemberg <wl@gnu.org>
3202
3203 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
3204
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +000032052005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3206
Werner Lemberg840232a2005-11-21 12:36:42 +00003207 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
Werner Lemberg05cda082006-01-08 13:37:15 +00003208 added twice to image_start if image_format was 2 or 5.
Wu, Chia-I (吳佳一)275be9b2005-11-21 03:05:34 +00003209
32102005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3211
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +00003212 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
3213 before loading the table directory.
3214
3215 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
3216 tt_face_load_directory): Delay sfnt_dir_check from
3217 tt_face_load_sfnt_header to tt_face_load_directory.
3218
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +000032192005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
3220
3221 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
3222 error code.
3223 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
3224 is synthesized into a TTC font with one offset table.
3225 (tt_face_load_sfnt_header): Use sfnt_init.
Werner Lemberg05cda082006-01-08 13:37:15 +00003226 Fix an invalid access if the font is TTC and face_index is -1.
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +00003227
Werner Lemberg1a293d62005-11-18 08:23:06 +000032282005-11-18 Werner Lemberg <wl@gnu.org>
3229
3230 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
3231 of metrics instead of aborting. Patch suggested by Derek Noonburg.
3232
Werner Lemberg6c990452005-11-18 21:10:59 +00003233 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3234 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
3235 the glyph properly if no hinter is available.
3236
3237 * docs/CHANGES: Mention scaling bug.
3238
Suzuki, Toshiya (鈴木俊哉)8d81d412005-11-18 07:47:06 +000032392005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3240
3241 * include/freetype/ftgxval.h, src/base/ftgxval.c
3242 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
3243 buffers allocated by gxvalid module.
3244 * include/freetype/ftotval.h, src/base/ftotval.c
3245 (FT_OpenType_Free): New function to free buffer allocated by
3246 otvalid module.
3247
Wu, Chia-I (吳佳一)cb182382005-11-18 04:29:31 +000032482005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
3249
3250 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3251 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3252 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
3253 s/FT_EXPORT/FT_BASE/.
3254
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032552005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner4859ac42005-11-17 14:21:07 +00003256
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003257 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
3258 FT_Trace_Get_Name, FT_Message, FT_Panic),
3259 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
3260 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
3261
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032622005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003263
Werner Lemberg1a293d62005-11-18 08:23:06 +00003264 * builds/amiga/makefile, builds/amiga/makefile.os4,
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003265 builds/amiga/smakefile,
Detlef Würkner4859ac42005-11-17 14:21:07 +00003266 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
Werner Lemberg1a293d62005-11-18 08:23:06 +00003267 build files (added support for the gxvalid module).
Detlef Würkner4859ac42005-11-17 14:21:07 +00003268
Werner Lembergcfc0cf22005-11-17 08:12:00 +000032692005-11-17 Werner Lemberg <wl@gnu.org>
3270
3271 Add vertical metrics support to OpenType CFF outlines. Based on a
Werner Lemberg1a293d62005-11-18 08:23:06 +00003272 patch from Mike Moening <MikeM@RetekSolutions.com>.
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003273
3274 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
3275 (cff_slot_load): Use cff_face_get_vertical_metrics.
3276
3277 * docs/CHANGES: Updated.
3278
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +000032792005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
3280
3281 * src/base/ftcalc.c (FT_MulTo64): Commented out.
3282
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003283 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
3284 src/base/ftcalc.c (FT_SqrtFixed),
3285 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
3286 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003287 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003288 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
3289 include/freetype/internal/ftstream.h (FT_Stream_Open),
3290 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
3291 s/FT_EXPORT/FT_BASE/.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003292
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003293 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
3294 too.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003295
David Turnerf7cc1812005-11-15 17:30:56 +000032962005-11-15 David Turner <david@freetype.org>
3297
Werner Lemberg674ba912005-11-16 18:09:27 +00003298 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
David Turnerf7cc1812005-11-15 17:30:56 +00003299 invalid computations, resulting in very weird bugs in TrueType
Werner Lemberg674ba912005-11-16 18:09:27 +00003300 bytecode hinted fonts.
David Turnerf7cc1812005-11-15 17:30:56 +00003301
Werner Lemberg674ba912005-11-16 18:09:27 +00003302 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
3303 structure copy each time.
David Turnerf7cc1812005-11-15 17:30:56 +00003304
Werner Lembergd829ff72005-11-12 17:07:11 +000033052005-11-11 Werner Lemberg <wl@gnu.org>
3306
3307 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
3308 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
3309
David Turnerf7cc1812005-11-15 17:30:56 +00003310 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
Werner Lembergd829ff72005-11-12 17:07:11 +00003311 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
3312
3313 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
3314 (FT_Sqrt32): Commented out. Unused.
3315
3316 * include/freetype/cache/ftccache.h:
3317 s/ftc_node_destroy/FTC_Node_Destroy/.
3318
3319 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
3320
3321 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
3322 (FTC_Node_Destroy): New exported wrapper function for
3323 ftc_node_destroy.
3324
3325 * src/cache/ftcmanag.c: Include ftccback.c.
3326
Werner Lemberg4309edc2005-11-11 15:49:14 +000033272005-11-10 Werner Lemberg <wl@gnu.org>
3328
3329 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
3330 Comment out. Unused.
3331
Werner Lembergf2c53302005-11-11 16:20:59 +00003332 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
3333
Werner Lemberg4309edc2005-11-11 15:49:14 +000033342005-11-10 Christian Biesinger <cbiesinger@web.de>
3335
3336 * builds/beos/beos.mk: Call beos-def.mk before anything else to
3337 define the separator.
3338
3339 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
3340
Werner Lembergea4c3dc2005-11-08 09:10:16 +000033412005-11-07 Werner Lemberg <wl@gnu.org>
3342
3343 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
3344 table available'. From Sergey Tolstov <stolstov@esri.com>.
3345
Werner Lemberg4e03fe72006-04-29 06:20:09 +000033462005-11-03 Ville Syrjälä <syrjala@sci.fi>
Werner Lembergb2d02532005-11-04 06:58:49 +00003347
3348 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
3349
33502005-11-02 Werner Lemberg <wl@gnu.org>
3351
3352 Make compiling instructions in docs/CUSTOMIZE work again.
3353
3354 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
3355 (CFLAGS): Don't include @CPPFLAGS@.
3356 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
3357
David Turnerdab24542005-11-02 09:24:00 +000033582005-10-28 David Turner <david@freetype.org>
3359
Werner Lembergcee37a32005-11-12 07:34:40 +00003360 Update build system to support the generation of a list of exported
3361 symbols or Windows .DEF files by parsing the public headers with the
Werner Lembergb2d02532005-11-04 06:58:49 +00003362 `apinames' tool located in src/tools/apinames.c.
David Turnerdab24542005-11-02 09:24:00 +00003363
Werner Lembergb2d02532005-11-04 06:58:49 +00003364 Only tested on Unix at the moment. On Windows, the .DEF file is
3365 generated but isn't used yet to generate a DLL.
David Turnerdab24542005-11-02 09:24:00 +00003366
Werner Lembergcee37a32005-11-12 07:34:40 +00003367 * builds/exports.mk: New file.
David Turnerdab24542005-11-02 09:24:00 +00003368
Werner Lembergcee37a32005-11-12 07:34:40 +00003369 * builds/freetype.mk: Include exports.mk.
3370 (dll): New target.
3371 (clean_project_dos): Fix rule.
David Turnerdab24542005-11-02 09:24:00 +00003372
Werner Lembergcee37a32005-11-12 07:34:40 +00003373 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
3374 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
3375 variables for controlling executable extensions.
David Turnerdab24542005-11-02 09:24:00 +00003376
Werner Lembergcee37a32005-11-12 07:34:40 +00003377 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
3378 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
3379 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
3380 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
3381 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
3382 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
3383
3384 * Jamfile (GenExportSymbols): Updated.
3385
3386
3387 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
3388 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
3389 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
3390
3391
3392 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
3393 (FT_MulFix): Performance optimizations.
3394
3395
3396 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
3397 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
3398 checking points and contours. Update callers to use
3399 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
3400 at profile-detected hot-spots.
3401
3402 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
3403 to 0 to not call `AdjustPoints' every time.
3404
David Turnerdab24542005-11-02 09:24:00 +00003405
Werner Lembergb2d02532005-11-04 06:58:49 +00003406 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
3407 FT_Angle_Diff.
David Turnerdab24542005-11-02 09:24:00 +00003408
Werner Lembergcee37a32005-11-12 07:34:40 +00003409 * src/autofit/afhints.c (af_direction_compute): Re-implement.
3410 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
Werner Lembergb2d02532005-11-04 06:58:49 +00003411 AF_ANGLE_DIFF to speed up the detection of inflexions.
David Turnerdab24542005-11-02 09:24:00 +00003412
Werner Lembergcee37a32005-11-12 07:34:40 +00003413
3414 * src/tools/apinames.c: Include <string.h>.
3415 (OutputFormat): New enumeration.
3416 (names_dump): Add two parameters to control output format and DLL
3417 name.
3418 (names_dump_windef): Removed. Code folded into `names_dump'.
3419 (read_header_file): Use isalnum, not isalpha. Otherwise function
3420 names with digits aren't read correctly.
3421 (usage): Updated.
3422 (main): New option `-o' to control output file name.
3423 New option `-d' to indicate DLL file name.
3424 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
3425
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +000034262005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3427
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003428 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
3429 ftlib.prj is unmaintained and incompatible with current tree.
3430 freetype.mak is unrecoverably broken.
3431
3432 * builds/mac/ftlib.prj.xml: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003433 Generated by Metrowerks CodeWarrior 9.0.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003434
3435 * builds/mac/FreeType.m68k_far.make.txt,
3436 builds/mac/FreeType.m68k_cfm.make.txt,
3437 builds/mac/FreeType.ppc_classic.make.txt,
3438 builds/mac/FreeType.ppc_carbon.make.txt: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003439 Skeleton files of MPW makefiles.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003440
3441 * builds/mac/ascii2mpw.py: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003442 Python script to make MPW makefile from skeleton.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003443
3444 * builds/mac/README: Updated.
3445 Almost rewritten to use new files.
3446
34472005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3448
Werner Lemberg05cda082006-01-08 13:37:15 +00003449 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
3450 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +00003451 and George Williams.
3452
Werner Lemberg4b5661c2005-10-27 21:28:35 +000034532005-10-27 Werner Lemberg <wl@gnu.org>
3454
3455 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
3456 Obsolete.
3457
Werner Lemberg43b057b2005-10-26 18:37:40 +000034582005-10-25 Werner Lemberg <wl@gnu.org>
3459
3460 * src/sfnt/sfdriver.c (sfnt_interface): Move out
3461 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
3462 Ibbs <tibs@sj.co.uk>.
3463
Werner Lemberg6c0e7342005-10-23 19:31:01 +000034642005-10-23 Werner Lemberg <wl@gnu.org>
3465
3466 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
3467 C++.
3468
David Turner398d64c2005-10-21 10:01:25 +000034692005-10-21 David Turner <david@freetype.org>
3470
Werner Lemberg90968f72005-10-22 10:34:45 +00003471 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
3472 Another realloc memory counting bug fix.
David Turner398d64c2005-10-21 10:01:25 +00003473
Werner Lemberg90968f72005-10-22 10:34:45 +00003474 * src/tools/Jamfile: Add missing file.
David Turner398d64c2005-10-21 10:01:25 +00003475
Werner Lemberg90968f72005-10-22 10:34:45 +00003476 * src/lzw/Jamfile: Fix incorrect source file reference.
David Turner398d64c2005-10-21 10:01:25 +00003477
David Turnerc1b6d082005-10-20 15:33:34 +000034782005-10-20 David Turner <david@freetype.org>
3479
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003480 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
3481 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
3482 to better account for memory reallocations.
David Turnerc1b6d082005-10-20 15:33:34 +00003483
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003484 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
David Turner398d64c2005-10-21 10:01:25 +00003485 src/lzw/rules.mk: First version of LZW loader re-implementation.
3486 Apparently, this saves about 330 KB of heap memory when loading
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003487 timR24.pcf.Z.
David Turnerc1b6d082005-10-20 15:33:34 +00003488
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +000034892005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
3490
3491 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
3492 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003493 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
3494 FT_EXPORT/FT_EXPORT_DEF tagging.
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +00003495
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +000034962005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003497
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003498 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
3499 be invalid when FT_LOAD_NO_SCALE is set.
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003500
35012005-10-17 David Turner <david@freetype.org>
3502
3503 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
3504 FT_New_Size if we are opening a face with face_index < 0 (which is
3505 only used for testing the format).
3506
3507 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
3508 Remove compiler warning.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003509
35102005-10-16 David Turner <david@freetype.org>
3511
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003512 * src/tools/apinames.c: Add new tool to extract public API function
3513 names from header files.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003514
35152005-10-05 Werner Lemberg <wl@gnu.org>
3516
3517 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
3518 a hinting engine of its own.
3519
3520 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
3521
3522 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
3523 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
3524 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
3525 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
3526 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
3527
3528 * docs/CHANGES: Document it.
3529
35302005-09-27 Werner Lemberg <wl@gnu.org>
3531
3532 * builds/unix/freetype2.m4: Add license exception so that the file
3533 can be used in any other autoconf script.
3534
35352005-09-26 David Turner <david@freetype.org>
3536
3537 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
3538 computation of the `vertical' flag, causing ugly things in LCD mode
3539 and others.
3540
35412005-09-23 David Turner <david@freetype.org>
3542
3543 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
3544 prevented internal hint mode bitflags from being computed correctly.
3545
3546 * src/base/Jamfile: Adding src/base/ftgxval.c.
3547
3548 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
3549 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
3550 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
3551 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3552 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3553 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
3554 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3555 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
3556 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
3557 src/truetype/ttgload.c: Remove _many_ compiler warnings when
3558 compiling with Visual C++ at maximum level (/W4).
3559
3560 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
3561 implementation with one using lookup tables. This simple thing
3562 speeds up glyph loading by 18%, according to ftbench!
3563
3564 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
3565 `get_sfnt' and `load_sfnt' module interfaces.
3566
35672005-09-22 Werner Lemberg <wl@gnu.org>
3568
3569 * docs/CHANGES: Mention SING Glyphlet support.
3570
35712005-09-22 David Turner <david@freetype.org>
3572
3573 * src/base/Jamfile: Disable compilation of ftgxval module
3574 temporarily.
3575
35762005-09-19 David Somers <dsomers@omz13.com>
3577
3578 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
3579 font to have no `head' table if tables `SING' and `META' are
3580 present; this is to support `SING Glyphlet'.
3581
3582 `SING Glyphlet' is an extension to OpenType developed by Adobe
3583 primarily to facilitate adding supplemental glyphs to an OpenType
3584 font (with emphasis on, but not necessariy limited to, gaiji to a
3585 CJK font). A SING Glyphlet Font is an OpenType font that contains
3586 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
3587 `cmap', `BASE', and `GSUB' tables are present with the same format
3588 and functionaliy as a regular OpenType font; there are no `name',
3589 `head', `OS/2', and `post' tables; there are two new tables, `SING'
3590 which contains details about the glyphlet, and `META' which contains
3591 metadata.
3592
3593 Further information on the SING Glyphlet format can be found at:
3594
3595 http://www.adobe.com/products/indesign/sing_gaiji.html
3596
3597 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
3598 macros for the OpenType tables `SING' and `META'. These two tables
3599 are used in SING Glyphlet Format fonts.
3600
36012005-09-09 Werner Lemberg <wl@gnu.org>
3602
3603 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
3604 FT_FACE_FLAG_KERNING which has been commented out erroneously.
3605
3606 * docs/CHANGES: Document it.
3607
36082005-09-05 Werner Lemberg <wl@gnu.org>
3609
3610 Fixes for `make multi' and using C++ compiler.
3611
3612 * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
3613 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
3614 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
3615 (gxv_compare_ranges): Make it static.
3616 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
3617 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
3618 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
3619 trace messages.
3620 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
3621 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3622 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
3623 gxvcommn.h.
3624
3625 * gxvalid/gxvcommn.h: Add prototypes for
3626 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
3627 gxv_XStateTable_validate, gxv_array_getlimits_byte,
3628 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
3629 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
3630 gxv_odtect_validate.
3631 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3632 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
3633 gxvcommn.c.
3634
3635 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
3636 gxv_bsln_parts_fmt1_validate): Improve trace messages.
3637
3638 * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
3639 * gxvalid/gxvfeat.h: New file.
3640
3641 * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
3642 message.
3643
3644 * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
3645 (gxv_kern_subtable_fmt1_valueTable_load,
3646 gxv_kern_subtable_fmt1_subtable_setup,
3647 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
3648 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
3649 Improve trace message.
3650 (gxv_kern_validate_generic): Fix C++ compiler error.
3651 Improve trace message.
3652 (gxv_kern_validate_classic): Fix C++ compiler error.
3653
3654 * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
3655 with FT_LOCAL_DEF.
3656
3657 * gxvalid/gxvmort1.c
3658 (gxv_mort_subtable_type1_substitutionTable_load,
3659 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
3660 (gxv_mort_subtable_type1_substTable_validate): Improve trace
3661 message.
3662 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3663
3664 * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
3665 gxv_mort_subtable_type2_subtable_setup,
3666 gxv_mort_subtable_type2_ligActionOffset_validate,
3667 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
3668 errors.
3669 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3670
3671 * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
3672 with FT_LOCAL_DEF.
3673
3674 * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
3675 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
3676 errors.
3677 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3678
3679 * gxvalid/gxvmort.c: Include gxvfeat.h.
3680 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
3681 Declare with FT_LOCAL_DEF.
3682 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
3683 messages.
3684
3685 * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
3686
3687 * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
3688 with FT_LOCAL_DEF.
3689
3690 * gxvalid/gxvmorx1.c
3691 (gxv_morx_subtable_type1_substitutionTable_load,
3692 gxv_morx_subtable_type1_subtable_setup,
3693 gxv_morx_subtable_type1_entry_validate,
3694 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
3695 compiler errors.
3696 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3697
3698 * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
3699 gxv_morx_subtable_type2_subtable_setup,
3700 gxv_morx_subtable_type2_ligActionIndex_validate,
3701 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
3702 errors.
3703 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3704 Fix typo.
3705
3706 * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
3707 with FT_LOCAL_DEF.
3708
3709 * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
3710 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
3711 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3712
3713 * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
3714 gxv_morx_validate): Improve trace message.
3715
3716 * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
3717 warnings.
3718 (gxv_opbd_validate): Improve trace message.
3719
3720 * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
3721 appropriate.
3722 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
3723 message.
3724
3725 * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
3726 parameter. Update all callers.
3727 (gxv_trak_validate): Improve trace message.
3728
3729 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
3730
37312005-09-01 Werner Lemberg <wl@gnu.org>
3732
3733 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
3734
3735 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
3736 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
3737 typo.
3738
3739 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3740 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
3741 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
3742 messages.
3743 Decorate constants with `U' and `L' where appropriate.
3744 Fix compiler warnings.
3745
37462005-08-31 Werner Lemberg <wl@gnu.org>
3747
3748 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
3749
3750 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
3751
3752 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
3753
3754 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
3755 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
3756 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3757 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3758 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
3759 messages.
3760 Decorate constants with `U' and `L' where appropriate.
3761 Fix compiler warnings.
3762
37632005-08-30 Werner Lemberg <wl@gnu.org>
3764
3765 * src/gxvalid/README: Revised.
3766 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
3767 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
3768 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
3769 parameter. Update all callers.
3770 Improve trace messages.
3771 Some formatting.
3772
37732005-08-29 Werner Lemberg <wl@gnu.org>
3774
3775 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
3776 a preliminary section with some explanations about user allocation.
3777
3778 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
3779 Don't abort if there are no data types, functions, etc., in a
3780 section.
3781 Print synopsis only if we have a data type, function, etc.
3782
3783 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
3784 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
3785 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
3786
37872005-08-28 George Williams <gww@silcom.com>
3788
3789 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
3790 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
3791
37922005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
3793
3794 * builds/unix/freetype2.in (CFlags): Add missing directory.
3795
37962005-08-24 Werner Lemberg <wl@gnu.org>
3797
3798 * docs/CHANGES: Mention gxvalid module.
3799
38002005-08-23 Werner Lemberg <wl@gnu.org>
3801
3802 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
3803 render mode properly. Reported by chris@dokein.co.uk.
3804
Werner Lemberg6be99f92006-02-09 07:38:57 +000038052005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003806
3807 Add gxvalid module to validate TrueType GX/AAT tables.
3808
3809 Modifications on existing files:
3810
3811 * Jamfile: Register gxvalid module.
3812 * src/base/Jamfile: Register ftgxval.c.
3813 * src/base/rule.mk: Register ftgxval.c.
3814 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
3815
3816 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
3817 to include gxvalid header file.
3818 * include/freetype/config/ftmodule.h: Register gxv_module_class.
3819
3820 * include/freetype/ftchapters.h: Add comment about gx_validation.
3821 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
3822 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
3823 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
3824
3825 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
3826 macro for gxvalid service.
3827 * include/freetype/internal/fttrace.h: Add trace facilities for
3828 gxvalid.
3829
3830 New files on existing directories:
3831
3832 * include/freetype/internal/services/svgxval.h: Registration of
3833 validation service for TrueType GX/AAT and classic kern table.
3834 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
3835 * src/base/ftgxval.c: Public API of gxvalid.
3836
3837 New files under src/gxvalid/:
3838
3839 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
3840 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
3841 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
3842 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
3843 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
3844 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
3845 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
3846 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
3847 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
3848 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
3849 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
3850 src/gxvalid/gxvtrak.c: New files, gxvalid body.
3851
38522005-08-21 Werner Lemberg <wl@gnu.org>
3853
3854 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
3855 to (0,0) if bit 1 of the `head' table isn't set. This improves
3856 rendering of buggy fonts.
3857
38582005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
3859
3860 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
3861 ttmetrics here. TrueType fonts with only sbits always have
3862 ttmetrics.valid set to false.
3863
3864 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
3865 valid before loading outline glyph.
3866
3867 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
3868
38692005-08-20 Werner Lemberg <wl@gnu.org>
3870
3871 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
3872 `hhea' table for SFNT Mac fonts. Change based on a patch by
3873 mpsuzuki@hiroshima-u.ac.jp.
3874
38752005-08-20 Masatake YAMATO <jet@gyve.org>
3876
3877 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
3878 of ft_setjmp.
3879
38802005-08-19 Werner Lemberg <wl@gnu.org>
3881
3882 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
3883 warnings.
3884
38852005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3886
3887 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
3888 messages.
3889
38902005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3891
3892 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
3893 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
3894 with slight changes.
3895 Update all callers.
3896 (TT_New_Context): Now takes TT_Driver argument directly.
3897 Update all callers.
3898
3899 * src/truetype/ttobjs.h (tt_slot_init): New function.
3900 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
3901 context here.
3902 (tt_slot_init): New function to create extra points for the internal
3903 glyph loader. We then use it directly, instead of face's glyph
3904 loader, when loading glyph.
3905
3906 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
3907 glyph slot initialization.
3908 (Load_Glyph): Load flag dependencies are handled here. Return error
3909 if size is NULL.
3910
3911 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
3912 (org_to_cur): Removed.
3913 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
3914 (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
3915 (TT_Process_Simple_Glyph): s/load/loader/.
3916 Use loader->pp values instead of recalculation.
3917 Use TT_Hint_Glyph.
3918 No need to save/restore loader->stream before and after
3919 TT_Vary_Get_Glyph_Deltas now.
3920 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
3921 points.
3922 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
3923 Savannah bug #13107.
3924 Forget glyph frame before calling TT_Process_Simple_Glyph.
3925 Use TT_LOADER_SET_PP.
3926 Scale all four phantom points.
3927 Split off some functionality to ...
3928 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
3929 new functions.
3930 (TT_Load_Glyph): Set various fields of `glyph' here, not in
3931 load_truetype_glyph and compute_glyph_metrics.
3932 Split off some functionality to ...
3933 (load_sbit_image, tt_loader_init): These new functions.
3934 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
3935
39362005-08-08 Werner Lemberg <wl@gnu.org>
3937
3938 * docs/INSTALL.ANY: Updated.
3939
39402005-08-05 Werner Lemberg <wl@gnu.org>
3941
3942 * src/cff/cffgload.c (cff_builder_close_contour),
3943 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
3944 zero `outline' pointer.
3945
3946 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
3947 `loader' address.
3948
39492005-08-03 Werner Lemberg <wl@gnu.org>
3950
3951 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
3952 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
3953 to make X work again.
3954
39552005-08-02 Werner Lemberg <wl@gnu.org>
3956
3957 * src/otvalid/otvcommn.h: Remove dead code.
3958
39592005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
3960
3961 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
3962 functions.
3963
3964 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
3965 functions.
3966 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
3967 zone.
3968 Move code that runs fpgm to tt_size_run_fpgm.
3969 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
3970 (tt_glyphzone_new): Allocate right size of arrays.
3971 Set max_points and max_contours properly.
3972
39732005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
3974
3975 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
3976 computations and clean up.
3977
3978 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
3979 internal copy of metrics.
3980
39812005-07-12 Werner Lemberg <wl@gnu.org>
3982
3983 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
3984 Reported by Xerxes.
3985
39862005-07-04 Werner Lemberg <wl@gnu.org>
3987
3988 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
3989 Reported by Brett Hutley.
3990
39912005-06-30 David Turner <david@freetype.org>
3992
3993 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
3994 Removing compiler warnings (Visual C++ /W4).
3995
3996
3997 Implement a work-around for broken C preprocessor in Visual C++ (it
3998 has been confirmed by the MS developers that it is indeed a bug
3999 which won't be fixed in the very near future).
4000
4001 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
4002
4003 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
4004 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
4005 avoid argument expansion by argument prescan.
4006 Append `Func' to all affected macros and change them to take just a
4007 single argument. Example: `AttachList' is renamed to
4008 `AttachListFunc'.
4009
4010 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
4011 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
4012 affected by the changes to OTV_NESTx and modify them to take just a
4013 single argument.
4014
40152005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
4016
4017 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
4018 ft_glyphslot_grid_fit_metrics.
4019
4020 * src/truetype/ttgload.c (compute_glyph_metrics): Use
4021 ft_glyphslot_grid_fit_metrics.
4022
4023 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
4024 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
4025 ft_glyphslot_grid_fit_metrics.
4026 FT_Outline_Get_CBox is called twice.
4027
4028 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
4029 reasonable values when emboldening outline glyphs. The theoretic
4030 ones are unrealistic.
4031
40322005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
4033
4034 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
4035 halved.
4036
4037 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
4038 strength.
4039 Don't increase slot->advance.y.
4040
40412005-06-16 Werner Lemberg <wl@gnu.org>
4042
4043 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
4044 (FREETYPE_PATCH): Set to 0.
4045
4046 * builds/unix/configure.ac (version_info): Set to 9:9:3.
4047 Currently, we are still binary compatible.
4048
4049 * builds/win32/visualc/index.html,
4050 builds/win32/visualc/freetype.dsp,
4051 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
4052
4053 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
4054 s/2.1.9/2.1.10/.
4055
4056 * docs/CHANGES, docs/VERSION.DLL: Updated.
4057
4058 * ChangeLog: Split off older entries into...
4059 * ChangeLog.20, ChangeLog.21: These new files.
4060
40612005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
4062
4063 The next release will be 2.2.0, so don't worry about source code
4064 backwards compatibility.
4065
4066 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
4067 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
4068 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
4069 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
4070 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
4071 parameters with `const' where appropriate.
4072
40732005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
4074
4075 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
4076 to make glyphs centered vertically.
4077
4078 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
4079 vertBearingY to make glyphs centered vertically.
4080 Fix some bugs in vertical metrics:
4081
4082 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
4083 units.
4084 . As we use the glyph's cbox to calculate the top bearing now
4085 there iss no need to adjust `top'.
4086
40872005-06-15 Werner Lemberg <wl@gnu.org>
4088
4089 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
4090 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
4091
40922005-06-13 Werner Lemberg <wl@gnu.org>
4093
4094 * docs/release: Update.
4095
4096----------------------------------------------------------------------------
4097
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00004098Copyright 2005, 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004099David Turner, Robert Wilhelm, and Werner Lemberg.
4100
4101This file is part of the FreeType project, and may only be used, modified,
4102and distributed under the terms of the FreeType project license,
4103LICENSE.TXT. By continuing to use, modify, or distribute this file you
4104indicate that you have read the license and understand and accept it
4105fully.
4106
4107
4108Local Variables:
4109version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004110coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004111End: