blob: 11ba2caefdb7afcec2cde6656e90df41dbc806fe [file] [log] [blame]
Werner Lemberg8c4120d2007-01-15 06:42:40 +000012007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
2
3 Fix various compiler warnings.
4
5 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
6 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
7 s/index/strike_index/.
8 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
9
10 * src/gxvalid/gxvmorx5.c
11 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
12
13 * src/truetype/ttinterp.c (Compute_Point_Displacement),
14 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
15 uninitialized variables.
16
Werner Lemberg6164a9d2007-01-13 23:01:36 +0000172007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
18
19 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
20
Werner Lemberg281c1482007-01-13 22:50:51 +0000212007-01-13 Werner Lemberg <wl@gnu.org>
22
23 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
24 versions up to 0x3FF without complaining.
25
Werner Lembergac250b22007-01-13 14:01:36 +0000262007-01-13 Derek Clegg <dclegg@apple.com>
27
28 Add FT_Get_PS_Font_Info interface to CFF driver.
29
30 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
31 (CFF_FontRec): Add `font_info' field.
32
33 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
34 (cff_font_done): Free font->font_info if necessary.
35
36 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
37 (cff_service_ps_info): Register cff_ps_get_font_info.
38
Werner Lemberg23df31a2007-01-13 08:45:00 +0000392007-01-13 Werner Lemberg <wl@gnu.org>
40
41 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
42 with C++ compiler.
43
44 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
45 af_glyph_hints_dump_edges): Ditto.
46
47 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
48 `modules.cfg').
49
50 * src/sfnt/ttsbit0.h: Remove.
51
52 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
53
Werner Lemberg27cf9de2007-01-13 07:34:23 +0000542007-01-12 David Turner <david@freetype.org>
55
56 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
57 bug in the bitmap emboldener if the pitch of the source bitmap is
58 much larger than its width.
59
60 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
61 compilation warning.
62
Werner Lemberg6d96d312007-01-12 10:30:19 +0000632007-01-12 Werner Lemberg <wl@gnu.org>
64
65 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
66 `automake' CVS module from sources.redhat.com.
67
Werner Lemberg17432b52007-01-12 09:28:44 +0000682007-01-11 Werner Lemberg <wl@gnu.org>
69
70 * src/type1/t1load.c (is_space): Removed.
71 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
72 (parse_charstrings): Use IS_PS_TOKEN.
73
74
75 * autogen.sh: Avoid bash specific syntax.
76
David Turner038ace22007-01-11 15:00:59 +0000772007-01-11 David Turner <david@freetype.org>
78
Werner Lemberg17432b52007-01-12 09:28:44 +000079 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +000080
Werner Lemberg17432b52007-01-12 09:28:44 +000081 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +000082
Werner Lemberg17432b52007-01-12 09:28:44 +000083 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
84 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +000085 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +000086
Werner Lemberg17432b52007-01-12 09:28:44 +000087 * autogen.sh: Small fix to get it working on Mac OS X properly:
88 The issue is that GNU libtool is called `glibtool' on this platform,
89 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +000090
David Turner2628ea92007-01-10 13:15:56 +0000912007-01-10 David Turner <david@freetype.org>
92
Werner Lemberg17432b52007-01-12 09:28:44 +000093 * all-sources: Tag all sources with VER-2-3-0-RC1 and
94 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +000095
Werner Lemberg17432b52007-01-12 09:28:44 +000096 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
97 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
98 version number to 2.3.0.
99
100 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
101 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000102
103 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000104 include/freetype/ftlcdfil.h: Update reference documentation with
105 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000106
Werner Lemberg17432b52007-01-12 09:28:44 +0000107 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
108 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000109
Werner Lembergbf02d392007-01-10 07:07:37 +00001102007-01-10 Derek Clegg <dclegg@apple.com>
111
112 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
113 values.
114
David Turnerf48b60e2007-01-08 15:15:32 +00001152007-01-08 David Turner <david@freetype.org>
116
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000117 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000118
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000119 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
120 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000121 corresponding to a given character pixel size.
122
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000123 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
124 `gasp' table, in order to avoid potential problems with later
125 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000126
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000127 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
128 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000129
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000130 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
131 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
132 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
133 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000134
Werner Lemberge6b6f372007-01-07 00:06:47 +00001352007-01-07 Werner Lemberg <wl@gnu.org>
136
Werner Lembergb8004d22007-01-07 09:13:38 +0000137 * src/cid/cidparse.c (cid_parser_new): Improve error message for
138 Type 11 fonts.
139 Scan for `/sfnts' token.
140
1412007-01-07 Werner Lemberg <wl@gnu.org>
142
143 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000144
Werner Lembergbe5f7972007-01-06 07:51:48 +00001452007-01-06 Werner Lemberg <wl@gnu.org>
146
147 * src/cff/cffload.c (cff_index_init): Remove unused variable.
148 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
149
David Turnera8cf42b2007-01-04 16:46:46 +00001502007-01-04 David Turner <david@freetype.org>
151
Werner Lembergf6294392007-01-06 07:47:45 +0000152 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
153 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000154
Werner Lembergf6294392007-01-06 07:47:45 +0000155
156 Do not allocate interpreter-specific tables in memory if we are not
157 going to load glyphs with the bytecode interpreter anyway.
158
159 * src/truetype/ttgload.c (tt_loader_init): Load execution context
160 only if glyph is hinted.
161 Updated.
162 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
163 and `cvs_ready'.
164 Add `tt_size_ready_bytecode' declaration.
165 * src/truetype/ttobjs.c (tt_size_done_bytecode,
166 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
167 (tt_size_init): Move most code into `tt_size_init_bytecode'.
168 (tt_size_done): Move most code into `tt_size_done_bytecode'.
169 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
David Turner384be232007-01-05 15:32:01 +0000170
David Turner91a34022007-01-05 14:47:08 +0000171
Werner Lembergf6294392007-01-06 07:47:45 +0000172 Don't extract the metrics table from the SFNT font file. Instead,
173 reparse it on each glyph load. The runtime difference is not
174 noticeable, and it can save a lot of heap memory when memory-mapped
175 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000176
Werner Lembergf6294392007-01-06 07:47:45 +0000177 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
178 `horz_metrics_offset' and `vert_metrics_ofset'.
179 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
180 Updated.
181
182
183 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
184
185
186 Do not load the CFF index offsets into memory, since this wastes a
187 *lot* of heap memory with large Asian CFF fonts. There is no
188 significant performance loss.
189
190 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
191 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
192 `data_size'.
193 (CFF_CharsetRec): Add field `num_glyphs'.
194
195 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
196 cff_charset_cid_to_gindex): New functions.
197 (cff_new_index): Renamed to...
198 (cff_index_init): This. Update all callers.
199 Updated -- some code has been moved to `cff_index_load_offsets'.
200 (cff_done_index): Renamed to...
201 (cff_index_done): This. Update all callers.
202 (cff_index_get_pointers, cff_index_access_element): Updated to use
203 stream offsets.
204 (cff_charset_compute_cids): Set `num_glyphs' field.
205 (cff_encoding_load): Updated.
206
207 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000208
2092007-01-04 David Turner <david@freetype.org>
210
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000211 * docs/INSTALL.UNIX: Simplify some parts, add reference to
212 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000213
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000214 * README.CVS: Add common problem description and solution
215 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000216
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000217 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000218
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000219 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000220
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000221 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000222
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000223 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
224 (TWorker): This.
225 Remove `count_table' and `memory'.
226 Make `grays' a pointer.
227 (TRaster): New structure.
228 (count_table): New static array.
229 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
230 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
231 ft_black_set_mode, ft_black_render): Updated.
232 (ft_black_init): Don't initialize `count_table'.
233 (ft_black_reset): Use the render pool. This saves about 6KB of
234 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000235
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000236 * src/smooth/ftgrays.c (TRaster): Replaced with...
237 (TWorker): This.
238 Remove `memory'.
239 (TRaster): New structure.
240
241 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
242 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
243 gray_render_span, gray_raster_render): Updated.
244 (gray_raster_reset): Use the render pool. This saves about 6KB of
245 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000246
David Turner8a6c44e2007-01-04 17:03:11 +0000247 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
248 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000249 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
250 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
251 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000252
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000253 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
254 Remove a typo that results in no hinting and a memory leak with some
255 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000256
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000257 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000258 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000259 CFF_Faces in it. We need to close all faces before destroying the
260 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000261
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00002622007-01-02 Werner Lemberg <wl@gnu.org>
263
264 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
265 Remove compiler warning.
266
David Turner9207e002007-01-02 16:58:13 +00002672007-01-02 David Turner <david@freetype.org>
268
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000269 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000270
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00002712006-12-31 Masatake YAMATO <jet@gyve.org>
272
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000273 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
274 function.
275 Check uniqueness of the gid pairs.
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000276 (gxv_kern_subtable_fmt0_validate): Move some code to
277 `gxv_kern_subtable_fmt0_pairs_validate'.
278
David Turner115b4422006-12-22 11:37:05 +00002792006-12-22 David Turner <david@freetype.org>
280
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000281 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
282 warnings.
David Turner115b4422006-12-22 11:37:05 +0000283
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000284 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
285 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000286
Werner Lemberg4755bf72006-12-16 08:58:44 +00002872006-12-16 Anders Kaseorg <anders@kaseorg.com>
288
289 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
290 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
291
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00002922006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
293
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +0000294 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000295 sync with the modification by Jens Claudius on 2006-08-22; cf.
296 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 +0000297
2982006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
299
300 * src/base/ftmac.c: Specialized for Mac OS X only.
301 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
302 * builds/unix/configure.raw: Ditto. When explicit switches for
303 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
304 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
305
3062006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
307
308 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
309 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
310 instead of src/base/ftmac.c
311 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
312 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
313 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
314 that cannot be built at present.
315
3162006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
317
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000318 * src/base/ftobjs.c: Improvement of resource fork handler for
319 POSIX, cf.
320 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000321 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
322 format or .dfont, to simulate the face index number counted by ftmac.c.
323 (IsMacResource): Return the number of scalable faces correctly.
324
Werner Lembergec5b4502006-12-10 07:51:38 +00003252006-12-10 Werner Lemberg <wl@gnu.org>
326
327 * builds/toplevel.mk (version): Protect against `distclean' target.
328
Werner Lembergb26b3142006-12-09 20:01:43 +00003292006-12-09 Werner Lemberg <wl@gnu.org>
330
331 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
332 or `type'.
333
334 * builds/freetype.mk (version): Extracted from freetype.h, using
335 GNU make's built-in string functions.
336 (refdoc): Use $(version) instead of static version number.
337
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00003382006-12-08 Werner Lemberg <wl@gnu.org>
339
340 * builds/toplevel.mk (dist): Extract version number from freetype.h.
341
Werner Lemberg15c29502006-12-09 07:29:54 +00003422006-12-08 Vladimir Volovich <vvv@vsu.ru>
343
344 * src/tools/apinames (State): Remove final comma in structure -- xlc
345 v5 under AIX 4.3 doesn't like this.
346
David Turnerdbf3b432006-12-07 21:18:09 +00003472006-12-07 David Turner <david@freetype.org>
348
Werner Lemberg256a3512006-12-08 06:49:33 +0000349 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
350 to the spacing of auto-fitted glyphs. This only impacts rare
351 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000352
Werner Lemberg11171312006-12-03 09:43:40 +00003532006-12-03 Werner Lemberg <wl@gnu.org>
354
355 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
356
Werner Lemberg960ba592006-12-01 08:20:47 +00003572006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000358
Werner Lemberg960ba592006-12-01 08:20:47 +0000359 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
360 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
361 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000362
David Turner80658e52006-11-28 08:09:20 +0000363
Werner Lemberg960ba592006-12-01 08:20:47 +0000364 * include/freetype/ftxf86.h: Fix and extend comment so that it
365 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000366
Werner Lemberg960ba592006-12-01 08:20:47 +0000367 * include/freetype/ftchapters.h: Add `font_format' section.
368
369
370 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
371 to TOC in index page.
372
3732006-11-28 David Turner <david@freetype.org>
374
375 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
376 trying to render into a zero-width/height bitmap, not an error code.
377
378 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
379
380 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
381 ones instead.
382
383 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
384 variable.
David Turner80658e52006-11-28 08:09:20 +0000385
Werner Lemberg8636c292006-11-26 22:28:13 +00003862006-11-26 Pierre Hanser <hanser@club-internet.fr>
387
388 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
389
Werner Lemberg960ba592006-12-01 08:20:47 +00003902006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000391
Werner Lemberg960ba592006-12-01 08:20:47 +0000392 * src/autofit/afhints.c (af_glyph_hints_dump_points,
393 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
394 Add stubs to link the `ftgrid' test program when debugging is
395 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000396
Werner Lemberg960ba592006-12-01 08:20:47 +00003972006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000398
399 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000400 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
401
402 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
403 Emit more sensible information.
404
405 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
406
407 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
408 rounding of blue values.
409 (af_latin_hints_compute_segments): Hint segment heights.
410 (af_latin_hints_link_segments): Reduce `len_score' value.
411 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
412 value and use `height' member for comparisons.
413 (af_latin_hint_edges): Extend logging message.
414 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000415
Werner Lemberg91959bf2006-11-22 10:36:55 +00004162006-11-22 Werner Lemberg <wl@gnu.org>
417
418 Fix Savannah bug #15553.
419
420 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
421 program after a change from mono to grayscaling (and vice versa).
422 Use correct constant for comparison to get `exec->grayscale'.
423
Werner Lemberg913a3652006-11-19 09:19:17 +00004242006-11-18 Werner Lemberg <wl@gnu.org>
425
426 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000427 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000428 This patch fixes Savannah bug #18301.
429
430 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
431 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
432 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
433 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
434 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
435 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
436 (FNT_Load_Glyph): Check validity of `glyph_index'.
437
David Turner7bab6ae2006-11-13 11:25:06 +00004382006-11-13 David Turner <david@freetype.org>
439
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000440 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
441 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000442
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000443 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
444 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
445 when building the library to change the default LCD filter to be
446 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000447
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000448 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000449
David Turner8765c712006-11-10 16:49:42 +00004502006-11-10 David Turner <david@freetype.org>
451
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000452 * src/smooth/ftsmooth.c: API change for the LCD
453 filter. The FT_LcdFilter value is an enumeration describing which
454 filter to apply, with new values FT_LCD_FILTER_LIGHT and
455 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
456 algorithm which produces strong color fringes for everything
457 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000458
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000459 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
460 second parameter to an enum type.
461
462 * src/base/ftlcdfil.c (USE_LEGACY): Define.
463 (_ft_lcd_filter): Rename to...
464 (_ft_lcd_filter_fir): This.
465 Update parameters.
466 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
467 (FT_Library_Set_LcdFilter): Update parameters.
468 Handle new filter modes.
469
470 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
471 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
472 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
473 callback and update other fields.
474
475 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
476 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
477 Other minor improvements.
478
479 * src/autofit/aflatin.c: Various tiny improvements that drastically
480 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
481 (af_latin_hints_compute_edges): Fix typo.
482 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000483
David Turner4e9cc3c2006-11-09 16:31:52 +00004842006-11-09 David Turner <david@freetype.org>
485
Werner Lemberg49c77a82006-11-09 21:51:57 +0000486 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
487 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000488
Werner Lemberg5e430892006-11-07 09:35:03 +00004892006-11-07 Zhe Su <james.su@gmail.com>
490
491 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
492 also.
493
Werner Lemberg111b5ae2006-11-03 09:40:12 +00004942006-11-03 Werner Lemberg <wl@gnu.org>
495
496 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
497
David Turner40604742006-11-02 16:37:35 +00004982006-11-02 David Turner <david@freetype.org>
499
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000500 Add a few tweaks to better handle serif fonts.
501 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000502
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000503 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
504 segments that are less than 1.5 pixels high. This gets rid of
505 *many* corner cases with serifs.
506 (af_latin_align_linked_edge): Add logging message.
507 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
508 Add logging messages.
509 Handle AF_EDGE_FLAG flag specially.
510
511 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
512 _af_debug_disable_blue_hints, and _af_debug_hints variables.
513
514 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
515 Update external declarations.
516 (af_corner_orientation, af_corner_is_flat): Replaced by...
517
518 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
519 ft_corner_is_flat): These declarations.
520
521 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
522 Comment out. Replaced by...
523
524 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
525 These functions. Update all callers.
526 (FT_Add64) [!FT_LONG64]: Simplify.
527
528 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
529 (af_direction_compute): Add a missing FT_ABS call. This bug caused
530 production of garbage by missing lots of segments.
531
532 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
533
534 * src/autofit/afloader.c (af_loader_init, af_loader_done)
535 [AF_DEBUG]: Set _af_debug_hints.
536
537
538 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
539 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
540 and ft_corner_orientation.
541
542
543 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000544
Werner Lemberge88c5262006-10-24 05:46:26 +00005452006-10-24 Werner Lemberg <wl@gnu.org>
546
547 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
548
549 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
550 as argument.
551
David Turnera1861392006-10-23 16:00:59 +00005522006-10-23 Zhe Su <zsu@novell.com>
553
Werner Lemberg715e96e2006-10-24 05:28:45 +0000554 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
555 better deal with broken Asian fonts with strange glyphs, having
556 self-intersections and other peculiarities. The used algorithm is
557 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000558
David Turnere140f142006-10-23 08:56:57 +00005592006-10-23 David Turner <david@freetype.org>
560
Werner Lemberg715e96e2006-10-24 05:28:45 +0000561 Speed up the CFF font loader. With some large CFF fonts,
562 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000563
Werner Lemberg715e96e2006-10-24 05:28:45 +0000564 * src/cff/cffload.c (cff_get_offset): Removed.
565 (cff_new_index): Inline functionality of `cff_get_offset'.
566 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
567 (cff_charset_done): Call `cff_charset_free_cids'.
568 (cff_charset_load): Call `cff_charset_compute_cids'.
569 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
570
571 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
572 with FT_NEXT_XXX.
573
574
575 Speed up the Postscript hinter, with more than 100% speed increase
576 on my machine.
577
578 * src/pshinter/pshalgo.c (psh_corner_is_flat,
579 psh_corner_orientation): New functions.
580 (psh_glyph_compute_inflections): Merge loops for efficiency.
581 Use `psh_corner_orientation'.
582 (psh_glyph_init): Use `psh_corner_is_flat'.
583 (psh_hint_table_find_strong_point): Renamed to...
584 (psh_hint_table_find_strong_points): This.
585 Rewrite, adding argument to handle all points at once.
586 Update all callers.
587 (PSH_MAX_STRONG_INTERNAL): New macro.
588 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000589
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00005902006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
591
592 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000593 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000594
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00005952006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
596
597 * docs/INSTALL.CROSS: New document file for cross-building.
598
599 * builds/unix/configure.raw: Preliminary cross-building support.
600 Find native C compiler and pass it by CC_BUILD, and
601 find suffix for native executable and pass it by EXEEXT_BUILD.
602 Also suffix for target executable is passed by EXEEXT.
603
Werner Lembergb9e6d692006-10-15 08:58:40 +0000604 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
605 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000606 CC_BUILD and EXEEXT_BUILD.
607
Werner Lembergb9e6d692006-10-15 08:58:40 +0000608 * builds/exports.mk (APINAMES_EXE): Change the extension for
609 apinames from the suffix for target (E) to that for building host
610 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000611
Werner Lemberg82a07e92006-10-12 06:20:44 +00006122006-10-12 Werner Lemberg <wl@gnu.org>
613
614 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
615 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
616 which reference those files.
617
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00006182006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
619
Werner Lembergb9e6d692006-10-15 08:58:40 +0000620 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
621 embedded in freetype2.pc and freetype-config. Use it to record
622 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000623
624 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
625
626 * builds/unix/freetype-config.in: Ditto.
627
Werner Lemberg28e17d92006-10-11 17:27:47 +00006282006-10-11 Werner Lemberg <wl@gnu.org>
629
630 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
631 development.
632
Jens Claudius336d2292006-10-03 08:53:37 +00006332006-10-03 Jens Claudius <jens.claudius@yahoo.com>
634
635 * include/freetype/config/ftstdlib.h: Cast away volatileness from
636 argument to ft_setjmp.
637
638 * include/freetype/internal/ftvalid.h: Add comment that
639 ft_validator_run must not be used.
640
Werner Lemberg2863cfa2006-10-01 17:04:00 +00006412006-10-01 Werner Lemberg <wl@gnu.org>
642
643 * src/base/ftbase.c: Undo change from 2006-09-30.
644
645 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
646
6472006-09-30 David Turner <david@freetype.org>
648
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000649 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
650 s/unpatented_hinting/ignore_unpatented_hinter/.
651 Update all callers.
652
653 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
654 auto-hinting shall be used or not.
655
656 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000657
Werner Lemberg2863cfa2006-10-01 17:04:00 +00006582006-09-30 Werner Lemberg <wl@gnu.org>
659
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000660 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
661 in use).
662
663 * src/base/ftbase.c: Include `ftlcdfil.c'.
664
Werner Lemberg9b15ea32006-09-29 18:22:11 +00006652006-09-29 Werner Lemberg <wl@gnu.org>
666
667 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
668 overlapping segments. Bug reported by Stefan Koch.
669
David Turnerad830712006-09-27 16:20:59 +00006702006-09-28 David Turner <david@freetype.org>
671
Werner Lemberg2c002e12006-09-29 21:31:53 +0000672 Fix a bug in the automatic unpatented hinting support which prevents
673 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000674
Werner Lemberg2c002e12006-09-29 21:31:53 +0000675 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
676 s/force_autohint/unpatented_hinting/. Update all callers.
677
678 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
679
680 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000681
David Turner8a317cf2006-09-27 07:52:48 +00006822006-09-27 David Turner <david@freetype.org>
683
Werner Lemberg2c002e12006-09-29 21:31:53 +0000684 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000685
David Turner8a317cf2006-09-27 07:52:48 +0000686
David Turnere140f142006-10-23 08:56:57 +0000687 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000688 In a default build, the function `FT_Library_SetLcdFilter' returns
689 `FT_Err_Unimplemented_Feature'; you need to #define
690 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
691 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000692
Werner Lemberg2c002e12006-09-29 21:31:53 +0000693 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000694
Werner Lemberg2c002e12006-09-29 21:31:53 +0000695 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
696 typedef.
697 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
698 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000699
Werner Lemberg2c002e12006-09-29 21:31:53 +0000700 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
701 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000702
Werner Lemberg2c002e12006-09-29 21:31:53 +0000703 Handle subpixel rendering.
704 Simplify function.
705 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
706 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
707
708 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
709 pointing to <freetype/ftlcdfil.h>.
710
711 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
712 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
713
714 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000715
Werner Lemberge20df4a2006-09-27 06:29:21 +00007162006-09-26 David Bustin
717
718 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
719 correctly. Reported as Savannah bug #17843.
720
David Turner6f8c6222006-09-26 15:42:44 +00007212006-09-26 David Turner <david@freetype.org>
722
Werner Lemberg110246c2006-09-26 21:55:44 +0000723 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
724 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
725 horizontal and vertical hinting for the purpose of debugging the
726 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000727
Werner Lemberg110246c2006-09-26 21:55:44 +0000728 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
729 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000730
Werner Lemberg110246c2006-09-26 21:55:44 +0000731 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
732
733 * include/freetype/config/ftoption.h, devel/ftoption.h
734 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
735 we want to compile LCD-optimized rendering code (à la ClearType) or
736 not. The macro *must* be disabled in default builds of the library
737 for patent reasons.
738
739 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
740 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
741 isn't defined at compile time. This only changes the content of the
742 rendered glyph to match the one of normal gray-level rendering,
743 hence clients should not need to be modified.
744
745 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000746
Werner Lemberg745ff2c2006-09-19 05:48:02 +00007472006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
748
749 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
750 LWFN fails and both are available.
751
David Turnerf3050052006-09-11 12:00:32 +00007522006-09-11 David Turner <david@freetype.org>
753
Werner Lembergf9644552006-09-12 13:48:10 +0000754 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
755 report their English names through an Apple Roman
756 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000757
Werner Lembergf9644552006-09-12 13:48:10 +0000758 If the font uses another name entry with language_id == English, it
759 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000760
Werner Lembergf9644552006-09-12 13:48:10 +0000761 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
762 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000763
Werner Lemberg36d2eab2006-09-05 19:24:34 +00007642006-09-05 Werner Lemberg <wl@gnu.org>
765
766 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000767 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000768 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
769 `HAN NOM B.ttf').
770
771 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
772
David Turner772e55d2006-09-05 09:45:15 +00007732006-09-05 David Turner <david@freetype.org>
774
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000775 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000776
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000777 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
778 (TRaster): Remove `count_ex' and `count_ey'.
779 (gray_find_cell): Remove 2nd and 3rd argument.
780 (gray_alloc_cell): Merged with `gray_find_cell'.
781 (gray_record_cell): Simplify.
782 (gray_set_cell): Rewrite.
783 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
784 (gray_render_span): Don't use FT_MEM_SET for small values.
785 (gray_dump_cells) [DEBUG_GRAYS]: New function.
786 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
787 bitmap scanline.
788 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000789
David Turneraa557a92006-09-04 16:42:44 +00007902006-09-04 David Turner <david@freetype.org>
791
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000792 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
793 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000794
Werner Lemberg2d8629b2006-09-03 06:18:45 +00007952006-09-03 Werner Lemberg <wl@gnu.org>
796
797 * devel/ftoption.h: Synchronize with
798 include/freetype/config/ftoption.h.
799
800 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
801 variable declaration.
802 (gray_convert_glyph): Fix compiler warnings.
803
David Turner6d79f212006-09-01 14:09:35 +00008042006-09-01 David Turner <david@freetype.org>
805
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000806 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
807 to recognize a few fonts that require the automatic unpatented
808 loader.
David Turnerbd502952006-09-01 19:05:24 +0000809
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000810 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
811 rasterizer. The speed improvement is between 15% and 25%, depending
812 on the font data.
813
814 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
815 (TCell): Redefine.
816 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
817 (gray_init_cells): Updated.
818 (gray_find_cell, gray_alloc_cell): New functions.
819 (gray_record_cell): Rewritten to use `gray_find_cell' and
820 `gray_alloc_cell'.
821 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
822 QSORT_THRESHOLD):
823 Removed.
824 (gray_shell_sort, gray_quick_sort, gray_check_sort,
825 gray_dump_cells): Removed.
826 (gray_sweep): Rewritten.
827 (gray_convert_glyph): Rewrite code which used one of the sorting
828 functions.
829 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000830
Werner Lembergd898aed2006-08-29 09:50:34 +00008312006-08-29 Dr. Werner Fink <werner@suse.de>
832
833 * configure: Make it possible to handle configure options which
834 have strings containing spaces.
835
8362006-08-27 David Turner <david@freetype.org>
837
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000838 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
839 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
840 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
841
842 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
843 src/truetype/truetype.c, src/truetype/ttdriver.c,
844 src/truetype/ttgload.c, src/truetype/ttgload.h,
845 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
846 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
847 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
848
849 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
850 member `force_autohint'.
851
852 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
853
854 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
855 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000856
Jens Claudiusa787f452006-08-27 11:26:18 +00008572006-08-27 Jens Claudius <jens.claudius@yahoo.com>
858
859 Fix miscellaneous compiler warnings.
860
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000861 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
862 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000863
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000864 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
865 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
866 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000867
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000868 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
869 volatileness of argument to ft_longjmp. Spotted by Werner
870 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000871
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000872 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
873 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000874
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000875 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
876 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000877
Werner Lembergc4c35b72006-08-27 08:03:46 +00008782006-08-27 Werner Lemberg <wl@gnu.org>
879
880 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
881 Reported by Jens.
882
Jens Claudius088e44e2006-08-22 14:24:30 +00008832006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000884
Jens Claudius088e44e2006-08-22 14:24:30 +0000885 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000886 about addresses of volatile objects passed as function arguments as
887 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000888
Werner Lembergc4c35b72006-08-27 08:03:46 +0000889 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
890 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000891
892 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
893 argument `table' a pointer to a volatile object.
894
895 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
896 argument `table' a pointer to a volatile object.
897
Jens Claudius2652bd52006-08-18 17:20:37 +00008982006-08-18 Jens Claudius <jens.claudius@yahoo.com>
899
900 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
901 variable `_sfnt' as volatile since it must keep its value across
902 a call to ft_setjmp.
903 (gxv_validate): Same for local variables `memory' and `valid'.
904 (classic_kern_validate): Same for local variables `memory',
905 `ckern', and `valid'.
906
907 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
908 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
909 `jstf', and 'valid'.
910
911 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
912 local variable `cmap'.
913
David Turner9fbfc6a2006-08-16 09:11:31 +00009142006-08-16 David Turner <david@freetype.org>
915
Werner Lemberg12342992006-08-19 11:18:09 +0000916 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
917 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +0000918
Werner Lemberg12342992006-08-19 11:18:09 +0000919 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
920 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +0000921
David Turner33f5f242006-08-16 16:50:55 +0000922
Werner Lemberg12342992006-08-19 11:18:09 +0000923 Improvements to native TrueType hinting. This is a first try,
924 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
925
926 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
927 `extra_points2'.
928
929 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
930 `orus'.
931
932 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
933 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
934 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
935 handle `extra_points2'.
936
937 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
938 Remove compiler warning.
939 (cur_to_arg): Remove macro.
940 (TT_Hint_Glyph): Updated.
941 (TT_Process_Simple_Glyph): Handle `orus'.
942
943 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
944 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
945 (LOC_Ins_IUP): Renamed to...
946 (IUP_WorkerRec): This.
947 Add `orus' member.
948 (Shift): Renamed to...
949 (_iup_worker_shift): This.
950 Updated.
951 (Interp): Renamed to...
952 (_iup_worker_interpolate): This.
953 Updated to handle `orus'.
954 (Ins_IUP): Updated.
955
956 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
957 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +0000958
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00009592006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
960
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000961 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +0000962 build ftvalid in ft2demos. This has been inadvertedly changed
963 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000964
9652006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
966
Werner Lemberg12342992006-08-19 11:18:09 +0000967 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
968 Jens:
969 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000970
Werner Lemberg12342992006-08-19 11:18:09 +0000971 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
972 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000973
974 * freetype2/src/gxvalid/gxvmod.c: Ditto.
975
Jens Claudius9950adc2006-08-13 12:14:36 +00009762006-08-13 Jens Claudius <jens.claudius@yahoo.com>
977
Werner Lemberg12342992006-08-19 11:18:09 +0000978 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
979 T1_TOKEN_TYPE_KEY.
980 (T1_FieldRec): Add `dict'.
981 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
982 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
983 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +0000984
Werner Lemberg12342992006-08-19 11:18:09 +0000985 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
986 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000987
988 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
989
990 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +0000991 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
992 not T1_TOKEN_TYPE_ANY.
993 (ps_parser_load_field): Make sure a token that should be a string or
994 name is really a string or name.
995 Avoid memory leak if a keyword has been already encountered and its
996 value is overwritten.
997 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
998 T1_FIELD_XXX.
999 (parse_dict): Ignore keywords that occur in the wrong dictionary
1000 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001001
Werner Lemberg12342992006-08-19 11:18:09 +00001002 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1003 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001004
Werner Lemberg12342992006-08-19 11:18:09 +00001005 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1006 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001007
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000010082006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1009
1010 Move creation of field `buildchar' of T1_DecoderRec out of
1011 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1012 of it.
1013
1014 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1015 and `T1_Compute_Max_Advance'.
1016
1017 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1018 Remove field `face', add `len_buildchar'.
1019
1020 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1021 field `buildchar'.
1022
1023 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1024 finisher for T1_Decoder.
1025 (cid_slot_load_glyph): Do not ignore failure when initializing the
1026 T1_Decoder.
1027
1028 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1029 Updated.
1030 (t1_decoder_init): Remove initialization of fields `buildchar' and
1031 `len_buildchar'.
1032 (t1_decoder_done): Remove deallocation of field `buildchar'.
1033
1034 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1035 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1036 T1_Decoder.
1037 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1038 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1039 case of error.
1040
1041 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1042 `buildchar' of T1_FaceRec.
1043
1044 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1045 `buildchar' of T1_FaceRec.
1046
Werner Lemberg1a380e02006-07-14 18:28:08 +000010472006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1048
1049 * freetype2/include/freetype/internal/psaux.h: New macros
1050 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1051 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1052 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1053 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1054 (T1_DecoderRec): New fields `buildchar' and `face'.
1055 (IS_PS_TOKEN): New macro.
1056
1057 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1058 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1059
1060 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1061 `default_design_vector' and `num_default_design_vector'.
1062
1063 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1064 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1065 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1066
1067 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1068 `token' argument to be NULL if we want only to count the number of
1069 tokens.
1070 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1071 want to skip the array.
1072 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1073 want to skip the array.
1074
1075 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1076 support for (partially commented out) othersubrs 19-25, 27, and 28.
1077 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1078 (t1_decoder_done): Release new field `buildchar'.
1079
1080 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1081 functions.
1082 (t1_keywords): Register them.
1083 (t1_allocate_blend): Updated.
1084 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1085 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1086 (parse_dict): Remove `keyword_flags' argument.
1087 Use new macro IS_PS_TOKEN.
1088 Changed function so that later PostScript definitions override
1089 earlier ones.
1090 (t1_init_loader): Initialize new field `keywords_encountered'.
1091 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1092 `len_buildchar'.
1093 Remove `keywords_flags'.
1094
1095 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1096 `keywords_encountered'.
1097 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1098
1099 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1100 New entries for parsing /NDV, /CDV, and /DesignVector.
1101
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000011022006-07-07 Werner Lemberg <wl@gnu.org>
1103
1104 Add many checks to protect against malformed PCF files.
1105
1106 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1107 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1108
1109 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1110 data and check that tables don't overlap (using a simple
1111 bubblesort).
1112 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1113 New macros which give the size of data structures in the data
1114 stream.
1115 (pcf_get_properties): Use rough estimates to get array size limits.
1116 Assign `face->nprops' and `face->properties' earlier so that a call
1117 to PCF_Face_Done can do the clean-up in case of error.
1118 Protect against invalid string offsets.
1119 (pcf_get_metrics): Clean up code.
1120 Adjust tracing message levels.
1121 Use rough estimate to get array size limit.
1122 (pcf_get_bitmaps): Clean up code.
1123 Adjust tracing message levels.
1124 Use rough estimates to get offset limits.
1125 (pcf_get_encodings): Adjust tracing message level.
1126 (pcf_get_accel): Clean up code.
1127
Werner Lemberg8eb05252006-06-27 06:20:01 +000011282006-06-26 Werner Lemberg <wl@gnu.org>
1129
1130 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1131 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1132
Werner Lemberg24703f82006-06-26 19:12:51 +000011332006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1134
1135 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1136 (t1_decoder_parse_charstrings): Operator with
1137 opcode 15 pops its two arguments.
1138 Handle the case where the pops of an othersubr may be part of a
1139 subroutine.
1140 Handle unknown othersubrs gracefully: count their operands and let
1141 the following pop operators push the operands as the results onto
1142 the Type1 stack.
1143 Improve handling of setcurrentpoint opcode.
1144
Werner Lembergc011f4c2006-06-26 09:40:00 +000011452006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1146
1147 The Type 1 parser now skips over top-level procedures as required
1148 for a `Simplified Parser'. This makes the parser more robust as it
1149 doesn't poke around in PostScript code. Additionally, it makes the
1150 FontDirectory hackery in src/type1/t1load.c unnecessary.
1151
1152 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1153 (skip_literal_string): Add FT_Error as return value.
1154 Handle escapes better.
1155 (skip_string): Add FT_Error as return value.
1156 Don't set `parser->error' but return error code directly.
1157 (skip_procedure): New function.
1158 (ps_parser_skip_PS_token): Handle procedures.
1159 Update code.
1160 (ps_parser_to_token): Update code.
1161 (ps_parser_load_field_table): Handle bbox entries also.
1162
1163 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1164 Add commented-out code for synthetic fonts.
1165
Werner Lemberga2da05c2006-06-25 06:27:27 +000011662006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1167
1168 Fix two hinting bugs as reported in
1169 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1170
1171 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1172 `first_point' member.
1173
1174 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1175 `first_point'.
1176 (TT_Process_Composite_Glyph): Always untouch points.
1177
1178 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1179 `first_point' and `last_point' in case of composite glyphs.
1180 (Ins_IUP): Fix computation of `end_point'.
1181
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000011822006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1183
Werner Lembergef3d2c22006-06-25 06:07:14 +00001184 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1185 Mac. The original patch was written by David Sachitano and Lawrence
1186 Coopet, and modified by Sean McBride for MPW compatibility. Only
1187 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001188
Werner Lembergef3d2c22006-06-25 06:07:14 +00001189 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1190 Mac OS X platforms.
1191 (OS_INLINE): Undefine before definition.
1192 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1193 FontAssociation table in FOND resource.
1194 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1195 and fontSize at each entry of FontAssociation table in FOND
1196 resource.
1197 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1198 ffStylOff of FamilyRecord header of FOND resource, the header,
1199 fontSize, fontID at each entry of FontAssociation table, and
1200 StyleMapping table.
1201 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001202
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000012032006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1204
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001205 Public API of TrueTypeGX, OpenType, and classic kern table validator
1206 should return `FT_Err_Unimplemented_Feature' if validation service
1207 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001208 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001209 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1210
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001211 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1212 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1213 unavailable.
1214 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1215 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001216
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001217 * src/base/ftotval.c (FT_OpenType_Validate): Return
1218 FT_Err_Unimplemented_Feature if OpenType validation service is
1219 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001220
Werner Lembergb10e45a2006-06-08 07:32:56 +000012212006-06-08 Werner Lemberg <wl@gnu.org>
1222
1223 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1224 errors.
1225
David Turner5f1f7502006-06-07 05:11:50 +000012262006-06-07 David Turner <david@freetype.org>
1227
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001228 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1229 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1230 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001231
David Turner457b4a82006-06-06 08:14:14 +000012322006-06-06 David Turner <david@freetype.org>
1233
Werner Lemberg4836f952006-06-06 12:54:08 +00001234 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001235
Werner Lemberg4836f952006-06-06 12:54:08 +00001236 We change `ps_unicodes_init' so that it also takes a
1237 `free_glyph_name' callback to release the glyph names returned by
1238 `get_glyph_name'
1239
1240 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1241 Renamed to ...
1242 (PS_GetGlyphNameFunc): This.
1243 (PS_FreeGlyphNameFunc): New typedef.
1244 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1245
1246 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1247 argument.
1248 (cff_sid_free_glyph_name): New function.
1249 (cff_cmap_unicode_init): Updated.
1250
1251 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1252
1253 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1254 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001255
1256
David Turner09717352006-06-04 14:33:08 +000012572006-06-04 David Turner <david@freetype.org>
1258
Werner Lembergd724f202006-06-04 15:17:41 +00001259 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1260 `item_size == 0' as well -- though this sounds weird, it can
1261 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001262
Werner Lembergd724f202006-06-04 15:17:41 +00001263 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1264 of `face->num_glyphs' which missed the last glyph, due to
1265 the offset-by-1 computation, since the PFR format doesn't
1266 guarantee that glyph index 0 corresponds to the `missing
1267 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001268
Werner Lemberg33779662006-05-26 06:30:05 +000012692006-05-25 Werner Lemberg <wl@gnu.org>
1270
1271 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1272 `-no-undefined'. Reported by Christian Biesinger.
1273
Werner Lemberg24773d62006-05-20 08:53:13 +000012742006-05-19 Brian Weed <bw@imaginengine.com>
1275
1276 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1277 have debug information, and debug libraries use `C7 compatible'
1278 debug info.
1279
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000012802006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1281
Werner Lemberga6523a62006-05-20 08:47:01 +00001282 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001283 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001284
Werner Lemberga6523a62006-05-20 08:47:01 +00001285 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1286 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001287
1288 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001289 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001290
12912006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1292
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001293 * build/unix/configure.raw: Add a fallback to disable Carbon
1294 dependency, if configured with no options on Mac OS X.
1295
12962006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1297
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001298 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001299 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001300 the second part of Savannah bug #16590.
1301
Werner Lemberg545c4e52006-05-17 22:55:04 +000013022006-05-18 Werner Lemberg <wl@gnu.org>
1303
1304 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1305 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1306
David Turnerdc3ff312006-05-17 12:59:35 +000013072006-05-17 David Turner <david@freetype.org>
1308
Werner Lemberg545c4e52006-05-17 22:55:04 +00001309 This is a major patch used to drastically improve the performance of
1310 loading glyphs. This both speeds up loading the glyph vectors
1311 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001312
Werner Lemberg545c4e52006-05-17 22:55:04 +00001313 We now use inline assembler code with GCC to implement `FT_MulFix',
1314 which is probably the most important function related to the
1315 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001316
Werner Lemberg545c4e52006-05-17 22:55:04 +00001317 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001318
1319
Werner Lemberg545c4e52006-05-17 22:55:04 +00001320 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1321 `cursor' and `limit'.
1322
1323 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1324 New functions.
1325 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1326 [TEST]: Remove.
1327
1328 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1329 code.
1330
1331 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1332 `FT_ZERO'
1333 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1334 (af_glyph_hints_reload: Rewrite recognition of weak points.
1335
1336 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1337 constant values out of the loops.
1338
1339 * src/autofit/aftypes.h: Updated.
1340
1341 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1342
1343 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1344 product to get orientation.
1345
1346 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1347 (FT_Stream_OpenGzip): Use it to handle small files directly in
1348 memory.
1349
1350 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1351 Improve performance.
1352
1353 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1354 `limit'.
1355
1356 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1357 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1358 exceedingly large values of number of contours. Speed up by
1359 reducing the number of loops.
1360
1361 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1362
1363
1364 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1365 used to detect rogue clients from 4 to 16. This is to prevent some
1366 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1367 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001368
Werner Lembergde2d90a2006-05-17 08:54:30 +000013692007-05-17 Werner Lemberg <wl@gnu.org>
1370
1371 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001372 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001373
13742006-05-16 Werner Lemberg <wl@gnu.org>
1375
1376 * docs/PROBLEMS: Updated icl issues.
1377
Werner Lemberg6756dc12006-05-12 08:00:13 +000013782006-05-12 Werner Lemberg <wl@gnu.org>
1379
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001380
1381 * Version 2.2.1 released.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001382 =========================
Werner Lemberg8ab412d2006-05-12 15:09:02 +00001383
1384
1385 Tag sources with `VER-2-2-1'.
1386
13872006-05-12 Werner Lemberg <wl@gnu.org>
1388
Werner Lemberg6756dc12006-05-12 08:00:13 +00001389 * src/tools/docmaker/sources.py (re_source_keywords): Add word
1390 boundary markers.
1391 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
1392 (but not at the beginning or end).
Werner Lemberge12a4712006-05-12 14:20:43 +00001393 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Werner Lemberg6e467a62006-05-12 15:05:45 +00001394 (block_footer): Split into...
1395 (block_footer_start, block_footer_middle, block_footer_end): This to
1396 add navigation buttons.
1397 (HtmlFormatter::block_exit): Updated.
Werner Lemberg6756dc12006-05-12 08:00:13 +00001398
1399 * include/freetype/*: Many minor documentation improvements (adding
1400 links, spelling errors, etc.).
1401
Werner Lembergfd74ec62006-05-12 04:00:44 +000014022006-05-11 Werner Lemberg <wl@gnu.org>
1403
1404 * README: Minor updates.
1405
1406 * include/freetype/*: s/scale/scaling value/ where appropriate.
1407 Many other minor documentation improvements.
1408
1409 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
1410 trailing punctuation.
1411 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
1412 warning message for undefined cross references.
1413 Update handling of re_italic and re_bold.
1414
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +000014152006-05-11 Masatake YAMATO <jet@gyve.org>
David Turner281679d2006-05-17 13:34:21 +00001416
1417 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +00001418 read system call returns -1.
1419 Remove a redundant parenthesis.
1420
Werner Lembergb80d85f2006-05-10 04:47:35 +000014212006-05-10 Werner Lemberg <wl@gnu.org>
1422
1423 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
1424 given an empty, un-mmap()able file. Reported and suggested fix in
1425 Savannah bug #16555.
1426
Werner Lemberge0d15592006-05-10 13:44:47 +00001427 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
1428 directory to suppress generation of .pyc files. According to the
1429 Python docs there isn't a more elegant solution (currently).
1430
1431 * builds/toplevel.mk (dist): New target which builds .tar.gz,
1432 .tar.bz2, and .zip files. Note that the version number is still
1433 hard-coded.
1434 (do-dist): Sub-target of `dist'.
1435 (CONFIG_GUESS, CONFIG_SUB): New variables.
1436 (.PHONY): Updated.
1437
Werner Lemberga127ca42006-05-09 13:41:50 +000014382006-05-09 Rajeev Pahuja <rpahuja@esri.com>
1439
1440 * builds/win32/visualc/freetype.sln,
1441 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
1442 VS.NET 2003
1443 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
1444
1445 * builds/win32/visualc/index.html: Updated.
1446
Werner Lemberg4df5b262006-05-08 07:10:29 +000014472006-05-07 Werner Lemberg <wl@gnu.org>
1448
1449 Put version information into the configure script. Reported by Paul
1450 Watson <pwatson@redlinepy.com>.
1451
1452 * builds/unix/configure.ac: Renamed to...
1453 * builds/unix/configure.raw: This which now serves (with appropriate
1454 modifications) as a template for configure.ac.
1455
1456 * version.sed: New script.
1457
1458 * autogen.sh: Generate configure.ac from configure.raw, using
1459 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
1460
Werner Lemberg1639c792006-05-06 16:44:58 +000014612006-05-06 Werner Lemberg <wl@gnu.org>
1462
1463 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
1464
1465 * builds/unix/configure.ac (version_info): Set to 9:10:3.
1466
1467 * builds/win32/visualc/index.html,
1468 builds/win32/visualc/freetype.dsp,
1469 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
1470 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
1471 Minor updates.
1472
1473 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
1474 Updated.
1475
1476 * builds/unix/install-sh: Updated from `texinfo' CVS module at
Werner Lemberg4836f952006-06-06 12:54:08 +00001477 savannah.gnu.org.
Werner Lemberg1639c792006-05-06 16:44:58 +00001478
1479 * devel/ftoption.h: Synchronize with
1480 include/freetype/config/ftoption.h.
1481
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +000014822006-05-04 Werner Lemberg <wl@gnu.org>
1483
1484 * src/lzw/ftlzw2.c: Renamed to...
1485 * src/lzw/ftlzw.c: This.
1486
1487 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
1488
1489 * builds/mac/FreeType.m68k_cfm.make.txt,
1490 builds/mac/FreeType.m68k_far.make.txt,
1491 builds/mac/FreeType.ppc_carbon.make.txt,
1492 builds/mac/FreeType.ppc_classic.make.txt: Updated.
1493
David Turner679a2522006-05-03 09:40:33 +000014942006-05-03 David Turner <david@freetype.org>
1495
Werner Lemberga94746c2006-05-03 20:39:55 +00001496 Allow compilation again with C++ compilers.
1497
1498 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
1499 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
1500 which exist in two variants (for C and C++).
1501 Update callers accordingly.
David Turner679a2522006-05-03 09:40:33 +00001502
Werner Lemberg58eed042006-05-02 22:26:09 +000015032006-05-03 Werner Lemberg <wl@gnu.org>
1504
1505 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
1506
Werner Lembergc6afa122006-05-02 22:22:16 +000015072006-05-02 Werner Lemberg <wl@gnu.org>
1508
1509 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
1510 (FT_ALLOC): Remove redundant redefinition.
1511
1512 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
1513 `-Wstrict-prototypes'.
1514
1515 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
1516
Werner Lemberg58eed042006-05-02 22:26:09 +00001517 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
1518 Remove `extern'.
Werner Lemberg94204892006-05-02 22:24:06 +00001519
David Turner264f3072006-05-02 06:34:27 +000015202006-05-02 David Turner <david@freetype.org>
1521
Werner Lembergc6afa122006-05-02 22:22:16 +00001522 Update the memory management functions and macros to safely deal
1523 with array size buffer overflows. This corresponds to attemps to
1524 allocate arrays that are too large. For an example, consider the
1525 following code:
David Turner264f3072006-05-02 06:34:27 +00001526
Werner Lembergc6afa122006-05-02 22:22:16 +00001527 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
1528 count ); for ( nn = 0; nn < count; nn++ )
1529 array[nn] = read_item_from_file();
David Turner264f3072006-05-02 06:34:27 +00001530
Werner Lembergc6afa122006-05-02 22:22:16 +00001531 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
1532 multiplication overflows, and the array allocated os smaller than
1533 the data read from the file. In this case, the heap will be
1534 trashed, and this can be used as a denial-of-service attack, or make
1535 the engine crash later.
David Turner264f3072006-05-02 06:34:27 +00001536
Werner Lembergc6afa122006-05-02 22:22:16 +00001537 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
1538 count is no larger than `FT_INT_MAX/item_size', otherwise a new
1539 error code `FT_Err_Array_Too_Large' will be returned.
David Turner264f3072006-05-02 06:34:27 +00001540
Werner Lembergc6afa122006-05-02 22:22:16 +00001541 Note that the memory debugger now works again when FT_DEBUG_MEMORY
1542 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
1543 code is now the default.
David Turner264f3072006-05-02 06:34:27 +00001544
David Turner9ca78252006-05-02 09:00:29 +00001545
Werner Lembergc6afa122006-05-02 22:22:16 +00001546 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
1547 Don't use `extern'.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001548
Werner Lembergc6afa122006-05-02 22:22:16 +00001549 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
1550 code.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001551
Werner Lembergc6afa122006-05-02 22:22:16 +00001552 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
1553 [FT_DEBUG_MEMORY]: New macro.
1554 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
1555 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
1556 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1557 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
1558 FT_MEM_FREE): Redefine.
1559 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
1560 FT_MEM_QRENEW_ARRAY): Redefine.
1561 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
1562 FT_MEM_QREALLOC_MULT): New macros. Update callers where
1563 appropriate.
1564 (FT_MEM_SET_ERROR): Slightly redefine.
1565
1566
1567 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
1568 [FT_DEBUG_MEMORY]: New global variables, replacing...
1569 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
1570 `line_no'. Update all callers.
1571 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
1572 overflow.
1573 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
1574 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1575
1576 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
1577 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
1578 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
1579 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
1580
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +00001581
1582 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
1583 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
1584 place where the frames were entered, extracted, exited or released
1585 in the memory debugger.
1586
1587 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
1588 Call ft_mem_free.
1589 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
1590 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
1591
Werner Lembergc6afa122006-05-02 22:22:16 +000015922006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1593
1594 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
1595 initialization, remove extra cast to copy to pfb_lenpos. This fixes
1596 parsing of PFB fonts with MacOS resource fork (bug introduced
1597 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +00001598
Werner Lemberg8fe65392006-04-29 07:31:16 +000015992006-04-29 Werner Lemberg <wl@gnu.org>
1600
1601 Further C library abstraction. Based on a patch from
1602 msn2@bidyut.com.
1603
1604 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
1605 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
1606 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
1607 C library functions. Update all users accordingly (and catch some
1608 other places where the C library function was used instead of the
1609 wrapper functions).
1610
1611 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
1612 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
1613 include malloc.h.
1614
Werner Lemberg06fceb32006-04-29 07:53:40 +00001615
1616 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
1617 and forthcoming versions.
1618
Werner Lemberg50ef72b2006-04-29 07:02:36 +000016192006-04-28 Werner Lemberg <wl@gnu.org>
1620
1621 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
1622 obsolete.
1623
Werner Lemberg12cceaa2006-04-27 05:02:35 +000016242006-04-27 yi luo <luoyi.ly@gmail.com>
1625
1626 * builds/win32/visualc/freetype.vcproj: Updated.
1627
David Turner3b47dd62006-04-26 19:34:24 +000016282006-04-26 David Turner <david@freetype.org>
1629
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001630
1631 * Version 2.2 released.
Werner Lembergc6afa122006-05-02 22:22:16 +00001632 =======================
Werner Lemberg12cceaa2006-04-27 05:02:35 +00001633
1634
1635 Tag sources with `VER-2-2-0'.
David Turner3b47dd62006-04-26 19:34:24 +00001636
Werner Lemberg564b4432006-04-26 15:02:52 +000016372006-04-26 Werner Lemberg <wl@gnu.org>
1638
1639 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001640 FT_PtrDiff for `delta'. Reported by Céline PILLET
Werner Lemberg564b4432006-04-26 15:02:52 +00001641 <Celine.Pillet@Tagginfo.com>.
1642
David Turner8e438ea2006-04-21 08:35:11 +000016432006-04-21 David Turner <david@freetype.org>
1644
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001645 * include/freetype/ftincrem.h: Documentation updates.
1646 (FT_Incremental_Interface): New typedef.
David Turner8e438ea2006-04-21 08:35:11 +00001647
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001648 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
1649 Documentation updates.
1650
1651 * include/freetype/freetype.h: Documentation update.
1652 (FT_HAS_FAST_GLYPHS): Always set to 0.
1653
1654 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
1655 Take an FT_Library argument instead of FT_Memory.
1656
1657 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
David Turner7aa20102006-04-21 08:38:35 +00001658
David Turner65c7c772006-04-13 07:51:58 +000016592006-04-13 David Turner <david@freetype.org>
1660
Werner Lemberg8a8c6022006-04-22 12:24:52 +00001661 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
1662 superfluous code in the auto-fitter's loader.
David Turner65c7c772006-04-13 07:51:58 +00001663
Werner Lemberg4e03fe72006-04-29 06:20:09 +000016642006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner7d043222006-04-05 07:17:12 +00001665
1666 * builds/amiga/makefile, builds/amiga/makefile.os4,
1667 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
1668
Werner Lemberg7f18de62006-04-03 16:47:34 +000016692006-04-03 luoyi <luoyi.ly@gmail.com>
1670
1671 * builds/compiler/intelc.mk (TE): New variable.
1672 (ANSIFLAGS): Updated.
1673
Werner Lembergfd7456c2006-04-03 15:46:48 +000016742006-04-03 Werner Lemberg <wl@gnu.org>
1675
1676 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
1677 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
1678 (.PHONY): Updated.
1679
1680 * configure.ac: Minor fixes to improve --help output.
1681
Werner Lemberg764b2512006-04-03 16:42:39 +00001682
1683 * docs/PROBLEMS: New file.
1684
Werner Lemberg40917862006-04-01 18:49:07 +000016852006-04-01 David Turner <david@freetype.org>
David Turner0f15e1c2006-04-01 16:11:53 +00001686
Werner Lemberg40917862006-04-01 18:49:07 +00001687 * docs/CHANGES: Updated.
David Turnercf603712006-04-01 16:22:06 +00001688
Werner Lemberg40917862006-04-01 18:49:07 +00001689 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
1690 Update documentation comments.
David Turner0f15e1c2006-04-01 16:11:53 +00001691
Werner Lemberg6e9df682006-04-01 05:22:07 +000016922006-04-01 Werner Lemberg <wl@gnu.org>
1693
1694 * builds/unix/install.mk (uninstall): Don't handle `cache'
1695 directory which no longer exists.
1696
Werner Lemberg4e03fe72006-04-29 06:20:09 +000016972006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001698
Werner Lemberg6e9df682006-04-01 05:22:07 +00001699 * src/psaux/psconv.c: Changed some variables which are expected to
1700 hold negative values from `char' to `FT_Char' to allow building with
1701 a compiler where `char' is unsigned by default.
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001702
David Turner42137bc2006-03-27 20:10:26 +000017032006-03-27 David Turner <david@freetype.org>
1704
Werner Lembergfa3651e2006-03-28 05:06:50 +00001705 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
1706 causes some programs to go into an infinite loop when dealing with
1707 fonts that don't have a properly sorted kerning sub-table.
David Turner42137bc2006-03-27 20:10:26 +00001708
Werner Lemberg26170df2006-03-26 07:19:07 +000017092006-03-26 Werner Lemberg <wl@gnu.org>
1710
1711 * src/bdf/bdflib.c (ERRMSG4): New macro.
1712 (_bdf_parse_glyphs): Handle invalid BBX values.
1713
1714 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
1715 macro.
1716
Werner Lemberg4db32ec2006-03-24 11:54:53 +000017172006-03-23 Werner Lemberg <wl@gnu.org>
1718
1719 * docs/CHANGES: Updated.
1720
Werner Lembergd6e24982006-03-24 18:31:47 +00001721
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001722 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
1723 padding between table elements.
Werner Lemberge0dd18f2006-03-24 12:14:48 +00001724 (html_header_1): The `DOCTYPE' comment must be in uppercase.
Werner Lembergd6e24982006-03-24 18:31:47 +00001725 (make_html_para): Convert `...' quotations into real left and
1726 right single quotes.
1727 Use `para_header' and `para_footer'.
1728
1729 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
1730 also.
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001731
David Turner2ce92032006-03-23 20:58:20 +000017322006-03-23 David Turner <david@freetype.org>
1733
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001734 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
Werner Lembergc6afa122006-05-02 22:22:16 +00001735 we do not expose the FT_SubGlyphRec structure.
David Turner2ce92032006-03-23 20:58:20 +00001736
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001737 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
1738 to...
1739 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
1740 (FT_Get_SybGlyph_Info): New declaration.
1741
1742 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
1743
1744
1745 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
Werner Lembergc6afa122006-05-02 22:22:16 +00001746 rsb_delta correctly in edge cases.
David Turner2ce92032006-03-23 20:58:20 +00001747
Werner Lemberg3867d2f2006-03-22 08:03:06 +000017482006-03-22 Werner Lemberg <wl@gnu.org>
1749
Werner Lemberg6c5b6172006-03-22 15:30:41 +00001750 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
1751 [!FTC_INLINE]: Compile conditionally.
1752 * src/cache/ftccache.h: Updated.
1753
1754 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
1755 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
1756 s/FT_EXPORT/FT_LOCAL/.
1757 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
1758 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
1759 s/FT_EXPORT/FT_LOCAL/.
1760 * src/cache/ftcglyph.h: Updated.
1761
1762 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
1763 s/FT_EXPORT/FT_LOCAL/.
1764 (FTC_INode_Weight): Commented out.
1765 * src/cache/ftcimage.h: Updated.
1766
1767 * src/cache/ftmanag.c (FTC_Manager_Compress,
1768 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
1769 s/FT_EXPORT/FT_LOCAL/.
1770 * src/cache/ftmanag.h: Updated.
1771
1772 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
1773 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
1774 (FTC_SNode_Weight): Commented out.
1775 * src/cache/ftcsbits.h: Updated.
1776
17772006-03-22 Werner Lemberg <wl@gnu.org>
1778
Werner Lemberg3867d2f2006-03-22 08:03:06 +00001779 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
1780 Remove, unused.
1781
1782 * src/cache/ftccmap.h: Remove, unused.
1783
1784 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
1785
Werner Lemberg5556dd22006-03-21 21:36:33 +000017862006-03-21 Zhe Su <james.su@gmail.com>
1787
1788 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
1789 algorithm.
1790
Werner Lemberg26377002006-03-21 18:41:40 +000017912006-03-21 Werner Lemberg <wl@gnu.org>
1792
1793 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
1794
1795 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
1796
1797 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
1798 to `FT_UInt'.
1799 Check range of `glyph_index'.
1800 * src/cff/cffgload.h: Updated.
1801
Werner Lemberg8439fe82006-03-21 21:04:33 +00001802
Werner Lemberg95f206b2006-03-21 20:47:28 +00001803 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
1804 correctly.
1805
Werner Lemberg8439fe82006-03-21 21:04:33 +00001806
1807 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
1808 README: s/2.1.10/2.2/.
1809
Werner Lemberg26377002006-03-21 18:41:40 +000018102006-03-21 David Turner <david@freetype.org>
David Turner24b9e872006-03-21 16:30:04 +00001811
Werner Lemberga62007f2006-03-21 17:41:40 +00001812 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
1813 that crashes the auto-hinter (introduced by previous patch).
David Turner24b9e872006-03-21 16:30:04 +00001814
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000018152006-03-20 Werner Lemberg <wl@gnu.org>
David Turnerdad2a2d2006-03-20 11:48:13 +00001816
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001817 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
1818 (FREETYPE_H): Updated.
David Turnere091ce32006-03-20 16:01:28 +00001819
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001820 * src/cache/rules.mk (CACHE_H_DIR): Remove.
1821 (CACHE_DRV_H): Updated.
David Turnerda95af62006-03-20 13:32:33 +00001822
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000018232006-03-20 David Turner <david@freetype.org>
David Turnerda95af62006-03-20 13:32:33 +00001824
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001825 * include/freetype/cache/ftccache.h,
1826 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
1827 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
1828 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
1829 Move to...
David Turner505667c2006-03-20 12:13:14 +00001830
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001831 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
1832 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
1833 src/cache/ftcmru.h: This new location.
1834 Update declarations according to the changes in the corresponding
1835 source files.
David Turner256de4b2006-03-20 12:10:24 +00001836
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001837 Note that these files are not used by FreeType clients; all public
1838 APIs of the cache module have been already moved to
1839 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
1840 macros resolve to it.
David Turner256de4b2006-03-20 12:10:24 +00001841
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001842 Reason for the move is to allow modifications of the internals
1843 without interferences with rogue clients. Note that there are no
1844 known clients that access the cache internals at the moment.
David Turner256de4b2006-03-20 12:10:24 +00001845
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001846 * builds/unix/install.mk (install): Don't install headers from
1847 $(CACHE_H).
1848 Remove `freetype/cache' from the target directory.
David Turnerdad2a2d2006-03-20 11:48:13 +00001849
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001850 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
1851 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
1852 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
1853 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
1854 FT_CACHE_H.
David Turnerdad2a2d2006-03-20 11:48:13 +00001855
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001856 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
1857 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
1858 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
1859 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
1860 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
1861 but include the headers directly (which are now in `src/cache').
David Turnerdad2a2d2006-03-20 11:48:13 +00001862
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001863 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1864 macros but include the headers directly.
1865 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
1866 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
1867
1868 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1869 macros but include the headers directly.
1870 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
1871 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
1872 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
1873 Declare as FT_LOCAL_DEF.
1874 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
1875 conditionally.
1876 Declare as FT_LOCAL_DEF.
1877
1878
1879 * builds/win32/visualc/freetype.dsp: Update project file, add
1880 missing base source files (ftstroke.c, ftxf86.c, etc.).
1881
1882
1883 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
1884 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
1885 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
1886 src/type1/t1objs.c: Remove compiler warnings when building with
1887 Visual C++ 6 and /W4.
1888
1889 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1890 hinting for italic/oblique fonts.
1891
1892
1893
1894 * src/truetype/ttpload.c, src/truetype/ttpload.h
1895 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
1896
18972006-03-06 David Turner <david@freetype.org>
David Turner65b96aa2006-03-07 00:38:24 +00001898
Werner Lemberge6a8fca2006-03-07 23:53:55 +00001899 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
1900 Mozilla/FireFox print preview in Ubuntu Hoary.
David Turner65b96aa2006-03-07 00:38:24 +00001901
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +000019022006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1903
Wu, Chia-I (吳佳一)9f5d3de2006-02-28 13:21:50 +00001904 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
1905 return error when size == 0.
1906
19072006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1908
Werner Lemberge88d24c2006-02-28 21:49:54 +00001909 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
1910 order so that type42 module is removed before truetype module. This
1911 avoids double free in some occasions.
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +00001912
Werner Lembergc6afa122006-05-02 22:22:16 +000019132006-02-28 David Turner <david@freetype.org>
David Turnere9a47192006-02-28 09:26:58 +00001914
Werner Lemberge88d24c2006-02-28 21:49:54 +00001915 * Release candidate VER-2-2-0-RC4.
1916 ----------------------------------
David Turnere9a47192006-02-28 09:26:58 +00001917
Werner Lemberge88d24c2006-02-28 21:49:54 +00001918 * docs/CHANGES: Documentation updates.
David Turnere9a47192006-02-28 09:26:58 +00001919
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +000019202006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1921
Werner Lemberge88d24c2006-02-28 21:49:54 +00001922 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
1923 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
1924 built.
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +00001925
Werner Lembergc07ee522006-02-27 18:13:12 +000019262006-02-27 Werner Lemberg <wl@gnu.org>
1927
1928 * include/freetype/cache/ftccache.h
1929 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
1930 ftc_node_done.
1931
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001932 * src/cache/ftccache.c (ftc_node_destroy)
1933 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
1934 should now fix all possible compilation options.
1935
David Turnerc13e75f2006-02-27 13:14:42 +000019362006-02-27 David Turner <david@freetype.org>
1937
Werner Lemberg422d2a02006-02-27 18:25:22 +00001938 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
1939 ft_mem_qrealloc): Return an error if a negative size is passed in
1940 parameters.
David Turnerc13e75f2006-02-27 13:14:42 +00001941
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001942 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
1943 it needs to be exported for rogue clients.
David Turner65b96aa2006-03-07 00:38:24 +00001944
Werner Lemberg422d2a02006-02-27 18:25:22 +00001945 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
1946 with malformed fonts which have an odd number of blue values (these
1947 are broken according to the specs).
David Turnerc13e75f2006-02-27 13:14:42 +00001948
Werner Lemberg422d2a02006-02-27 18:25:22 +00001949 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
1950 (T1_Open_Face): Modify the loaders to force even-ness of
1951 `num_blue_values'.
1952
1953 (cff_index_access_element): Ignore invalid entries in index files.
David Turnerc13e75f2006-02-27 13:14:42 +00001954
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +000019552006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1956
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001957 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
1958 or height is 0.
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +00001959
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +000019602006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1961
1962 * builds/mac/FreeType.m68k_cfm.make.txt,
1963 builds/mac/FreeType.m68k_far.make.txt,
1964 builds/mac/FreeType.ppc_carbon.make.txt,
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001965 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
1966 inclusion introduced on 2006-02-16.
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00001967
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +000019682006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1969
Werner Lemberg422d2a02006-02-27 18:25:22 +00001970 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
1971 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001972 Re-enable glyph metrics grid-fitting. It is now done in the base
1973 layer.
Werner Lembergc07ee522006-02-27 18:13:12 +00001974 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
1975 height are not too small or too large, just like we were doing in
1976 2.1.10.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001977
Werner Lembergc07ee522006-02-27 18:13:12 +00001978 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
1979 are not scaled.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001980
Werner Lembergf99d8462006-02-26 17:50:59 +000019812006-02-26 Werner Lemberg <wl@gnu.org>
1982
1983 * docs/release: Minor additions and clarifications.
1984
1985 * docs/CHANGES: Updated to reflect many fixes for backwards
1986 compatibility. Still incomplete.
1987
David Turnerb4636652006-02-26 07:57:45 +000019882006-02-26 David Turner <david@freetype.org>
1989
Werner Lemberg0aaf4292006-02-26 17:30:15 +00001990 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
1991 conservative rounding of metrics to avoid breaking clients like
1992 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
David Turnerb4636652006-02-26 07:57:45 +00001993
Werner Lemberg20a8d0c2006-02-25 16:56:04 +000019942006-02-25 Werner Lemberg <wl@gnu.org>
1995
1996 * devel/ftoption.h: Synchronize with
1997 include/freetype/config/ftoption.h.
1998
Werner Lembergae1e4b12006-02-25 17:11:04 +00001999 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
2000
David Turner6c71c6b2006-02-25 12:49:40 +000020012006-02-25 David Turner <david@freetype.org>
2002
Werner Lemberg7f049f42006-02-25 16:52:16 +00002003 Fix compiler warnings as well as C++ compilation problems.
2004 Add missing prototypes.
David Turner6c71c6b2006-02-25 12:49:40 +00002005
Werner Lemberg7f049f42006-02-25 16:52:16 +00002006 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
2007 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
2008 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
2009 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
2010 initialize variables, and decorate functions with FT_CALLBACK_DEF,
2011 etc., to fix compiler warnings (and C++ compiling errors).
David Turner6c71c6b2006-02-25 12:49:40 +00002012
Werner Lemberg7f049f42006-02-25 16:52:16 +00002013 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
2014 gcc.
David Turnerde271ab2006-02-25 14:53:02 +00002015
Werner Lemberg7f049f42006-02-25 16:52:16 +00002016 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
2017 FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00002018
Werner Lemberg7f049f42006-02-25 16:52:16 +00002019 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00002020
Werner Lemberg7f049f42006-02-25 16:52:16 +00002021 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
2022
2023 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
2024 define for C++.
2025
2026 * include/freetype/internal/services/svotval.h: Don't include
2027 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
2028
2029 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
2030
2031 * src/gzip/ftgzip.c: Include FT_GZIP_H.
2032
2033 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
2034
2035 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
David Turner6c71c6b2006-02-25 12:49:40 +00002036
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +000020372006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
2038
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00002039 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
2040 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
David Turner6c71c6b2006-02-25 12:49:40 +00002041 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00002042 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
2043
20442006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
2045
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00002046 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
2047 documentation.
2048
2049 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
2050 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
Werner Lembergd7e6b762006-02-25 06:24:28 +00002051 sure a glyph slot owns its bitmap. It is also marked experimental
2052 and due to change.
2053 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
2054 rendering the outline confuses some applications.
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00002055
David Turnerca7d76f2006-02-24 09:09:10 +000020562006-02-24 David Turner <david@freetype.org>
2057
Werner Lembergd7e6b762006-02-25 06:24:28 +00002058 * Release candidate VER-2-2-0-RC3.
2059 ----------------------------------
David Turner478c5912006-02-24 09:56:23 +00002060
Werner Lembergd7e6b762006-02-25 06:24:28 +00002061 * src/cache/ftcbasic.c: Correct compatibility hack bug.
David Turnerca7d76f2006-02-24 09:09:10 +00002062
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +000020632006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
2064
Werner Lembergd7e6b762006-02-25 06:24:28 +00002065 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
2066 of `width' and `height' to `FT_Long'.
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +00002067 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
2068 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
2069 directly.
2070
David Turner6cda6c02006-02-23 12:37:18 +000020712006-02-23 David Turner <david@freetype.org>
2072
Werner Lembergd7e6b762006-02-25 06:24:28 +00002073 Two BDF patches from Debian libfreetype6 for 2.1.10.
David Turner6cda6c02006-02-23 12:37:18 +00002074
Werner Lembergd4303da2006-02-23 21:01:34 +00002075 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
2076 glyphs.
2077 Fix a problem with large encodings.
David Turner481838e2006-02-23 12:40:14 +00002078
Werner Lembergd7e6b762006-02-25 06:24:28 +00002079
2080 Fix binary compatibility issues for gnustep-back (GNUstep backend
2081 module) which still crashes under Sarge.
2082
2083 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
2084 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
2085 structures and enumerations.
2086 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
2087 compatibility code.
David Turner88d89852006-02-23 22:35:26 +00002088
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002089 * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
David Turneraa557a92006-09-04 16:42:44 +00002090 support rogue clients compiled against 2.1.7 to work correctly.
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002091 This probably explains the GNUstep crashes with the second release
2092 candidate.
David Turnerbd502952006-09-01 19:05:24 +00002093
Wu, Chia-I (吳佳一)890f8072006-02-22 20:47:39 +000020942006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
2095
2096 * include/freetype/ftoutln.h (enum FT_Orientation): New value
2097 `FT_ORIENTATION_NONE'.
2098
2099 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
2100 ft_contour_enclosed, ft_outline_get_orientation): Another version of
2101 `FT_Outline_Get_Orientation'. This version differs from the public
2102 one in that each part (contour not enclosed in another contour) of the
2103 outline is checked for orientation.
2104 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
2105
2106 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
2107 use bitmap's embolden routine when the outline one failed.
2108
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +000021092006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
2110
2111 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
2112 compatibility.
2113
2114 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
2115
2116 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
2117 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
Werner Lemberg5edafed2006-02-22 08:23:35 +00002118 loading. (Only tested with bit aligned sbit with x_pos == 0.)
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00002119
2120 * src/truetype/ttpload.c (tt_face_load_hdmx,
Werner Lemberg5edafed2006-02-22 08:23:35 +00002121 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
2122 actually used.
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00002123
David Turner1ae134a2006-02-21 16:50:17 +000021242006-02-21 David Turner <david@freetype.org>
2125
Werner Lemberg5edafed2006-02-22 08:23:35 +00002126 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
2127 we have a patented, unpatented, or unimplemented TrueType bytecode
2128 interpreter.
David Turner0b5dc4d2006-02-21 22:36:23 +00002129
Werner Lemberg5edafed2006-02-22 08:23:35 +00002130 The FT_Get_Module_Flags API was removed consequently.
David Turner0b5dc4d2006-02-21 22:36:23 +00002131
David Turner88d89852006-02-23 22:35:26 +00002132 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Werner Lemberg5edafed2006-02-22 08:23:35 +00002133 Replaced with...
2134 (FT_Get_TrueType_Engine_Type): This.
2135 (FT_TrueTypeEngineType): New enumeration.
David Turner0b5dc4d2006-02-21 22:36:23 +00002136
Werner Lemberg5edafed2006-02-22 08:23:35 +00002137 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
2138 New macro.
David Turner1ae134a2006-02-21 16:50:17 +00002139
Werner Lemberg5edafed2006-02-22 08:23:35 +00002140 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2141 (FT_Module_Get_Flags): Removed. Replaced with...
2142 (FT_Get_TrueType_Engine_Type): This.
David Turnerc093db92006-02-21 17:06:35 +00002143
Werner Lemberg5edafed2006-02-22 08:23:35 +00002144 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2145 (tt_service_truetype_engine): New service structure.
2146 (tt_services): Register it.
2147
2148 * include/freetype/internal/services/svtteng.h: New file.
2149
2150
2151 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
2152 embedded bitmaps from being correctly listed and used.
2153
2154
2155 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
2156 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
2157 libXfont is directly accessing the HMTX data, unfortunately.
2158 Fix some compiler warnings.
2159 (tt_face_get_metrics): Ditto.
2160
2161
2162 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
2163 character advances.
David Turner1ae134a2006-02-21 16:50:17 +00002164
David Turnerdd0f3602006-02-20 23:50:21 +000021652006-02-20 David Turner <david@freetype.org>
2166
David Turner0b5dc4d2006-02-21 22:36:23 +00002167 Support binary compatibility with the X.Org server's Xfont library.
Werner Lembergd41aecd2006-02-21 08:08:14 +00002168 Note that this change unfortunately prevents memory optimizations
2169 for the embedded bitmap loader.
David Turnerdd0f3602006-02-20 23:50:21 +00002170
Werner Lembergd41aecd2006-02-21 08:08:14 +00002171 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
2172 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
2173 version 2.1.8.
David Turnerdd0f3602006-02-20 23:50:21 +00002174
Werner Lembergd41aecd2006-02-21 08:08:14 +00002175 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
2176 FT_Size_Request.
2177 (sfnt_interface): Updated.
2178
2179 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
2180 ttsbit0.c.
2181 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
2182
2183 * src/sfnt/ttsbit.h: Updated.
David Turnerdd0f3602006-02-20 23:50:21 +00002184
David Turner0880ac32006-02-17 17:23:13 +000021852006-02-17 David Turner <david@freetype.org>
2186
Werner Lembergf145e312006-02-19 16:12:18 +00002187 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
2188 functions anymore. This ensures that all FT_BASE internal functions
2189 are available for dynamic linking.
2190
2191 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
2192 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
2193 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
2194 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
2195 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
2196 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
2197 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
2198 cache sub-system. We try to recognize old legacy signatures with a
2199 gross hack (hope it works).
David Turner0880ac32006-02-17 17:23:13 +00002200
Werner Lemberg1fae6692006-02-17 16:16:40 +000022012006-02-17 Werner Lemberg <wl@gnu.org>
2202
2203 * devel/ftoption.h: Synchronize with
2204 include/freetype/config/ftoption.h.
2205
David Turnercda2d952006-02-16 22:45:31 +000022062006-02-16 David Turner <david@freetype.org>
2207
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002208 Massive changes to the internals to respect the internal object
2209 layouts and exported functions of FreeType 2.1.7. Note that the
2210 cache sub-system cannot be fully retrofitted, unfortunately.
David Turnercda2d952006-02-16 22:45:31 +00002211
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002212 * include/freetype/config/ftoption.h
2213 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
2214
2215 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
2216 include/freetype/cache/ftccmap.h,
2217 include/freetype/internal/ftcalc.h,
2218 include/freetype/internal/ftdriver.h,
2219 include/freetype/internal/ftmemory.h,
2220 include/freetype/internal/ftobjs.h,
2221 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
2222 include/freetype/internal/t1types.h,
2223 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
2224 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
2225 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
2226 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
2227 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
2228 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
2229 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
2230 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
2231 structures.
2232
2233 Move newly added structure elements to the end of the affected
2234 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
2235 defined) to assure binary compatibility with older FreeType
2236 versions.
2237 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
2238 functions:
2239
2240 ft_stub_set_char_sizes
2241 ft_stub_set_pixel_sizes
2242
2243 Rename the following internal functions to provide the old function
2244 names as stubs:
2245
2246 FT_Alloc -> ft_mem_alloc
2247 FT_QAlloc -> ft_mem_qalloc
2248 FT_Realloc -> ft_mem_realloc
2249 FT_QRealloc -> ft_mem_qrealloc
2250 FT_Free -> ft_mem_free
2251 FT_Alloc_Debug -> ft_mem_alloc_debug
2252 FT_QAlloc_Debug -> ft_mem_qalloc_debug
2253 FT_Realloc_Debug -> ft_mem_realloc_debug
2254 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
2255 FT_Free_Debug -> ft_mem_free_debug
David Turnercda2d952006-02-16 22:45:31 +00002256
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +000022572006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
2258
2259 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
2260 unused `max_points' and `max_contours'.
David Turnercda2d952006-02-16 22:45:31 +00002261
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002262 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
2263 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
2264
2265 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
2266 `max_components'.
2267
2268 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
2269 `loadSize' and `loadStack'.
2270
2271 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
2272 src/sfnt/ttload.c (tt_face_load_maxp): Update.
2273
2274 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
2275 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
2276 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
2277 defined.
2278
2279 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
2280 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
2281 (finally!)
2282
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002283
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002284 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
2285 and `face->root' is set later in `sfnt_load_face'. Here, we try to
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002286 make this work for _all_ tables. Also improve tracing messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002287
2288 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
2289 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
2290 then exit. Error handling or setting face->root is done later in
2291 `sfnt_load_face'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002292
2293 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
2294 Mac bitmap-only fonts are not scalable.
2295 Check that `face->header.Units_Per_EM' is not zero.
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002296 (LOAD_, LOADM_): Emit pretty trace messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002297
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00002298 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
2299 from `eblc'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00002300
2301 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
2302 (load_format_20, load_format_25, tt_face_get_ps_name): Use
2303 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
2304
Werner Lemberg52254022006-02-15 06:05:52 +000023052006-02-14 Werner Lemberg <wl@gnu.org>
2306
2307 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
2308 documentation that negative strength values are possible.
2309 Give an example call.
2310
2311 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
2312 documentation of `outline' field.
2313
2314 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
2315 * src/sfnt/sfdriver.c: Include ttmtx.h.
2316
2317 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
2318
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +000023192006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2320
Wu, Chia-I (吳佳一)3dc00182006-02-14 13:36:28 +00002321 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
2322
23232006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
2324
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002325 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
2326 return error if table is missing.
2327 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
2328
2329 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
Werner Lemberg52254022006-02-15 06:05:52 +00002330 tables. The last change makes Mac bitmap-only font not load and
2331 this fixes it.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002332
Werner Lemberg52254022006-02-15 06:05:52 +00002333 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
2334 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00002335
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +000023362006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2337
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002338 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
Werner Lemberg814839a2006-07-28 11:55:48 +00002339 split from `load_hhea'.
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00002340
2341 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
2342 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
2343
2344 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
2345
23462006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2347
Wu, Chia-I (吳佳一)e0decd12006-02-14 07:20:06 +00002348 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
2349 code...
2350
23512006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2352
Werner Lemberg52254022006-02-15 06:05:52 +00002353 Clean up the SFNT_Interface. In this pass, we want to treat the
2354 font directory (offset table and table directory) as a normal table
2355 like the others. This also means that TTCs are no longer recognized
2356 there but in `init_face'.
Wu, Chia-I (吳佳一)65863a52006-02-14 07:01:29 +00002357
2358 * include/freetype/internal/sfnt.h (SFNT_Interface),
2359 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
2360 combined and renamed to `load_font_dir'.
2361
2362 * src/sfnt/ttload.h, src/sfnt/ttload.c:
2363 s/sfnt_dir_check/check_table_dir/.
2364 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
2365 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
2366 and renamed to `tt_face_load_font_dir'.
2367
2368 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
2369
23702006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
2371
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002372 Clean up the SFNT_Interface. Table loading functions are now named
Werner Lemberg52254022006-02-15 06:05:52 +00002373 after the tables' tags; `hdmx' is TrueType-specific and thus the
2374 code is moved to the truetype module; `get_metrics' is moved here
2375 from the truetype module so that the code can be shared with the cff
2376 module.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002377
2378 This pass involves no real changes. That is, the code is moved
2379 verbatim mostly. The only exception is the return value of
2380 `tt_face_get_metrics'.
2381
2382 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
2383 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
2384 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
2385 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
David Turnercda2d952006-02-16 22:45:31 +00002386
Werner Lemberg52254022006-02-15 06:05:52 +00002387 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
2388 tables' loading and parsing code is moved to here.
2389 Move `tt_face_get_metrics' here from the truetype module. The
2390 return value is changed from `void' to `FT_Error'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002391
2392 * include/freetype/internal/fttrace.h: New trace: ttmtx.
2393
2394 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
2395 parsing code is moved here.
Werner Lemberg814839a2006-07-28 11:55:48 +00002396 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00002397 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
2398
2399 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
2400
2401 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2402
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +000024032006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2404
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002405 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
2406
2407 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
Werner Lembergd39fda22006-02-12 21:49:21 +00002408 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
2409 to it later in `af_latin_hints_link_segments'.
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00002410
24112006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
2412
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002413 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
Werner Lembergd39fda22006-02-12 21:49:21 +00002414 to enable autofit CJK script support. (#define'd by default.)
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002415
2416 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
2417
Werner Lembergd39fda22006-02-12 21:49:21 +00002418 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
2419 that `edge_distance_threshold' is always set.
2420 (af_latin_hints_link_segments): Potential divide-by-zero bug.
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00002421 Use latin constant in the scoring formula.
2422
2423 * src/autofit/afcjk.c: Minor updates due to the above three changes.
2424
2425 * docs/TODO, docs/CHANGES: Updated.
2426
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +000024272006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
2428
2429 Introduce experimental autofit CJK module based on akito's autohint
2430 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
2431
2432 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
2433 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
2434 Add CJK module based on akito's autohint patch.
2435
2436 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002437 overlap length of the segments.
2438 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002439
2440 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
Werner Lembergd1d4bff2006-02-10 22:15:22 +00002441 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
2442 `FT_LOCAL'.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00002443 Use the character given by the caller.
2444 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
2445 the thresholds.
2446
2447 * src/autofit/afloader.c (af_loader_load_g): Respect
2448 AF_SCALER_FLAG_NO_ADVANCE.
2449
Werner Lemberg6be99f92006-02-09 07:38:57 +000024502006-02-09 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002451
Werner Lemberg6be99f92006-02-09 07:38:57 +00002452 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00002453
Werner Lemberg6be99f92006-02-09 07:38:57 +000024542006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002455
Werner Lemberg6be99f92006-02-09 07:38:57 +00002456 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
2457 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
2458 2005-11-02).
2459
24602006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2461
2462 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
2463 option on UNIX platform. It has been broken since 2006-01-11.
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00002464
Werner Lemberg38beff02006-02-01 05:14:25 +000024652006-02-01 Werner Lemberg <wl@gnu.org>
2466
2467 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
2468 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
2469
Werner Lemberg03379b62006-02-01 05:40:06 +00002470 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
2471 change from 2006-01-31).
2472 (TOP_DIR, OBJ_DIR): Update.
2473
Werner Lemberg9a8006b2006-02-01 06:07:05 +00002474 * builds/unix/install.mk (install): Fix path for ftmodule.h.
2475
Werner Lemberg54a79c82006-02-01 07:54:07 +00002476 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
2477 `?=' where appropriate.
Werner Lemberg8a4de0d2006-02-01 07:52:11 +00002478
2479 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
2480 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
2481
Werner Lemberg38beff02006-02-01 05:14:25 +000024822006-01-31 Werner Lemberg <wl@gnu.org>
Werner Lemberg59939242006-01-31 20:17:42 +00002483
2484 Implement new, simplified module selection. With GNU make it is now
2485 sufficient to modify a single file, `modules.cfg', to control the
2486 inclusion of modules and base extension files.
2487
2488 This change also fixes the creation of ftmodule.h; it now depends on
2489 `modules.cfg' and thus is rebuilt only if necessary.
2490
2491 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
2492 default location.
2493
2494 * modules.cfg: New file.
2495
2496 * builds/freetype.mk: Don't include `modules.mk'.
2497 Include all `rules.mk' files as specified in `modules.cfg'.
2498 (FTOPTION_FLAG, FTOPTION_H): New variables.
2499 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
2500 Add FTOPTION_FLAG.
2501 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
2502 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
2503 (INCLUDES): Add DEVEL_DIR.
2504 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
2505 OBJ_M, OBJ_S): Use `:=', not `='.
2506 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
2507 (distclean): Add remove_ftmodule_h.
2508
2509 * builds/modules.mk: (MODULE_LIST): Removed.
2510 (make_module_list, clean_module_list): Replace targets
2511 with...
2512 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
2513 variables. Reason for the change is that it is not possible to have
2514 a phony prerequisite which is run only if the target file must be
2515 rebuilt (phony prerequisites act like subroutines and are *always*
2516 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
2517 changed.
2518 Update all callers.
2519 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
2520 `modules.cfg'.
2521
2522 * builds/toplevel.mk: Rewrite and simplify module handling.
2523 (MODULES_CFG, FTMODULE_H): New variables.
2524 Include MODULES_CFG.
2525 (MODULES): New variable to include all `module.mk' and `rules.mk'
2526 files. We no longer use make's `wildcard' function for this.
2527
2528 * Makefile (USE_MODULES): Remove. Update all users.
2529 (OBJ_DIR): Define it here.
2530
2531 * src/*/module.mk: Change
2532
2533 make_module_list: foo
2534 foo: ...
2535
2536 to
2537
2538 FTMODULE_H_COMMANDS += FOO
2539 define FOO
2540 ...
2541 endef
2542
2543 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
2544
2545 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
2546
2547 * builds/unix/detect.mk (setup): Always execute `configure' script.
2548 (have_mk): Rename to...
2549 (have_Makefile): This.
2550 Don't use `strip' function.
2551
2552 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
2553 defined.
2554 (have_mk): Don't use `strip' function.
2555 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
2556 accordingly).
2557
2558 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
2559
2560 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
2561 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
2562 BUILD_DIR but DEVEL_DIR for development header files.
2563
2564 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
2565 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
2566 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
2567
2568 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
2569 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
2570
2571 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
2572 development header files.
2573 Don't define PLATFORM.
2574
2575 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
2576 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
2577 Be more verbose.
2578
2579 * include/freetype/config/ftmodule.h: Add comments -- this file is
2580 no longer used if FreeType is built with GNU make.
2581
2582 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
2583 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
2584 Other minor updates.
2585
2586 * modules.txt: Removed. Contents included in `modules.cfg'.
2587
2588
2589 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
2590 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
2591
2592 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
2593 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
2594 [FT_STRICT_ALIASING]: Implement.
2595
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +000025962006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2597
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002598 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
Werner Lemberg59939242006-01-31 20:17:42 +00002599 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
2600 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
2601 units_per_EM, ascender - descender).
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00002602
26032006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
2604
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002605 * include/freetype/internal/t1types.h (AFM_FontInfo),
2606 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
2607 `Ascender', and `Descender' from an AFM.
2608
2609 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
2610
Werner Lemberg59939242006-01-31 20:17:42 +00002611 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
2612 be changed after file attachment.
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00002613
Werner Lemberg7596fd32006-01-28 16:29:29 +000026142006-01-28 Werner Lemberg <wl@gnu.org>
2615
2616 * src/*/module.mk (.PHONY): Add.
2617
Werner Lemberg68a15eb2006-01-28 07:30:58 +000026182006-01-27 Werner Lemberg <wl@gnu.org>
2619
2620 * README, docs/FTL.TXT: Fix email address for bug reports.
2621 Other minor formatting.
2622
Werner Lembergf6a25502006-01-28 10:38:15 +00002623 * devel/ftoption.h: Synchronize with
2624 include/freetype/config/ftoption.h.
2625
2626 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
2627 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
2628 whitespace.
2629
2630 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
2631 renderer classes.
2632
David Turnerff0e9e62006-01-27 09:15:53 +000026332006-01-27 David Turner <david@freetype.org>
2634
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002635 * builds/unix/configure.ac: Fix build problem on Cygwin.
David Turnercda2d952006-02-16 22:45:31 +00002636
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002637 * builds/unix/install.mk (install): Don't install the internal
2638 headers, and remove existing ones if found in the target install
2639 directory.
David Turner7213b4f2006-01-27 16:42:32 +00002640
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002641 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
2642 if the warp hinter isn't active (it shouldn't, still experimental).
David Turner6a681fa2006-01-27 12:11:22 +00002643
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002644 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
Werner Lembergbe3c9812006-01-27 14:16:16 +00002645 and `otvalid' from the list of modules that are linked statically
2646 to a given FreeType library. Functionality has been moved to the
2647 `ftvalid' CVS module.
David Turner6a681fa2006-01-27 12:11:22 +00002648
Werner Lembergbe3c9812006-01-27 14:16:16 +00002649 Note also that current Make-based build system still compiles the
2650 modules though.
David Turner6a681fa2006-01-27 12:11:22 +00002651
Werner Lembergbe3c9812006-01-27 14:16:16 +00002652 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
2653 which controls the definitions of the memory management functions to
2654 avoid warnings with recent versions of GCC. This macro is only here
2655 to be disabled, in case we detect problems with the new scheme.
David Turner6a681fa2006-01-27 12:11:22 +00002656
Werner Lembergbe3c9812006-01-27 14:16:16 +00002657 NOTE: Disable macro to use the memory debugger -- this will be fixed
2658 later!
2659
2660 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
2661 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
2662 New versions.
2663
2664
2665 * builds/win32/visualc/freetype.dsp: Updating project file to
2666 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
2667 compilation.
2668
2669
2670 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
2671 macro FT2_BUILD_LIBRARY when compiling the library.
2672
2673 * include/freetype/config/ftheader.h: Remove inclusions of internal
2674 headers except if the macro FT2_BUILD_LIBRARY is defined.
2675
2676
2677 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
2678 AFM_FontInfo): Move structure declarations to...
2679 * include/freetype/internal/t1types.h: This file.
2680
2681
2682 * (many files): Fix compiler warnings.
2683 Various minor reorganizations.
2684
2685
2686 * src/cff/cffload.c (cff_font_done): Don't free static array
2687 `subfonts'.
2688
2689 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
2690 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
2691
Werner Lemberg68a15eb2006-01-28 07:30:58 +00002692
2693 Get rid of writable static variables (i.e., the string table) in
2694 afmparse, and fix compilation in FT2_MULTI mode.
2695
Werner Lembergbe3c9812006-01-27 14:16:16 +00002696 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
2697 (AFM_MAX_ARGUMENTS): Define...
2698 * src/psaux/afmparse.h: Here.
2699 * src/psaux/Jamfile (_sources): Add afmparse.
2700
2701 * src/psaux/psconv.c: Include psconv.h.
2702
2703 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
2704 FT_INTERNAL_POSTSCRIPT_AUX_H.
2705 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
David Turnerff0e9e62006-01-27 09:15:53 +00002706
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +000027072006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2708
Wu, Chia-I (吳佳一)bcc438b2006-01-23 14:12:40 +00002709 * include/freetype/freetype.h (FT_Select_Size): Rename the second
2710 argument from `idx' to `strike_index'.
2711 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
2712 this enum.
2713
2714 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
2715 FT_REQUEST_HEIGHT): New macros to get the width and height of a
2716 request, in fractional pixels.
2717
2718 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
2719 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
2720 FT_Request_Metrics): New base functions to set the font metrics. They
2721 were part of FT_Select_Size/FT_Request_Size and are made independent
2722 functions so that metrics are not set again and again.
2723
2724 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
2725 only when driver's size_select/size_request is NULL. That is, drivers
2726 should set the metrics themselves.
2727 (FT_Match_Size): Round before matching. This was what we did and it
2728 does cause some problems without rounding.
2729
2730 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
2731 (tt_size_select): Set the font metrics.
2732 s/index/strike_index/.
2733 The scaled metrics are always preferred over strikes' metrics, even
2734 when some strike is selected. This is done because the strikes'
2735 metrics are not reliable, e.g., the sign of the descender is wrong for
2736 some fonts.
2737
2738 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
2739 (tt_size_request): Set the font metrics.
2740 Call cff_size_select/tt_size_select when some strike is matched.
2741
2742 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
2743 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
2744 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
2745 Set the font metrics.
2746 s/index/strike_index/.
2747
2748 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
2749 files were committed. Just a catch-up.
2750 (PS_Conv_ToFixed): Remove the `goto'.
2751 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
2752
2753 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
2754 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
2755 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
2756 advertised metrics in `available_sizes' are different from those
2757 actually used.
2758
27592006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2760
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +00002761 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
2762 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
2763
Werner Lemberged70ca52006-01-23 07:28:03 +000027642006-01-22 Werner Lemberg <wl@gnu.org>
2765
2766 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
Werner Lemberg4836f952006-06-06 12:54:08 +00002767 `texinfo' CVS module at savannah.gnu.org.
Werner Lemberged70ca52006-01-23 07:28:03 +00002768
Werner Lemberg1be9ebf2006-01-22 06:58:16 +000027692006-01-21 Werner Lemberg <wl@gnu.org>
2770
2771 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
2772
Werner Lembergb36bf522006-01-22 07:09:54 +00002773 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
2774 to avoid compiler warnings.
2775
2776 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
2777 shadowing variable declarations.
2778 Fix warning parameters and replace printf with AF_LOG.
2779 (af_warper_compute): Remove unused variable.
2780
David Turnerbb4edc92006-01-21 14:31:45 +000027812006-01-20 David Turner <david@freetype.org>
2782
Werner Lemberg1be9ebf2006-01-22 06:58:16 +00002783 Adding experimental implementation of `warp hinting' (new hinting
2784 algorithm for gray-level and LCD rendering). It is disabled by
2785 default, you need to #define AF_USE_WARPER in aftypes.h.
2786
2787 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
2788 New function.
2789 * src/autofit/afhints.h: Updated.
2790
2791 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
2792 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
2793 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
2794 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
2795 appropriately.
2796
2797 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
2798 Isolate code for adjusting metrics.
2799
2800 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
2801 default).
2802
2803 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
2804
2805 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
2806
2807 * src/autofit/Jamfile (_sources): Add afwarp.
David Turnerbb4edc92006-01-21 14:31:45 +00002808
David Turner8c16ed32006-01-19 13:10:49 +000028092006-01-19 David Turner <david@freetype.org>
2810
Werner Lemberge7be64e2006-01-21 17:27:32 +00002811 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
2812 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
David Turner8c16ed32006-01-19 13:10:49 +00002813
Werner Lemberg8b560632006-01-19 08:30:58 +000028142006-01-19 Brian Weed <bw@imaginengine.com>
2815
2816 * builds/win32/visualc/freetype.dsp: Updated.
2817
Werner Lemberg47bf95d2006-01-17 16:55:32 +000028182006-01-17 Werner Lemberg <wl@gnu.org>
2819
2820 Use pscmap service in CFF module.
2821
2822 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
2823 (cff_sid_to_glyph_name): New function.
2824 (cff_cmap_unicode_init, cff_cmap_unicode_done,
2825 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
2826 service.
2827 (cff_cmap_unicode_class_rec): Updated.
2828 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
2829
2830
2831 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
2832 return value.
2833
2834
2835 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
Werner Lemberge7be64e2006-01-21 17:27:32 +00002836 to avoid compiler warnings regarding type-punning.
Werner Lemberg47bf95d2006-01-17 16:55:32 +00002837
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +000028382006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
2839
2840 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
Werner Lembergce94c7a2006-01-16 22:35:33 +00002841 implement an AFM parser.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002842
2843 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
Werner Lembergce94c7a2006-01-16 22:35:33 +00002844 conversion functions (e.g., PS real number => FT_Fixed) for the
2845 PS_Parser and AFM_Parser. Some of the functions are taken, with
2846 some modifications, from the file psobjs.c.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002847
2848 * src/psaux/psobjs.c: Use functions from psconv.c.
2849
Werner Lembergce94c7a2006-01-16 22:35:33 +00002850 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002851 `AFM_Parser' to the `psaux' service.
2852
Werner Lembergce94c7a2006-01-16 22:35:33 +00002853 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
2854 those new files.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002855
2856 * src/tools/test_afm.c: A test program for AFM parser.
2857
Werner Lembergce94c7a2006-01-16 22:35:33 +00002858 * include/freetype/internal/services/svkern.h: New file providing a
2859 `Kerning' service. It is currently only used to get the track
2860 kerning information.
2861
2862 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
2863 macro.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002864
2865 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
2866 src/type1/t1afm.h: Update to use the AFM parser.
2867 Provide the `Kerning' service.
2868
2869 * include/freetype/freetype.h, src/base/ftobjs.c: New API
2870 `FT_Get_Track_Kerning'.
2871
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +000028722006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2873
Wu, Chia-I (吳佳一)ea1e8d32006-01-15 15:01:45 +00002874 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
2875 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
2876 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
2877 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
2878
2879 * docs/CHANGES: Mention that vertical metrics are synthesized for
2880 fonts not having this info.
2881
28822006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2883
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002884 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002885 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002886 vertical metrics.
2887
2888 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002889 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
2890 which are monotone.
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002891
2892 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002893 formattings in vertical metrics faking. There is still room for
2894 improvements (and so does the CFF module).
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002895
28962006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2897
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002898 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
2899 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002900 the linear advance fields as they are only used by the outline
2901 glyphs.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002902
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002903 * include/freetype/freetype.h: Documentation updates and
2904 clarifications.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002905 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
2906 change need be made to the code.
2907
2908 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
2909 decide whether to use the auto-hinter according to documentation.
2910 There should to be no real difference.
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002911 Some checks (e.g., is text height positve?) after the glyph is
2912 loaded.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002913 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
2914 Be careful that scales won't be negative.
2915
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +000029162006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
2917
2918 * docs/CHANGES: Mention the size selection change.
2919
2920 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
2921 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
2922 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
Werner Lemberg3d8eeb82006-01-14 07:10:45 +00002923 matching for requests of type NOMINAL and REAL_DIM.
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +00002924
2925 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
2926 `pixel_height' is used for nominal height.
2927
2928 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
2929 face is bitmap only and driver doesn't provide `request_size'. This
2930 is added merely for completion as no driver satisfies the conditions.
2931
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +000029322006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2933
2934 Introduce new size selection interface.
2935
Werner Lembergf1c2b912006-01-13 14:53:28 +00002936 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +00002937 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
2938 `select_size'.
2939
2940 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
2941 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
2942 (FT_Select_Size, FT_Request_Size): API additions to export the new
2943 size selection interface.
2944
2945 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
2946 `FT_Request_Size'.
2947
2948 * include/freetype/internal/ftobjs.h (FT_Match_Size),
2949 src/base/ftobjs.c (FT_Match_Size): New function to match a size
2950 request against `available_sizes'. Drivers supporting bitmap strikes
2951 can use this function to implement `request_size'.
2952
2953 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
2954 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
2955 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
2956 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
2957 Update to new size selection interface.
2958
2959 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
2960 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
2961 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
2962 selection interface.
2963 Make `strike_index' FT_ULong and always defined.
2964 Use `load_strike_metrics' provided by SFNT interface.
2965
29662006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2967
2968 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
2969 `load_strike_metrics' used to load the strike's metrics.
2970
2971 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2972 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
2973
2974 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
2975
2976 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
2977 nominal size unless it is obviously incorrect.
2978
2979 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
2980 FNT driver.
2981
Werner Lemberg8ab09792006-01-12 08:12:27 +000029822006-01-12 Werner Lemberg <wl@gnu.org>
2983
2984 Prepare use of pscmap service within CFF module.
2985
2986 * include/freetype/internal/services/svpscmap.h: Include
2987 FT_INTERNAL_OBJECTS_H.
2988 (PS_Unicode_Index_Func): Removed. Unused.
2989 (PS_Macintosh_Name_Func): Renamed to...
2990 (PS_Macintosh_NameFunc): This.
2991 Update all callers.
2992 (PS_Adobe_Std_Strings_Func): Renamed to...
2993 (PS_Adobe_Std_StringsFunc): This.
2994 Update all callers.
2995 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
2996 Add `cmap' member.
2997 Update all callers.
2998 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
2999 Update all callers.
3000 (PS_Glyph_NameFunc): New typedef.
3001 (PS_Unicodes_InitFunc): Change arguments to expect a function
3002 and generic data pointer which returns a glyph name from a given
3003 index.
3004
3005 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
3006 ps_unicodes_char_next, pscmaps_interface): Updated.
3007
3008 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
3009
3010 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
3011 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
3012
3013 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
3014 (t1_cmap_unicode_init, t1_cmap_unicode_done,
3015 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
3016 t1_cmap_unicode_class_rec): Updated.
3017
3018 * src/type42/t42types.h (T42_FaceRec): Updated.
3019
30202006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)356a4d82006-01-12 03:33:16 +00003021
3022 * include/freetype/ftmac.h: Add declaration of new functions
3023 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
3024 were introduced by the jumbo patch on 2006-01-11.
3025
Werner Lemberg8ab09792006-01-12 08:12:27 +000030262006-01-11 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00003027
Werner Lembergadf828f2006-01-11 10:08:49 +00003028 Fix Savannah bug #15056 and use pscmap service in psaux module.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00003029
Werner Lembergadf828f2006-01-11 10:08:49 +00003030 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
3031 FT_UInt32 for `glyph_index'.
3032 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
3033 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
3034 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
3035 FT_UInt32.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00003036
Werner Lembergadf828f2006-01-11 10:08:49 +00003037 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
3038 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
3039 variant glyph (this is, it has non-leading `.' in its name).
3040 (compare_uni_maps): Sort base glyphs before variant glyphs.
3041 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
3042 Reallocate only if number of used entries is much smaller.
3043 Updated to handle variant glyphs.
3044 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
3045 over variant glyphs.
3046 Simplify code.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00003047
Werner Lembergadf828f2006-01-11 10:08:49 +00003048 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
3049 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
3050 t1_cmap_unicode_char_next): Use pscmap service.
3051 (t1_cmap_unicode_done): Updated.
3052
3053 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
3054 (T1_CMapUnicode): Use PS_Unicodes structure.
3055
30562006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3057
3058 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
3059 Intel, as reported by Sean McBride <sean@rogue-research.com> on
3060 2005-08-24.
3061
3062 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
3063 functions on Tiger.
3064
3065 * builds/unix/configure.ac: Add options and autochecks for Carbon
3066 functions availabilities, for MacOS X.
3067
3068 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00003069 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
Werner Lembergadf828f2006-01-11 10:08:49 +00003070 macros to avoid unavailable functions.
3071 ftmac.c must be compiled without `-strict ansi', because it disables
3072 cpp macro to use ToolBox system call.
3073
3074 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
3075 macros to avoid unavailable functions.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00003076
3077 * builds/mac/README: Detailed notes on function availabilities.
3078
3079 * docs/CHANGES: Notes about (possible) incompatibilities.
3080
Werner Lemberge8f92af2006-01-08 13:43:30 +000030812006-01-08 Werner Lemberg <wl@gnu.org>
3082
Werner Lemberg6cdab922006-01-08 22:34:01 +00003083 * docs/CHANGES: Updated.
3084
30852006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
3086
3087 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
3088 declaration.
3089
3090 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
3091
30922006-01-07 Werner Lemberg <wl@gnu.org>
3093
Werner Lemberge8f92af2006-01-08 13:43:30 +00003094 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
Werner Lemberg30bd2842006-01-08 19:38:42 +00003095 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
3096
3097 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
3098 Reported by Niels Boldt <nielsboldt@gmail.com>.
Werner Lemberge8f92af2006-01-08 13:43:30 +00003099
31002005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00003101
Werner Lemberg05cda082006-01-08 13:37:15 +00003102 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
3103 MPW compiler.
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00003104
David Turnere6bb9532005-12-23 13:32:06 +000031052005-12-23 David Turner <david@freetype.org>
3106
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003107 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
3108 refdoc' works correctly to generate the API reference in
3109 `docs/reference'.
David Turnere6bb9532005-12-23 13:32:06 +00003110
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003111 * src/tools/docmaker/tohtml.py (print_html_field,
3112 print_html_field_list): Update to output nicer fields lists in the
3113 API reference.
David Turnere6bb9532005-12-23 13:32:06 +00003114
3115 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003116 forces auto-hinting.
David Turnere6bb9532005-12-23 13:32:06 +00003117
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003118 * freetype/freetype.h: Updating the documentation for
3119 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
David Turnere6bb9532005-12-23 13:32:06 +00003120
Werner Lemberg6be99f92006-02-09 07:38:57 +000031212005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00003122
Werner Lemberg083ba0b2005-12-23 15:10:54 +00003123 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
3124 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
3125 unsupported formats (fbit, NFNT). The number of available faces are
3126 passed via face->num_faces. If bitmap faces are embedded in sfnt
3127 resource, face->num_fixed_size is correctly set. In public API,
3128 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
3129 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00003130
3131 * doc/CHANGES: Mention the changes.
3132
Wu, Chia-I (吳佳一)ce34d122005-12-17 13:12:49 +000031332005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
3134
3135 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
3136 correctly (so that memory debug system won't panic).
3137
Wu, Chia-I (吳佳一)dcb8b712005-12-16 14:27:14 +000031382005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
3139
3140 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
3141 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
3142
3143 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
3144
3145 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3146 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
3147 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
3148
3149 * doc/CHANGES: Mention the changes.
3150
David Turner5b5f3822005-12-14 16:37:15 +000031512005-12-13 David Turner <david@freetype.org>
3152
Werner Lembergb79b5132005-12-20 12:01:58 +00003153 Change the implementation of the LIGHT hinting mode to completely
3154 disable horizontal hinting. This is an experimental effort to
3155 integrate David Chester's latest patch without affecting the other
3156 hinting modes as well.
David Turner5b5f3822005-12-14 16:37:15 +00003157
Werner Lembergb79b5132005-12-20 12:01:58 +00003158 Note that this doesn't force auto-hinting for all fonts, however.
David Turner5b5f3822005-12-14 16:37:15 +00003159
Werner Lembergb79b5132005-12-20 12:01:58 +00003160 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
3161 scaler_fiags here but...
3162 (af_glyph_hints_rescale): Here.
David Turner8def3c82005-12-14 16:38:31 +00003163
Werner Lembergb79b5132005-12-20 12:01:58 +00003164 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
3165 hinting for `light' hinting mode.
David Turnerdb0182f2005-12-14 21:16:33 +00003166
David Turnerdb0182f2005-12-14 21:16:33 +00003167
Werner Lembergb79b5132005-12-20 12:01:58 +00003168 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
3169 same location as other generated objects (i.e., within the `objs'
3170 directory of the current directory).
David Turnerdb0182f2005-12-14 21:16:33 +00003171
Werner Lembergb79b5132005-12-20 12:01:58 +00003172
3173 Add support for an embedded `BDF ' table within SFNT-based bitmap
3174 font files. This is used to store atoms & properties from the
3175 original BDF fonts that were used to generate the font file.
3176
3177 The feature is controlled by TT_CONFIG_OPTION_BDF within
3178 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
3179 font files.
3180
3181 At the moment, this is still experimental, the BDF table format
3182 isn't cast into stone yet.
3183
3184 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
3185 macro.
3186
3187 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
3188
3189 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
3190 [TT_CONFIG_OPTION_BDF]: New structure.
3191 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
3192
3193 * include/freetype/ttags.h (TTAG_BDF): New macro.
3194
3195 * src/sfnt/Jamfile (_sources): Add ttbdf.
3196
3197 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
3198
3199 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
3200 FT_SERVICE_BDF_H.
3201 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
3202 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
3203 (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
3204
3205 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
3206
3207 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
3208 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
3209 tt_face_free_bdf_props.
3210
3211 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
David Turner89a2a4b2005-12-14 20:38:15 +00003212
Werner Lemberg364db082005-12-07 20:34:11 +000032132005-12-07 Werner Lemberg <wl@gnu.org>
3214
3215 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
3216 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
3217
Wu, Chia-I (吳佳一)a3690cd2005-12-06 08:24:01 +000032182005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
3219
3220 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
3221 initialized twice.
3222 size->strike_index is not initialized.
3223
Werner Lemberg2a0903a2005-12-03 08:13:43 +000032242005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
3225
Werner Lemberg3b8db662005-12-06 10:47:44 +00003226 * src/type42/t42objs.c (T42_Face_Init): Replace call to
Werner Lemberg2a0903a2005-12-03 08:13:43 +00003227 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
3228
Werner Lembergb797fdb2005-11-30 08:48:32 +000032292005-11-30 Werner Lemberg <wl@gnu.org>
3230
3231 * docs/CHANGES: Document ftdump's `-v' option.
Werner Lembergb5d88e82005-11-30 08:55:51 +00003232 Document latest charmap code changes.
Werner Lembergb797fdb2005-11-30 08:48:32 +00003233
Werner Lemberg44e47d52005-11-30 18:47:49 +00003234 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
3235 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
3236
Wu, Chia-I (吳佳一)a28bc4c2005-11-30 02:39:10 +000032372005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
3238
3239 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
3240 tt_cmap12_char_map_binary): Fix compiler warnings.
3241
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +000032422005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
3243
Werner Lemberg44e47d52005-11-30 18:47:49 +00003244 Major update to distinguish between unsorted and overlapping
3245 segments for cmap format 4. For overlapping but sorted segments,
3246 which is previously considered unsorted, we still use binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003247
David Turner5b5f3822005-12-14 16:37:15 +00003248 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003249 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
3250
3251 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
David Turner5b5f3822005-12-14 16:37:15 +00003252 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003253 (tt_cmap4_reset): Removed.
3254 (tt_cmap4_init): Updated accordingly.
3255 (tt_cmap4_next): Updated accordingly.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003256 Take care of overlapping segments.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003257 (tt_cmap4_validate): Make sure the subtable is large enough.
3258 Do not check glyph_ids because some fonts set the length wrongly.
Werner Lemberg05cda082006-01-08 13:37:15 +00003259 Also, if all segments have offset 0, glyph_ids is always invalid.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003260 It does not cause any problem so far only because the check misses
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003261 equality.
Werner Lemberg44e47d52005-11-30 18:47:49 +00003262 Distinguish between unsorted and overlapping segments.
3263 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
3264 to do `charcode => glyph index' by linear/binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00003265 (tt_cmap4_char_index, tt_cmap4_char_next): Use
3266 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
3267 (tt_face_build_cmaps): Treat the return value of validator as flags
3268 for cmap.
3269
32702005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
3271
Werner Lemberg44e47d52005-11-30 18:47:49 +00003272 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
3273 New structures and functions for fast `next char'.
3274 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
3275 index' by binary search.
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +00003276 (tt_cmap12_char_index, tt_cmap12_char_next): Use
3277 tt_cmap12_char_map_binary.
3278 (tt_face_build_cmaps): Check table and offset correctly (equality is
3279 missing).
3280
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032812005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003282
3283 * builds/amiga/smakefile: Adjusted the compiler options
3284 to the current sources, now really builds the gxvalid, gzip
3285 and psnames modules.
3286
3287 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
3288 in the file cache was off by one byte which could cause false
3289 errors in font files.
3290
Werner Lemberg6be99f92006-02-09 07:38:57 +000032912005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)6b1c5972005-11-24 05:16:57 +00003292
3293 * builds/mac/FreeType.m68k_far.make.txt,
3294 builds/mac/FreeType.m68k_cfm.make.txt,
3295 builds/mac/FreeType.ppc_classic.make.txt,
3296 builds/mac/FreeType.ppc_carbon.make.txt:
3297 Updated for MPW to build all available modules.
3298
Werner Lemberg4e03fe72006-04-29 06:20:09 +000032992005-11-21 Håvard Wall <haavardw@ifi.uio.no>
Werner Lemberg67ba2112005-11-21 17:32:03 +00003300
3301 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
3302 memory leak.
3303
Werner Lemberg840232a2005-11-21 12:36:42 +000033042005-11-21 Werner Lemberg <wl@gnu.org>
3305
3306 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
3307
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +000033082005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3309
Werner Lemberg840232a2005-11-21 12:36:42 +00003310 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
Werner Lemberg05cda082006-01-08 13:37:15 +00003311 added twice to image_start if image_format was 2 or 5.
Wu, Chia-I (吳佳一)275be9b2005-11-21 03:05:34 +00003312
33132005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
3314
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +00003315 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
3316 before loading the table directory.
3317
3318 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
3319 tt_face_load_directory): Delay sfnt_dir_check from
3320 tt_face_load_sfnt_header to tt_face_load_directory.
3321
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +000033222005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
3323
3324 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
3325 error code.
3326 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
3327 is synthesized into a TTC font with one offset table.
3328 (tt_face_load_sfnt_header): Use sfnt_init.
Werner Lemberg05cda082006-01-08 13:37:15 +00003329 Fix an invalid access if the font is TTC and face_index is -1.
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +00003330
Werner Lemberg1a293d62005-11-18 08:23:06 +000033312005-11-18 Werner Lemberg <wl@gnu.org>
3332
3333 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
3334 of metrics instead of aborting. Patch suggested by Derek Noonburg.
3335
Werner Lemberg6c990452005-11-18 21:10:59 +00003336 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3337 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
3338 the glyph properly if no hinter is available.
3339
3340 * docs/CHANGES: Mention scaling bug.
3341
Suzuki, Toshiya (鈴木俊哉)8d81d412005-11-18 07:47:06 +000033422005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3343
3344 * include/freetype/ftgxval.h, src/base/ftgxval.c
3345 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
3346 buffers allocated by gxvalid module.
3347 * include/freetype/ftotval.h, src/base/ftotval.c
3348 (FT_OpenType_Free): New function to free buffer allocated by
3349 otvalid module.
3350
Wu, Chia-I (吳佳一)cb182382005-11-18 04:29:31 +000033512005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
3352
3353 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3354 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3355 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
3356 s/FT_EXPORT/FT_BASE/.
3357
Werner Lemberg4e03fe72006-04-29 06:20:09 +000033582005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner4859ac42005-11-17 14:21:07 +00003359
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003360 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
3361 FT_Trace_Get_Name, FT_Message, FT_Panic),
3362 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
3363 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
3364
Werner Lemberg4e03fe72006-04-29 06:20:09 +000033652005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00003366
Werner Lemberg1a293d62005-11-18 08:23:06 +00003367 * builds/amiga/makefile, builds/amiga/makefile.os4,
Detlef Würknerdf1598e2005-11-25 08:04:09 +00003368 builds/amiga/smakefile,
Detlef Würkner4859ac42005-11-17 14:21:07 +00003369 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
Werner Lemberg1a293d62005-11-18 08:23:06 +00003370 build files (added support for the gxvalid module).
Detlef Würkner4859ac42005-11-17 14:21:07 +00003371
Werner Lembergcfc0cf22005-11-17 08:12:00 +000033722005-11-17 Werner Lemberg <wl@gnu.org>
3373
3374 Add vertical metrics support to OpenType CFF outlines. Based on a
Werner Lemberg1a293d62005-11-18 08:23:06 +00003375 patch from Mike Moening <MikeM@RetekSolutions.com>.
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003376
3377 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
3378 (cff_slot_load): Use cff_face_get_vertical_metrics.
3379
3380 * docs/CHANGES: Updated.
3381
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +000033822005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
3383
3384 * src/base/ftcalc.c (FT_MulTo64): Commented out.
3385
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003386 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
3387 src/base/ftcalc.c (FT_SqrtFixed),
3388 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
3389 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003390 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003391 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
3392 include/freetype/internal/ftstream.h (FT_Stream_Open),
3393 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
3394 s/FT_EXPORT/FT_BASE/.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003395
Werner Lembergcfc0cf22005-11-17 08:12:00 +00003396 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
3397 too.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00003398
David Turnerf7cc1812005-11-15 17:30:56 +000033992005-11-15 David Turner <david@freetype.org>
3400
Werner Lemberg674ba912005-11-16 18:09:27 +00003401 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
David Turnerf7cc1812005-11-15 17:30:56 +00003402 invalid computations, resulting in very weird bugs in TrueType
Werner Lemberg674ba912005-11-16 18:09:27 +00003403 bytecode hinted fonts.
David Turnerf7cc1812005-11-15 17:30:56 +00003404
Werner Lemberg674ba912005-11-16 18:09:27 +00003405 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
3406 structure copy each time.
David Turnerf7cc1812005-11-15 17:30:56 +00003407
Werner Lembergd829ff72005-11-12 17:07:11 +000034082005-11-11 Werner Lemberg <wl@gnu.org>
3409
3410 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
3411 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
3412
David Turnerf7cc1812005-11-15 17:30:56 +00003413 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
Werner Lembergd829ff72005-11-12 17:07:11 +00003414 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
3415
3416 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
3417 (FT_Sqrt32): Commented out. Unused.
3418
3419 * include/freetype/cache/ftccache.h:
3420 s/ftc_node_destroy/FTC_Node_Destroy/.
3421
3422 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
3423
3424 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
3425 (FTC_Node_Destroy): New exported wrapper function for
3426 ftc_node_destroy.
3427
3428 * src/cache/ftcmanag.c: Include ftccback.c.
3429
Werner Lemberg4309edc2005-11-11 15:49:14 +000034302005-11-10 Werner Lemberg <wl@gnu.org>
3431
3432 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
3433 Comment out. Unused.
3434
Werner Lembergf2c53302005-11-11 16:20:59 +00003435 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
3436
Werner Lemberg4309edc2005-11-11 15:49:14 +000034372005-11-10 Christian Biesinger <cbiesinger@web.de>
3438
3439 * builds/beos/beos.mk: Call beos-def.mk before anything else to
3440 define the separator.
3441
3442 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
3443
Werner Lembergea4c3dc2005-11-08 09:10:16 +000034442005-11-07 Werner Lemberg <wl@gnu.org>
3445
3446 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
3447 table available'. From Sergey Tolstov <stolstov@esri.com>.
3448
Werner Lemberg4e03fe72006-04-29 06:20:09 +000034492005-11-03 Ville Syrjälä <syrjala@sci.fi>
Werner Lembergb2d02532005-11-04 06:58:49 +00003450
3451 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
3452
34532005-11-02 Werner Lemberg <wl@gnu.org>
3454
3455 Make compiling instructions in docs/CUSTOMIZE work again.
3456
3457 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
3458 (CFLAGS): Don't include @CPPFLAGS@.
3459 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
3460
David Turnerdab24542005-11-02 09:24:00 +000034612005-10-28 David Turner <david@freetype.org>
3462
Werner Lembergcee37a32005-11-12 07:34:40 +00003463 Update build system to support the generation of a list of exported
3464 symbols or Windows .DEF files by parsing the public headers with the
Werner Lembergb2d02532005-11-04 06:58:49 +00003465 `apinames' tool located in src/tools/apinames.c.
David Turnerdab24542005-11-02 09:24:00 +00003466
Werner Lembergb2d02532005-11-04 06:58:49 +00003467 Only tested on Unix at the moment. On Windows, the .DEF file is
3468 generated but isn't used yet to generate a DLL.
David Turnerdab24542005-11-02 09:24:00 +00003469
Werner Lembergcee37a32005-11-12 07:34:40 +00003470 * builds/exports.mk: New file.
David Turnerdab24542005-11-02 09:24:00 +00003471
Werner Lembergcee37a32005-11-12 07:34:40 +00003472 * builds/freetype.mk: Include exports.mk.
3473 (dll): New target.
3474 (clean_project_dos): Fix rule.
David Turnerdab24542005-11-02 09:24:00 +00003475
Werner Lembergcee37a32005-11-12 07:34:40 +00003476 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
3477 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
3478 variables for controlling executable extensions.
David Turnerdab24542005-11-02 09:24:00 +00003479
Werner Lembergcee37a32005-11-12 07:34:40 +00003480 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
3481 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
3482 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
3483 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
3484 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
3485 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
3486
3487 * Jamfile (GenExportSymbols): Updated.
3488
3489
3490 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
3491 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
3492 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
3493
3494
3495 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
3496 (FT_MulFix): Performance optimizations.
3497
3498
3499 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
3500 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
3501 checking points and contours. Update callers to use
3502 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
3503 at profile-detected hot-spots.
3504
3505 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
3506 to 0 to not call `AdjustPoints' every time.
3507
David Turnerdab24542005-11-02 09:24:00 +00003508
Werner Lembergb2d02532005-11-04 06:58:49 +00003509 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
3510 FT_Angle_Diff.
David Turnerdab24542005-11-02 09:24:00 +00003511
Werner Lembergcee37a32005-11-12 07:34:40 +00003512 * src/autofit/afhints.c (af_direction_compute): Re-implement.
3513 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
Werner Lembergb2d02532005-11-04 06:58:49 +00003514 AF_ANGLE_DIFF to speed up the detection of inflexions.
David Turnerdab24542005-11-02 09:24:00 +00003515
Werner Lembergcee37a32005-11-12 07:34:40 +00003516
3517 * src/tools/apinames.c: Include <string.h>.
3518 (OutputFormat): New enumeration.
3519 (names_dump): Add two parameters to control output format and DLL
3520 name.
3521 (names_dump_windef): Removed. Code folded into `names_dump'.
3522 (read_header_file): Use isalnum, not isalpha. Otherwise function
3523 names with digits aren't read correctly.
3524 (usage): Updated.
3525 (main): New option `-o' to control output file name.
3526 New option `-d' to indicate DLL file name.
3527 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
3528
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +000035292005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3530
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003531 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
3532 ftlib.prj is unmaintained and incompatible with current tree.
3533 freetype.mak is unrecoverably broken.
3534
3535 * builds/mac/ftlib.prj.xml: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003536 Generated by Metrowerks CodeWarrior 9.0.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003537
3538 * builds/mac/FreeType.m68k_far.make.txt,
3539 builds/mac/FreeType.m68k_cfm.make.txt,
3540 builds/mac/FreeType.ppc_classic.make.txt,
3541 builds/mac/FreeType.ppc_carbon.make.txt: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003542 Skeleton files of MPW makefiles.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003543
3544 * builds/mac/ascii2mpw.py: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00003545 Python script to make MPW makefile from skeleton.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00003546
3547 * builds/mac/README: Updated.
3548 Almost rewritten to use new files.
3549
35502005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3551
Werner Lemberg05cda082006-01-08 13:37:15 +00003552 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
3553 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +00003554 and George Williams.
3555
Werner Lemberg4b5661c2005-10-27 21:28:35 +000035562005-10-27 Werner Lemberg <wl@gnu.org>
3557
3558 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
3559 Obsolete.
3560
Werner Lemberg43b057b2005-10-26 18:37:40 +000035612005-10-25 Werner Lemberg <wl@gnu.org>
3562
3563 * src/sfnt/sfdriver.c (sfnt_interface): Move out
3564 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
3565 Ibbs <tibs@sj.co.uk>.
3566
Werner Lemberg6c0e7342005-10-23 19:31:01 +000035672005-10-23 Werner Lemberg <wl@gnu.org>
3568
3569 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
3570 C++.
3571
David Turner398d64c2005-10-21 10:01:25 +000035722005-10-21 David Turner <david@freetype.org>
3573
Werner Lemberg90968f72005-10-22 10:34:45 +00003574 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
3575 Another realloc memory counting bug fix.
David Turner398d64c2005-10-21 10:01:25 +00003576
Werner Lemberg90968f72005-10-22 10:34:45 +00003577 * src/tools/Jamfile: Add missing file.
David Turner398d64c2005-10-21 10:01:25 +00003578
Werner Lemberg90968f72005-10-22 10:34:45 +00003579 * src/lzw/Jamfile: Fix incorrect source file reference.
David Turner398d64c2005-10-21 10:01:25 +00003580
David Turnerc1b6d082005-10-20 15:33:34 +000035812005-10-20 David Turner <david@freetype.org>
3582
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003583 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
3584 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
3585 to better account for memory reallocations.
David Turnerc1b6d082005-10-20 15:33:34 +00003586
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003587 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
David Turner398d64c2005-10-21 10:01:25 +00003588 src/lzw/rules.mk: First version of LZW loader re-implementation.
3589 Apparently, this saves about 330 KB of heap memory when loading
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003590 timR24.pcf.Z.
David Turnerc1b6d082005-10-20 15:33:34 +00003591
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +000035922005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
3593
3594 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
3595 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003596 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
3597 FT_EXPORT/FT_EXPORT_DEF tagging.
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +00003598
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +000035992005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003600
Werner Lemberg560d5fe2005-10-21 09:08:28 +00003601 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
3602 be invalid when FT_LOAD_NO_SCALE is set.
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003603
36042005-10-17 David Turner <david@freetype.org>
3605
3606 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
3607 FT_New_Size if we are opening a face with face_index < 0 (which is
3608 only used for testing the format).
3609
3610 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
3611 Remove compiler warning.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003612
36132005-10-16 David Turner <david@freetype.org>
3614
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00003615 * src/tools/apinames.c: Add new tool to extract public API function
3616 names from header files.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003617
36182005-10-05 Werner Lemberg <wl@gnu.org>
3619
3620 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
3621 a hinting engine of its own.
3622
3623 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
3624
3625 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
3626 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
3627 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
3628 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
3629 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
3630
3631 * docs/CHANGES: Document it.
3632
36332005-09-27 Werner Lemberg <wl@gnu.org>
3634
3635 * builds/unix/freetype2.m4: Add license exception so that the file
3636 can be used in any other autoconf script.
3637
36382005-09-26 David Turner <david@freetype.org>
3639
3640 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
3641 computation of the `vertical' flag, causing ugly things in LCD mode
3642 and others.
3643
36442005-09-23 David Turner <david@freetype.org>
3645
3646 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
3647 prevented internal hint mode bitflags from being computed correctly.
3648
3649 * src/base/Jamfile: Adding src/base/ftgxval.c.
3650
3651 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
3652 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
3653 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
3654 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3655 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3656 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
3657 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3658 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
3659 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
3660 src/truetype/ttgload.c: Remove _many_ compiler warnings when
3661 compiling with Visual C++ at maximum level (/W4).
3662
3663 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
3664 implementation with one using lookup tables. This simple thing
3665 speeds up glyph loading by 18%, according to ftbench!
3666
3667 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
3668 `get_sfnt' and `load_sfnt' module interfaces.
3669
36702005-09-22 Werner Lemberg <wl@gnu.org>
3671
3672 * docs/CHANGES: Mention SING Glyphlet support.
3673
36742005-09-22 David Turner <david@freetype.org>
3675
3676 * src/base/Jamfile: Disable compilation of ftgxval module
3677 temporarily.
3678
36792005-09-19 David Somers <dsomers@omz13.com>
3680
3681 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
3682 font to have no `head' table if tables `SING' and `META' are
3683 present; this is to support `SING Glyphlet'.
3684
3685 `SING Glyphlet' is an extension to OpenType developed by Adobe
3686 primarily to facilitate adding supplemental glyphs to an OpenType
3687 font (with emphasis on, but not necessariy limited to, gaiji to a
3688 CJK font). A SING Glyphlet Font is an OpenType font that contains
3689 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
3690 `cmap', `BASE', and `GSUB' tables are present with the same format
3691 and functionaliy as a regular OpenType font; there are no `name',
3692 `head', `OS/2', and `post' tables; there are two new tables, `SING'
3693 which contains details about the glyphlet, and `META' which contains
3694 metadata.
3695
3696 Further information on the SING Glyphlet format can be found at:
3697
3698 http://www.adobe.com/products/indesign/sing_gaiji.html
3699
3700 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
3701 macros for the OpenType tables `SING' and `META'. These two tables
3702 are used in SING Glyphlet Format fonts.
3703
37042005-09-09 Werner Lemberg <wl@gnu.org>
3705
3706 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
3707 FT_FACE_FLAG_KERNING which has been commented out erroneously.
3708
3709 * docs/CHANGES: Document it.
3710
37112005-09-05 Werner Lemberg <wl@gnu.org>
3712
3713 Fixes for `make multi' and using C++ compiler.
3714
3715 * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
3716 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
3717 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
3718 (gxv_compare_ranges): Make it static.
3719 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
3720 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
3721 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
3722 trace messages.
3723 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
3724 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3725 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
3726 gxvcommn.h.
3727
3728 * gxvalid/gxvcommn.h: Add prototypes for
3729 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
3730 gxv_XStateTable_validate, gxv_array_getlimits_byte,
3731 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
3732 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
3733 gxv_odtect_validate.
3734 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3735 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
3736 gxvcommn.c.
3737
3738 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
3739 gxv_bsln_parts_fmt1_validate): Improve trace messages.
3740
3741 * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
3742 * gxvalid/gxvfeat.h: New file.
3743
3744 * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
3745 message.
3746
3747 * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
3748 (gxv_kern_subtable_fmt1_valueTable_load,
3749 gxv_kern_subtable_fmt1_subtable_setup,
3750 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
3751 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
3752 Improve trace message.
3753 (gxv_kern_validate_generic): Fix C++ compiler error.
3754 Improve trace message.
3755 (gxv_kern_validate_classic): Fix C++ compiler error.
3756
3757 * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
3758 with FT_LOCAL_DEF.
3759
3760 * gxvalid/gxvmort1.c
3761 (gxv_mort_subtable_type1_substitutionTable_load,
3762 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
3763 (gxv_mort_subtable_type1_substTable_validate): Improve trace
3764 message.
3765 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3766
3767 * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
3768 gxv_mort_subtable_type2_subtable_setup,
3769 gxv_mort_subtable_type2_ligActionOffset_validate,
3770 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
3771 errors.
3772 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3773
3774 * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
3775 with FT_LOCAL_DEF.
3776
3777 * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
3778 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
3779 errors.
3780 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3781
3782 * gxvalid/gxvmort.c: Include gxvfeat.h.
3783 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
3784 Declare with FT_LOCAL_DEF.
3785 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
3786 messages.
3787
3788 * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
3789
3790 * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
3791 with FT_LOCAL_DEF.
3792
3793 * gxvalid/gxvmorx1.c
3794 (gxv_morx_subtable_type1_substitutionTable_load,
3795 gxv_morx_subtable_type1_subtable_setup,
3796 gxv_morx_subtable_type1_entry_validate,
3797 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
3798 compiler errors.
3799 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3800
3801 * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
3802 gxv_morx_subtable_type2_subtable_setup,
3803 gxv_morx_subtable_type2_ligActionIndex_validate,
3804 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
3805 errors.
3806 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3807 Fix typo.
3808
3809 * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
3810 with FT_LOCAL_DEF.
3811
3812 * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
3813 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
3814 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3815
3816 * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
3817 gxv_morx_validate): Improve trace message.
3818
3819 * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
3820 warnings.
3821 (gxv_opbd_validate): Improve trace message.
3822
3823 * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
3824 appropriate.
3825 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
3826 message.
3827
3828 * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
3829 parameter. Update all callers.
3830 (gxv_trak_validate): Improve trace message.
3831
3832 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
3833
38342005-09-01 Werner Lemberg <wl@gnu.org>
3835
3836 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
3837
3838 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
3839 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
3840 typo.
3841
3842 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3843 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
3844 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
3845 messages.
3846 Decorate constants with `U' and `L' where appropriate.
3847 Fix compiler warnings.
3848
38492005-08-31 Werner Lemberg <wl@gnu.org>
3850
3851 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
3852
3853 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
3854
3855 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
3856
3857 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
3858 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
3859 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3860 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3861 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
3862 messages.
3863 Decorate constants with `U' and `L' where appropriate.
3864 Fix compiler warnings.
3865
38662005-08-30 Werner Lemberg <wl@gnu.org>
3867
3868 * src/gxvalid/README: Revised.
3869 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
3870 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
3871 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
3872 parameter. Update all callers.
3873 Improve trace messages.
3874 Some formatting.
3875
38762005-08-29 Werner Lemberg <wl@gnu.org>
3877
3878 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
3879 a preliminary section with some explanations about user allocation.
3880
3881 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
3882 Don't abort if there are no data types, functions, etc., in a
3883 section.
3884 Print synopsis only if we have a data type, function, etc.
3885
3886 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
3887 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
3888 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
3889
38902005-08-28 George Williams <gww@silcom.com>
3891
3892 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
3893 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
3894
38952005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
3896
3897 * builds/unix/freetype2.in (CFlags): Add missing directory.
3898
38992005-08-24 Werner Lemberg <wl@gnu.org>
3900
3901 * docs/CHANGES: Mention gxvalid module.
3902
39032005-08-23 Werner Lemberg <wl@gnu.org>
3904
3905 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
3906 render mode properly. Reported by chris@dokein.co.uk.
3907
Werner Lemberg6be99f92006-02-09 07:38:57 +000039082005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003909
3910 Add gxvalid module to validate TrueType GX/AAT tables.
3911
3912 Modifications on existing files:
3913
3914 * Jamfile: Register gxvalid module.
3915 * src/base/Jamfile: Register ftgxval.c.
3916 * src/base/rule.mk: Register ftgxval.c.
3917 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
3918
3919 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
3920 to include gxvalid header file.
3921 * include/freetype/config/ftmodule.h: Register gxv_module_class.
3922
3923 * include/freetype/ftchapters.h: Add comment about gx_validation.
3924 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
3925 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
3926 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
3927
3928 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
3929 macro for gxvalid service.
3930 * include/freetype/internal/fttrace.h: Add trace facilities for
3931 gxvalid.
3932
3933 New files on existing directories:
3934
3935 * include/freetype/internal/services/svgxval.h: Registration of
3936 validation service for TrueType GX/AAT and classic kern table.
3937 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
3938 * src/base/ftgxval.c: Public API of gxvalid.
3939
3940 New files under src/gxvalid/:
3941
3942 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
3943 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
3944 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
3945 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
3946 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
3947 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
3948 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
3949 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
3950 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
3951 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
3952 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
3953 src/gxvalid/gxvtrak.c: New files, gxvalid body.
3954
39552005-08-21 Werner Lemberg <wl@gnu.org>
3956
3957 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
3958 to (0,0) if bit 1 of the `head' table isn't set. This improves
3959 rendering of buggy fonts.
3960
39612005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
3962
3963 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
3964 ttmetrics here. TrueType fonts with only sbits always have
3965 ttmetrics.valid set to false.
3966
3967 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
3968 valid before loading outline glyph.
3969
3970 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
3971
39722005-08-20 Werner Lemberg <wl@gnu.org>
3973
3974 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
3975 `hhea' table for SFNT Mac fonts. Change based on a patch by
3976 mpsuzuki@hiroshima-u.ac.jp.
3977
39782005-08-20 Masatake YAMATO <jet@gyve.org>
3979
3980 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
3981 of ft_setjmp.
3982
39832005-08-19 Werner Lemberg <wl@gnu.org>
3984
3985 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
3986 warnings.
3987
39882005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3989
3990 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
3991 messages.
3992
39932005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3994
3995 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
3996 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
3997 with slight changes.
3998 Update all callers.
3999 (TT_New_Context): Now takes TT_Driver argument directly.
4000 Update all callers.
4001
4002 * src/truetype/ttobjs.h (tt_slot_init): New function.
4003 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
4004 context here.
4005 (tt_slot_init): New function to create extra points for the internal
4006 glyph loader. We then use it directly, instead of face's glyph
4007 loader, when loading glyph.
4008
4009 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
4010 glyph slot initialization.
4011 (Load_Glyph): Load flag dependencies are handled here. Return error
4012 if size is NULL.
4013
4014 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
4015 (org_to_cur): Removed.
4016 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
4017 (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
4018 (TT_Process_Simple_Glyph): s/load/loader/.
4019 Use loader->pp values instead of recalculation.
4020 Use TT_Hint_Glyph.
4021 No need to save/restore loader->stream before and after
4022 TT_Vary_Get_Glyph_Deltas now.
4023 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
4024 points.
4025 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
4026 Savannah bug #13107.
4027 Forget glyph frame before calling TT_Process_Simple_Glyph.
4028 Use TT_LOADER_SET_PP.
4029 Scale all four phantom points.
4030 Split off some functionality to ...
4031 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
4032 new functions.
4033 (TT_Load_Glyph): Set various fields of `glyph' here, not in
4034 load_truetype_glyph and compute_glyph_metrics.
4035 Split off some functionality to ...
4036 (load_sbit_image, tt_loader_init): These new functions.
4037 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
4038
40392005-08-08 Werner Lemberg <wl@gnu.org>
4040
4041 * docs/INSTALL.ANY: Updated.
4042
40432005-08-05 Werner Lemberg <wl@gnu.org>
4044
4045 * src/cff/cffgload.c (cff_builder_close_contour),
4046 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
4047 zero `outline' pointer.
4048
4049 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
4050 `loader' address.
4051
40522005-08-03 Werner Lemberg <wl@gnu.org>
4053
4054 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
4055 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
4056 to make X work again.
4057
40582005-08-02 Werner Lemberg <wl@gnu.org>
4059
4060 * src/otvalid/otvcommn.h: Remove dead code.
4061
40622005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
4063
4064 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
4065 functions.
4066
4067 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
4068 functions.
4069 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
4070 zone.
4071 Move code that runs fpgm to tt_size_run_fpgm.
4072 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
4073 (tt_glyphzone_new): Allocate right size of arrays.
4074 Set max_points and max_contours properly.
4075
40762005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
4077
4078 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
4079 computations and clean up.
4080
4081 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
4082 internal copy of metrics.
4083
40842005-07-12 Werner Lemberg <wl@gnu.org>
4085
4086 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
4087 Reported by Xerxes.
4088
40892005-07-04 Werner Lemberg <wl@gnu.org>
4090
4091 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
4092 Reported by Brett Hutley.
4093
40942005-06-30 David Turner <david@freetype.org>
4095
4096 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
4097 Removing compiler warnings (Visual C++ /W4).
4098
4099
4100 Implement a work-around for broken C preprocessor in Visual C++ (it
4101 has been confirmed by the MS developers that it is indeed a bug
4102 which won't be fixed in the very near future).
4103
4104 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
4105
4106 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
4107 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
4108 avoid argument expansion by argument prescan.
4109 Append `Func' to all affected macros and change them to take just a
4110 single argument. Example: `AttachList' is renamed to
4111 `AttachListFunc'.
4112
4113 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
4114 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
4115 affected by the changes to OTV_NESTx and modify them to take just a
4116 single argument.
4117
41182005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
4119
4120 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
4121 ft_glyphslot_grid_fit_metrics.
4122
4123 * src/truetype/ttgload.c (compute_glyph_metrics): Use
4124 ft_glyphslot_grid_fit_metrics.
4125
4126 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
4127 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
4128 ft_glyphslot_grid_fit_metrics.
4129 FT_Outline_Get_CBox is called twice.
4130
4131 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
4132 reasonable values when emboldening outline glyphs. The theoretic
4133 ones are unrealistic.
4134
41352005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
4136
4137 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
4138 halved.
4139
4140 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
4141 strength.
4142 Don't increase slot->advance.y.
4143
41442005-06-16 Werner Lemberg <wl@gnu.org>
4145
4146 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
4147 (FREETYPE_PATCH): Set to 0.
4148
4149 * builds/unix/configure.ac (version_info): Set to 9:9:3.
4150 Currently, we are still binary compatible.
4151
4152 * builds/win32/visualc/index.html,
4153 builds/win32/visualc/freetype.dsp,
4154 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
4155
4156 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
4157 s/2.1.9/2.1.10/.
4158
4159 * docs/CHANGES, docs/VERSION.DLL: Updated.
4160
4161 * ChangeLog: Split off older entries into...
4162 * ChangeLog.20, ChangeLog.21: These new files.
4163
41642005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
4165
4166 The next release will be 2.2.0, so don't worry about source code
4167 backwards compatibility.
4168
4169 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
4170 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
4171 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
4172 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
4173 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
4174 parameters with `const' where appropriate.
4175
41762005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
4177
4178 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
4179 to make glyphs centered vertically.
4180
4181 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
4182 vertBearingY to make glyphs centered vertically.
4183 Fix some bugs in vertical metrics:
4184
4185 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
4186 units.
4187 . As we use the glyph's cbox to calculate the top bearing now
4188 there iss no need to adjust `top'.
4189
41902005-06-15 Werner Lemberg <wl@gnu.org>
4191
4192 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
4193 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
4194
41952005-06-13 Werner Lemberg <wl@gnu.org>
4196
4197 * docs/release: Update.
4198
4199----------------------------------------------------------------------------
4200
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00004201Copyright 2005, 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004202David Turner, Robert Wilhelm, and Werner Lemberg.
4203
4204This file is part of the FreeType project, and may only be used, modified,
4205and distributed under the terms of the FreeType project license,
4206LICENSE.TXT. By continuing to use, modify, or distribute this file you
4207indicate that you have read the license and understand and accept it
4208fully.
4209
4210
4211Local Variables:
4212version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004213coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004214End: