blob: 844b5cd27504be2418605076bb26ebedecc252f0 [file] [log] [blame]
David Turnera42567b2007-01-25 12:23:37 +000012007-01-25 David Turner <david@freetype.org>
2
3 * src/cff/cffload.c (cff_index_get_pointers): fixed a bug in the
4 sanity check which caused the last entry in each index to become
5 empty. since this function is only used to load local and global
6 functions, this meant that any charstring that called the last
7 local/global function would fail.
8
9 * src/cff/cffgload.c: fixed sanity check for empty functions
10
11 * docs/CHANGES: document light auto-hinting improvement
12
Werner Lembergb1be9e82007-01-25 11:50:00 +0000132007-01-25 Werner Lemberg <wl@gnu.org>
14
15 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
16 correctly. This fixes Savannah bug #18867.
17
18 * docs/CHANGES: Document it.
19
David Turnerb6de8d12007-01-23 15:51:50 +0000202007-01-23 David Turner <david@freetype.org>
21
Werner Lembergb1be9e82007-01-25 11:50:00 +000022 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
23 prevented compilation when disabling both the unpatented and the
24 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000025
Werner Lembergb1be9e82007-01-25 11:50:00 +000026
27 Fix and enable the warper to improve `light' hinting mode. This is
28 not necessarily a final version, but it seems to work well.
29
30 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
31 Disable code.
32 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
33 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
34
35 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
36 (af_warper_compute_line_best): Fix array size of `scores'.
37 (af_warper_compute): Better handling of border cases.
38 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
39 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +000040
Werner Lemberg011d1112007-01-21 09:36:00 +0000412007-01-21 Werner Lemberg <wl@gnu.org>
42
Werner Lemberg42b63b22007-01-21 21:01:33 +000043 * ChangeLog: Split off older entries into...
44 * ChangeLog.22: This new file.
45
462007-01-21 Werner Lemberg <wl@gnu.org>
47
Werner Lemberg555258f2007-01-21 09:46:37 +000048 * docs/CHANGES: Document SHZ fix.
49
502007-01-21 George Williams <gww@silcom.com>
51
52 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
53 points.
54
552007-01-21 Werner Lemberg <wl@gnu.org>
56
Werner Lemberg011d1112007-01-21 09:36:00 +000057 * src/sfnt/ttmtx.c (tt_face_get_metrics)
58 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
59
Werner Lemberg87a5a432007-01-17 12:44:39 +0000602007-01-17 Werner Lemberg <wl@gnu.org>
61
Werner Lembergb8003292007-01-17 12:56:25 +000062
63 * Version 2.3.0 released.
64 =========================
65
66
67 Tag sources with `VER-2-3-0-FINAL'.
68
692007-01-17 Werner Lemberg <wl@gnu.org>
70
Werner Lemberg87a5a432007-01-17 12:44:39 +000071 * docs/release: Updated.
72
David Turner22122722007-01-16 20:06:44 +0000732007-01-16 David Turner <david@freetype.org>
74
Werner Lemberg87a5a432007-01-17 12:44:39 +000075 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
76 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
77 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
78 warnings.
David Turner22122722007-01-16 20:06:44 +000079
Werner Lemberg267e1d72007-01-15 07:48:09 +0000802007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
81
82 * builds/amiga/makefile, builds/amiga/makefile.os4,
83 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
84
85 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
86
Werner Lemberg8c4120d2007-01-15 06:42:40 +0000872007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
88
89 Fix various compiler warnings.
90
91 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
92 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
93 s/index/strike_index/.
94 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
95
96 * src/gxvalid/gxvmorx5.c
97 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
98
99 * src/truetype/ttinterp.c (Compute_Point_Displacement),
100 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
101 uninitialized variables.
102
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001032007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
104
105 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
106
Werner Lemberg281c1482007-01-13 22:50:51 +00001072007-01-13 Werner Lemberg <wl@gnu.org>
108
109 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
110 versions up to 0x3FF without complaining.
111
Werner Lembergac250b22007-01-13 14:01:36 +00001122007-01-13 Derek Clegg <dclegg@apple.com>
113
114 Add FT_Get_PS_Font_Info interface to CFF driver.
115
116 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
117 (CFF_FontRec): Add `font_info' field.
118
119 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
120 (cff_font_done): Free font->font_info if necessary.
121
122 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
123 (cff_service_ps_info): Register cff_ps_get_font_info.
124
Werner Lemberg23df31a2007-01-13 08:45:00 +00001252007-01-13 Werner Lemberg <wl@gnu.org>
126
127 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
128 with C++ compiler.
129
130 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
131 af_glyph_hints_dump_edges): Ditto.
132
133 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
134 `modules.cfg').
135
136 * src/sfnt/ttsbit0.h: Remove.
137
138 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
139
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001402007-01-12 David Turner <david@freetype.org>
141
142 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
143 bug in the bitmap emboldener if the pitch of the source bitmap is
144 much larger than its width.
145
146 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
147 compilation warning.
148
Werner Lemberg6d96d312007-01-12 10:30:19 +00001492007-01-12 Werner Lemberg <wl@gnu.org>
150
151 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
152 `automake' CVS module from sources.redhat.com.
153
Werner Lemberg17432b52007-01-12 09:28:44 +00001542007-01-11 Werner Lemberg <wl@gnu.org>
155
156 * src/type1/t1load.c (is_space): Removed.
157 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
158 (parse_charstrings): Use IS_PS_TOKEN.
159
160
161 * autogen.sh: Avoid bash specific syntax.
162
David Turner038ace22007-01-11 15:00:59 +00001632007-01-11 David Turner <david@freetype.org>
164
Werner Lemberg17432b52007-01-12 09:28:44 +0000165 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000166
Werner Lemberg17432b52007-01-12 09:28:44 +0000167 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000168
Werner Lemberg17432b52007-01-12 09:28:44 +0000169 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
170 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000171 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000172
Werner Lemberg17432b52007-01-12 09:28:44 +0000173 * autogen.sh: Small fix to get it working on Mac OS X properly:
174 The issue is that GNU libtool is called `glibtool' on this platform,
175 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000176
David Turner2628ea92007-01-10 13:15:56 +00001772007-01-10 David Turner <david@freetype.org>
178
Werner Lemberg17432b52007-01-12 09:28:44 +0000179 * all-sources: Tag all sources with VER-2-3-0-RC1 and
180 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000181
Werner Lemberg17432b52007-01-12 09:28:44 +0000182 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
183 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
184 version number to 2.3.0.
185
186 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
187 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000188
189 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000190 include/freetype/ftlcdfil.h: Update reference documentation with
191 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000192
Werner Lemberg17432b52007-01-12 09:28:44 +0000193 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
194 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000195
Werner Lembergbf02d392007-01-10 07:07:37 +00001962007-01-10 Derek Clegg <dclegg@apple.com>
197
198 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
199 values.
200
David Turnerf48b60e2007-01-08 15:15:32 +00002012007-01-08 David Turner <david@freetype.org>
202
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000203 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000204
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000205 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
206 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000207 corresponding to a given character pixel size.
208
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000209 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
210 `gasp' table, in order to avoid potential problems with later
211 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000212
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000213 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
214 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000215
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000216 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
217 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
218 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
219 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000220
Werner Lemberge6b6f372007-01-07 00:06:47 +00002212007-01-07 Werner Lemberg <wl@gnu.org>
222
Werner Lembergb8004d22007-01-07 09:13:38 +0000223 * src/cid/cidparse.c (cid_parser_new): Improve error message for
224 Type 11 fonts.
225 Scan for `/sfnts' token.
226
2272007-01-07 Werner Lemberg <wl@gnu.org>
228
229 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000230
Werner Lembergbe5f7972007-01-06 07:51:48 +00002312007-01-06 Werner Lemberg <wl@gnu.org>
232
233 * src/cff/cffload.c (cff_index_init): Remove unused variable.
234 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
235
David Turnera8cf42b2007-01-04 16:46:46 +00002362007-01-04 David Turner <david@freetype.org>
237
Werner Lembergf6294392007-01-06 07:47:45 +0000238 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
239 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000240
Werner Lembergf6294392007-01-06 07:47:45 +0000241
242 Do not allocate interpreter-specific tables in memory if we are not
243 going to load glyphs with the bytecode interpreter anyway.
244
245 * src/truetype/ttgload.c (tt_loader_init): Load execution context
246 only if glyph is hinted.
247 Updated.
248 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
249 and `cvs_ready'.
250 Add `tt_size_ready_bytecode' declaration.
251 * src/truetype/ttobjs.c (tt_size_done_bytecode,
252 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
253 (tt_size_init): Move most code into `tt_size_init_bytecode'.
254 (tt_size_done): Move most code into `tt_size_done_bytecode'.
255 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000256
David Turner91a34022007-01-05 14:47:08 +0000257
Werner Lembergf6294392007-01-06 07:47:45 +0000258 Don't extract the metrics table from the SFNT font file. Instead,
259 reparse it on each glyph load. The runtime difference is not
260 noticeable, and it can save a lot of heap memory when memory-mapped
261 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000262
Werner Lembergf6294392007-01-06 07:47:45 +0000263 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
264 `horz_metrics_offset' and `vert_metrics_ofset'.
265 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
266 Updated.
267
268
269 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
270
271
272 Do not load the CFF index offsets into memory, since this wastes a
273 *lot* of heap memory with large Asian CFF fonts. There is no
274 significant performance loss.
275
276 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
277 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
278 `data_size'.
279 (CFF_CharsetRec): Add field `num_glyphs'.
280
281 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
282 cff_charset_cid_to_gindex): New functions.
283 (cff_new_index): Renamed to...
284 (cff_index_init): This. Update all callers.
285 Updated -- some code has been moved to `cff_index_load_offsets'.
286 (cff_done_index): Renamed to...
287 (cff_index_done): This. Update all callers.
288 (cff_index_get_pointers, cff_index_access_element): Updated to use
289 stream offsets.
290 (cff_charset_compute_cids): Set `num_glyphs' field.
291 (cff_encoding_load): Updated.
292
293 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000294
2952007-01-04 David Turner <david@freetype.org>
296
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000297 * docs/INSTALL.UNIX: Simplify some parts, add reference to
298 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000299
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000300 * README.CVS: Add common problem description and solution
301 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000302
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000303 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000304
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000305 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000306
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000307 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000308
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000309 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
310 (TWorker): This.
311 Remove `count_table' and `memory'.
312 Make `grays' a pointer.
313 (TRaster): New structure.
314 (count_table): New static array.
315 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
316 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
317 ft_black_set_mode, ft_black_render): Updated.
318 (ft_black_init): Don't initialize `count_table'.
319 (ft_black_reset): Use the render pool. This saves about 6KB of
320 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000321
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000322 * src/smooth/ftgrays.c (TRaster): Replaced with...
323 (TWorker): This.
324 Remove `memory'.
325 (TRaster): New structure.
326
327 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
328 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
329 gray_render_span, gray_raster_render): Updated.
330 (gray_raster_reset): Use the render pool. This saves about 6KB of
331 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000332
David Turner8a6c44e2007-01-04 17:03:11 +0000333 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
334 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000335 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
336 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
337 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000338
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000339 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
340 Remove a typo that results in no hinting and a memory leak with some
341 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000342
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000343 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000344 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000345 CFF_Faces in it. We need to close all faces before destroying the
346 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000347
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003482007-01-02 Werner Lemberg <wl@gnu.org>
349
350 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
351 Remove compiler warning.
352
David Turner9207e002007-01-02 16:58:13 +00003532007-01-02 David Turner <david@freetype.org>
354
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000355 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000356
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003572006-12-31 Masatake YAMATO <jet@gyve.org>
358
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000359 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
360 function.
361 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000362 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000363 `gxv_kern_subtable_fmt0_pairs_validate'.
364
David Turner115b4422006-12-22 11:37:05 +00003652006-12-22 David Turner <david@freetype.org>
366
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000367 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
368 warnings.
David Turner115b4422006-12-22 11:37:05 +0000369
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000370 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
371 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000372
Werner Lemberg4755bf72006-12-16 08:58:44 +00003732006-12-16 Anders Kaseorg <anders@kaseorg.com>
374
375 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
376 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
377
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003782006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
379
Werner Lemberg9b774e22007-01-16 06:11:27 +0000380 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000381 sync with the modification by Jens Claudius on 2006-08-22; cf.
382 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 +0000383
3842006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
385
386 * src/base/ftmac.c: Specialized for Mac OS X only.
387 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
388 * builds/unix/configure.raw: Ditto. When explicit switches for
389 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
390 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
391
3922006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
393
394 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
395 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
396 instead of src/base/ftmac.c
397 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
398 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
399 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
400 that cannot be built at present.
401
4022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
403
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000404 * src/base/ftobjs.c: Improvement of resource fork handler for
405 POSIX, cf.
406 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000407 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
408 format or .dfont, to simulate the face index number counted by ftmac.c.
409 (IsMacResource): Return the number of scalable faces correctly.
410
Werner Lembergec5b4502006-12-10 07:51:38 +00004112006-12-10 Werner Lemberg <wl@gnu.org>
412
413 * builds/toplevel.mk (version): Protect against `distclean' target.
414
Werner Lembergb26b3142006-12-09 20:01:43 +00004152006-12-09 Werner Lemberg <wl@gnu.org>
416
417 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
418 or `type'.
419
420 * builds/freetype.mk (version): Extracted from freetype.h, using
421 GNU make's built-in string functions.
422 (refdoc): Use $(version) instead of static version number.
423
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004242006-12-08 Werner Lemberg <wl@gnu.org>
425
426 * builds/toplevel.mk (dist): Extract version number from freetype.h.
427
Werner Lemberg15c29502006-12-09 07:29:54 +00004282006-12-08 Vladimir Volovich <vvv@vsu.ru>
429
430 * src/tools/apinames (State): Remove final comma in structure -- xlc
431 v5 under AIX 4.3 doesn't like this.
432
David Turnerdbf3b432006-12-07 21:18:09 +00004332006-12-07 David Turner <david@freetype.org>
434
Werner Lemberg256a3512006-12-08 06:49:33 +0000435 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
436 to the spacing of auto-fitted glyphs. This only impacts rare
437 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000438
Werner Lemberg11171312006-12-03 09:43:40 +00004392006-12-03 Werner Lemberg <wl@gnu.org>
440
441 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
442
Werner Lemberg960ba592006-12-01 08:20:47 +00004432006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000444
Werner Lemberg960ba592006-12-01 08:20:47 +0000445 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
446 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
447 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000448
David Turner80658e52006-11-28 08:09:20 +0000449
Werner Lemberg960ba592006-12-01 08:20:47 +0000450 * include/freetype/ftxf86.h: Fix and extend comment so that it
451 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000452
Werner Lemberg960ba592006-12-01 08:20:47 +0000453 * include/freetype/ftchapters.h: Add `font_format' section.
454
455
456 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
457 to TOC in index page.
458
4592006-11-28 David Turner <david@freetype.org>
460
461 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
462 trying to render into a zero-width/height bitmap, not an error code.
463
464 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
465
466 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
467 ones instead.
468
469 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
470 variable.
David Turner80658e52006-11-28 08:09:20 +0000471
Werner Lemberg8636c292006-11-26 22:28:13 +00004722006-11-26 Pierre Hanser <hanser@club-internet.fr>
473
474 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
475
Werner Lemberg960ba592006-12-01 08:20:47 +00004762006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000477
Werner Lemberg960ba592006-12-01 08:20:47 +0000478 * src/autofit/afhints.c (af_glyph_hints_dump_points,
479 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
480 Add stubs to link the `ftgrid' test program when debugging is
481 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000482
Werner Lemberg960ba592006-12-01 08:20:47 +00004832006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000484
485 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000486 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
487
488 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
489 Emit more sensible information.
490
491 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
492
493 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
494 rounding of blue values.
495 (af_latin_hints_compute_segments): Hint segment heights.
496 (af_latin_hints_link_segments): Reduce `len_score' value.
497 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
498 value and use `height' member for comparisons.
499 (af_latin_hint_edges): Extend logging message.
500 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000501
Werner Lemberg91959bf2006-11-22 10:36:55 +00005022006-11-22 Werner Lemberg <wl@gnu.org>
503
504 Fix Savannah bug #15553.
505
506 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
507 program after a change from mono to grayscaling (and vice versa).
508 Use correct constant for comparison to get `exec->grayscale'.
509
Werner Lemberg913a3652006-11-19 09:19:17 +00005102006-11-18 Werner Lemberg <wl@gnu.org>
511
512 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000513 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000514 This patch fixes Savannah bug #18301.
515
516 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
517 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
518 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
519 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
520 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
521 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
522 (FNT_Load_Glyph): Check validity of `glyph_index'.
523
David Turner7bab6ae2006-11-13 11:25:06 +00005242006-11-13 David Turner <david@freetype.org>
525
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000526 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
527 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000528
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000529 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
530 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
531 when building the library to change the default LCD filter to be
532 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000533
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000534 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000535
David Turner8765c712006-11-10 16:49:42 +00005362006-11-10 David Turner <david@freetype.org>
537
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000538 * src/smooth/ftsmooth.c: API change for the LCD
539 filter. The FT_LcdFilter value is an enumeration describing which
540 filter to apply, with new values FT_LCD_FILTER_LIGHT and
541 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
542 algorithm which produces strong color fringes for everything
543 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000544
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000545 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
546 second parameter to an enum type.
547
548 * src/base/ftlcdfil.c (USE_LEGACY): Define.
549 (_ft_lcd_filter): Rename to...
550 (_ft_lcd_filter_fir): This.
551 Update parameters.
552 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
553 (FT_Library_Set_LcdFilter): Update parameters.
554 Handle new filter modes.
555
556 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
557 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
558 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
559 callback and update other fields.
560
561 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
562 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
563 Other minor improvements.
564
565 * src/autofit/aflatin.c: Various tiny improvements that drastically
566 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
567 (af_latin_hints_compute_edges): Fix typo.
568 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000569
David Turner4e9cc3c2006-11-09 16:31:52 +00005702006-11-09 David Turner <david@freetype.org>
571
Werner Lemberg49c77a82006-11-09 21:51:57 +0000572 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
573 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000574
Werner Lemberg5e430892006-11-07 09:35:03 +00005752006-11-07 Zhe Su <james.su@gmail.com>
576
577 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
578 also.
579
Werner Lemberg111b5ae2006-11-03 09:40:12 +00005802006-11-03 Werner Lemberg <wl@gnu.org>
581
582 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
583
David Turner40604742006-11-02 16:37:35 +00005842006-11-02 David Turner <david@freetype.org>
585
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000586 Add a few tweaks to better handle serif fonts.
587 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000588
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000589 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
590 segments that are less than 1.5 pixels high. This gets rid of
591 *many* corner cases with serifs.
592 (af_latin_align_linked_edge): Add logging message.
593 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
594 Add logging messages.
595 Handle AF_EDGE_FLAG flag specially.
596
597 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
598 _af_debug_disable_blue_hints, and _af_debug_hints variables.
599
600 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
601 Update external declarations.
602 (af_corner_orientation, af_corner_is_flat): Replaced by...
603
604 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
605 ft_corner_is_flat): These declarations.
606
607 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
608 Comment out. Replaced by...
609
610 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
611 These functions. Update all callers.
612 (FT_Add64) [!FT_LONG64]: Simplify.
613
614 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
615 (af_direction_compute): Add a missing FT_ABS call. This bug caused
616 production of garbage by missing lots of segments.
617
618 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
619
620 * src/autofit/afloader.c (af_loader_init, af_loader_done)
621 [AF_DEBUG]: Set _af_debug_hints.
622
623
624 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
625 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
626 and ft_corner_orientation.
627
628
629 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000630
Werner Lemberge88c5262006-10-24 05:46:26 +00006312006-10-24 Werner Lemberg <wl@gnu.org>
632
633 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
634
635 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
636 as argument.
637
David Turnera1861392006-10-23 16:00:59 +00006382006-10-23 Zhe Su <zsu@novell.com>
639
Werner Lemberg715e96e2006-10-24 05:28:45 +0000640 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
641 better deal with broken Asian fonts with strange glyphs, having
642 self-intersections and other peculiarities. The used algorithm is
643 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000644
David Turnere140f142006-10-23 08:56:57 +00006452006-10-23 David Turner <david@freetype.org>
646
Werner Lemberg715e96e2006-10-24 05:28:45 +0000647 Speed up the CFF font loader. With some large CFF fonts,
648 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000649
Werner Lemberg715e96e2006-10-24 05:28:45 +0000650 * src/cff/cffload.c (cff_get_offset): Removed.
651 (cff_new_index): Inline functionality of `cff_get_offset'.
652 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
653 (cff_charset_done): Call `cff_charset_free_cids'.
654 (cff_charset_load): Call `cff_charset_compute_cids'.
655 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
656
657 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
658 with FT_NEXT_XXX.
659
660
661 Speed up the Postscript hinter, with more than 100% speed increase
662 on my machine.
663
664 * src/pshinter/pshalgo.c (psh_corner_is_flat,
665 psh_corner_orientation): New functions.
666 (psh_glyph_compute_inflections): Merge loops for efficiency.
667 Use `psh_corner_orientation'.
668 (psh_glyph_init): Use `psh_corner_is_flat'.
669 (psh_hint_table_find_strong_point): Renamed to...
670 (psh_hint_table_find_strong_points): This.
671 Rewrite, adding argument to handle all points at once.
672 Update all callers.
673 (PSH_MAX_STRONG_INTERNAL): New macro.
674 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000675
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00006762006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
677
678 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000679 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000680
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00006812006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
682
683 * docs/INSTALL.CROSS: New document file for cross-building.
684
685 * builds/unix/configure.raw: Preliminary cross-building support.
686 Find native C compiler and pass it by CC_BUILD, and
687 find suffix for native executable and pass it by EXEEXT_BUILD.
688 Also suffix for target executable is passed by EXEEXT.
689
Werner Lembergb9e6d692006-10-15 08:58:40 +0000690 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
691 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000692 CC_BUILD and EXEEXT_BUILD.
693
Werner Lembergb9e6d692006-10-15 08:58:40 +0000694 * builds/exports.mk (APINAMES_EXE): Change the extension for
695 apinames from the suffix for target (E) to that for building host
696 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000697
Werner Lemberg82a07e92006-10-12 06:20:44 +00006982006-10-12 Werner Lemberg <wl@gnu.org>
699
700 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
701 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
702 which reference those files.
703
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007042006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
705
Werner Lembergb9e6d692006-10-15 08:58:40 +0000706 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
707 embedded in freetype2.pc and freetype-config. Use it to record
708 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000709
710 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
711
712 * builds/unix/freetype-config.in: Ditto.
713
Werner Lemberg28e17d92006-10-11 17:27:47 +00007142006-10-11 Werner Lemberg <wl@gnu.org>
715
716 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
717 development.
718
Jens Claudius336d2292006-10-03 08:53:37 +00007192006-10-03 Jens Claudius <jens.claudius@yahoo.com>
720
721 * include/freetype/config/ftstdlib.h: Cast away volatileness from
722 argument to ft_setjmp.
723
724 * include/freetype/internal/ftvalid.h: Add comment that
725 ft_validator_run must not be used.
726
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007272006-10-01 Werner Lemberg <wl@gnu.org>
728
729 * src/base/ftbase.c: Undo change from 2006-09-30.
730
731 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
732
7332006-09-30 David Turner <david@freetype.org>
734
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000735 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
736 s/unpatented_hinting/ignore_unpatented_hinter/.
737 Update all callers.
738
739 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
740 auto-hinting shall be used or not.
741
742 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000743
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007442006-09-30 Werner Lemberg <wl@gnu.org>
745
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000746 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
747 in use).
748
749 * src/base/ftbase.c: Include `ftlcdfil.c'.
750
Werner Lemberg9b15ea32006-09-29 18:22:11 +00007512006-09-29 Werner Lemberg <wl@gnu.org>
752
753 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
754 overlapping segments. Bug reported by Stefan Koch.
755
David Turnerad830712006-09-27 16:20:59 +00007562006-09-28 David Turner <david@freetype.org>
757
Werner Lemberg2c002e12006-09-29 21:31:53 +0000758 Fix a bug in the automatic unpatented hinting support which prevents
759 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000760
Werner Lemberg2c002e12006-09-29 21:31:53 +0000761 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
762 s/force_autohint/unpatented_hinting/. Update all callers.
763
764 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
765
766 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000767
David Turner8a317cf2006-09-27 07:52:48 +00007682006-09-27 David Turner <david@freetype.org>
769
Werner Lemberg2c002e12006-09-29 21:31:53 +0000770 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000771
David Turner8a317cf2006-09-27 07:52:48 +0000772
David Turnere140f142006-10-23 08:56:57 +0000773 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000774 In a default build, the function `FT_Library_SetLcdFilter' returns
775 `FT_Err_Unimplemented_Feature'; you need to #define
776 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
777 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000778
Werner Lemberg2c002e12006-09-29 21:31:53 +0000779 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000780
Werner Lemberg2c002e12006-09-29 21:31:53 +0000781 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
782 typedef.
783 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
784 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000785
Werner Lemberg2c002e12006-09-29 21:31:53 +0000786 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
787 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000788
Werner Lemberg2c002e12006-09-29 21:31:53 +0000789 Handle subpixel rendering.
790 Simplify function.
791 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
792 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
793
794 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
795 pointing to <freetype/ftlcdfil.h>.
796
797 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
798 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
799
800 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000801
Werner Lemberge20df4a2006-09-27 06:29:21 +00008022006-09-26 David Bustin
803
804 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
805 correctly. Reported as Savannah bug #17843.
806
David Turner6f8c6222006-09-26 15:42:44 +00008072006-09-26 David Turner <david@freetype.org>
808
Werner Lemberg110246c2006-09-26 21:55:44 +0000809 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
810 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
811 horizontal and vertical hinting for the purpose of debugging the
812 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000813
Werner Lemberg110246c2006-09-26 21:55:44 +0000814 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
815 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000816
Werner Lemberg110246c2006-09-26 21:55:44 +0000817 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
818
819 * include/freetype/config/ftoption.h, devel/ftoption.h
820 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
821 we want to compile LCD-optimized rendering code (à la ClearType) or
822 not. The macro *must* be disabled in default builds of the library
823 for patent reasons.
824
825 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
826 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
827 isn't defined at compile time. This only changes the content of the
828 rendered glyph to match the one of normal gray-level rendering,
829 hence clients should not need to be modified.
830
831 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000832
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008332006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
834
835 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
836 LWFN fails and both are available.
837
David Turnerf3050052006-09-11 12:00:32 +00008382006-09-11 David Turner <david@freetype.org>
839
Werner Lembergf9644552006-09-12 13:48:10 +0000840 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
841 report their English names through an Apple Roman
842 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000843
Werner Lembergf9644552006-09-12 13:48:10 +0000844 If the font uses another name entry with language_id == English, it
845 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000846
Werner Lembergf9644552006-09-12 13:48:10 +0000847 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
848 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000849
Werner Lemberg36d2eab2006-09-05 19:24:34 +00008502006-09-05 Werner Lemberg <wl@gnu.org>
851
852 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000853 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000854 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
855 `HAN NOM B.ttf').
856
857 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
858
David Turner772e55d2006-09-05 09:45:15 +00008592006-09-05 David Turner <david@freetype.org>
860
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000861 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000862
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000863 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
864 (TRaster): Remove `count_ex' and `count_ey'.
865 (gray_find_cell): Remove 2nd and 3rd argument.
866 (gray_alloc_cell): Merged with `gray_find_cell'.
867 (gray_record_cell): Simplify.
868 (gray_set_cell): Rewrite.
869 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
870 (gray_render_span): Don't use FT_MEM_SET for small values.
871 (gray_dump_cells) [DEBUG_GRAYS]: New function.
872 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
873 bitmap scanline.
874 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000875
David Turneraa557a92006-09-04 16:42:44 +00008762006-09-04 David Turner <david@freetype.org>
877
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000878 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
879 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000880
Werner Lemberg2d8629b2006-09-03 06:18:45 +00008812006-09-03 Werner Lemberg <wl@gnu.org>
882
883 * devel/ftoption.h: Synchronize with
884 include/freetype/config/ftoption.h.
885
886 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
887 variable declaration.
888 (gray_convert_glyph): Fix compiler warnings.
889
David Turner6d79f212006-09-01 14:09:35 +00008902006-09-01 David Turner <david@freetype.org>
891
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000892 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
893 to recognize a few fonts that require the automatic unpatented
894 loader.
David Turnerbd502952006-09-01 19:05:24 +0000895
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000896 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
897 rasterizer. The speed improvement is between 15% and 25%, depending
898 on the font data.
899
900 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
901 (TCell): Redefine.
902 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
903 (gray_init_cells): Updated.
904 (gray_find_cell, gray_alloc_cell): New functions.
905 (gray_record_cell): Rewritten to use `gray_find_cell' and
906 `gray_alloc_cell'.
907 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
908 QSORT_THRESHOLD):
909 Removed.
910 (gray_shell_sort, gray_quick_sort, gray_check_sort,
911 gray_dump_cells): Removed.
912 (gray_sweep): Rewritten.
913 (gray_convert_glyph): Rewrite code which used one of the sorting
914 functions.
915 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000916
Werner Lembergd898aed2006-08-29 09:50:34 +00009172006-08-29 Dr. Werner Fink <werner@suse.de>
918
919 * configure: Make it possible to handle configure options which
920 have strings containing spaces.
921
9222006-08-27 David Turner <david@freetype.org>
923
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000924 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
925 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
926 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
927
928 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
929 src/truetype/truetype.c, src/truetype/ttdriver.c,
930 src/truetype/ttgload.c, src/truetype/ttgload.h,
931 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
932 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
933 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
934
935 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
936 member `force_autohint'.
937
938 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
939
940 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
941 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000942
Jens Claudiusa787f452006-08-27 11:26:18 +00009432006-08-27 Jens Claudius <jens.claudius@yahoo.com>
944
945 Fix miscellaneous compiler warnings.
946
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000947 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
948 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000949
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000950 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
951 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
952 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000953
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000954 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
955 volatileness of argument to ft_longjmp. Spotted by Werner
956 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000957
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000958 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
959 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000960
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000961 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
962 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000963
Werner Lembergc4c35b72006-08-27 08:03:46 +00009642006-08-27 Werner Lemberg <wl@gnu.org>
965
966 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
967 Reported by Jens.
968
Jens Claudius088e44e2006-08-22 14:24:30 +00009692006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000970
Jens Claudius088e44e2006-08-22 14:24:30 +0000971 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000972 about addresses of volatile objects passed as function arguments as
973 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000974
Werner Lembergc4c35b72006-08-27 08:03:46 +0000975 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
976 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000977
978 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
979 argument `table' a pointer to a volatile object.
980
981 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
982 argument `table' a pointer to a volatile object.
983
Jens Claudius2652bd52006-08-18 17:20:37 +00009842006-08-18 Jens Claudius <jens.claudius@yahoo.com>
985
986 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
987 variable `_sfnt' as volatile since it must keep its value across
988 a call to ft_setjmp.
989 (gxv_validate): Same for local variables `memory' and `valid'.
990 (classic_kern_validate): Same for local variables `memory',
991 `ckern', and `valid'.
992
993 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
994 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
995 `jstf', and 'valid'.
996
997 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
998 local variable `cmap'.
999
David Turner9fbfc6a2006-08-16 09:11:31 +000010002006-08-16 David Turner <david@freetype.org>
1001
Werner Lemberg12342992006-08-19 11:18:09 +00001002 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1003 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001004
Werner Lemberg12342992006-08-19 11:18:09 +00001005 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1006 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001007
David Turner33f5f242006-08-16 16:50:55 +00001008
Werner Lemberg12342992006-08-19 11:18:09 +00001009 Improvements to native TrueType hinting. This is a first try,
1010 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1011
1012 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1013 `extra_points2'.
1014
1015 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1016 `orus'.
1017
1018 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1019 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1020 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1021 handle `extra_points2'.
1022
1023 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1024 Remove compiler warning.
1025 (cur_to_arg): Remove macro.
1026 (TT_Hint_Glyph): Updated.
1027 (TT_Process_Simple_Glyph): Handle `orus'.
1028
1029 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1030 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1031 (LOC_Ins_IUP): Renamed to...
1032 (IUP_WorkerRec): This.
1033 Add `orus' member.
1034 (Shift): Renamed to...
1035 (_iup_worker_shift): This.
1036 Updated.
1037 (Interp): Renamed to...
1038 (_iup_worker_interpolate): This.
1039 Updated to handle `orus'.
1040 (Ins_IUP): Updated.
1041
1042 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1043 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001044
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000010452006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1046
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001047 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001048 build ftvalid in ft2demos. This has been inadvertedly changed
1049 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001050
10512006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1052
Werner Lemberg12342992006-08-19 11:18:09 +00001053 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1054 Jens:
1055 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001056
Werner Lemberg12342992006-08-19 11:18:09 +00001057 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1058 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001059
1060 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1061
Jens Claudius9950adc2006-08-13 12:14:36 +000010622006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1063
Werner Lemberg12342992006-08-19 11:18:09 +00001064 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1065 T1_TOKEN_TYPE_KEY.
1066 (T1_FieldRec): Add `dict'.
1067 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1068 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1069 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001070
Werner Lemberg12342992006-08-19 11:18:09 +00001071 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1072 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001073
1074 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1075
1076 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001077 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1078 not T1_TOKEN_TYPE_ANY.
1079 (ps_parser_load_field): Make sure a token that should be a string or
1080 name is really a string or name.
1081 Avoid memory leak if a keyword has been already encountered and its
1082 value is overwritten.
1083 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1084 T1_FIELD_XXX.
1085 (parse_dict): Ignore keywords that occur in the wrong dictionary
1086 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001087
Werner Lemberg12342992006-08-19 11:18:09 +00001088 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1089 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001090
Werner Lemberg12342992006-08-19 11:18:09 +00001091 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1092 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001093
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000010942006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1095
1096 Move creation of field `buildchar' of T1_DecoderRec out of
1097 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1098 of it.
1099
1100 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1101 and `T1_Compute_Max_Advance'.
1102
1103 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1104 Remove field `face', add `len_buildchar'.
1105
1106 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1107 field `buildchar'.
1108
1109 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1110 finisher for T1_Decoder.
1111 (cid_slot_load_glyph): Do not ignore failure when initializing the
1112 T1_Decoder.
1113
1114 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1115 Updated.
1116 (t1_decoder_init): Remove initialization of fields `buildchar' and
1117 `len_buildchar'.
1118 (t1_decoder_done): Remove deallocation of field `buildchar'.
1119
1120 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1121 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1122 T1_Decoder.
1123 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1124 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1125 case of error.
1126
1127 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1128 `buildchar' of T1_FaceRec.
1129
1130 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1131 `buildchar' of T1_FaceRec.
1132
Werner Lemberg1a380e02006-07-14 18:28:08 +000011332006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1134
1135 * freetype2/include/freetype/internal/psaux.h: New macros
1136 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1137 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1138 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1139 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1140 (T1_DecoderRec): New fields `buildchar' and `face'.
1141 (IS_PS_TOKEN): New macro.
1142
1143 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1144 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1145
1146 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1147 `default_design_vector' and `num_default_design_vector'.
1148
1149 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1150 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1151 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1152
1153 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1154 `token' argument to be NULL if we want only to count the number of
1155 tokens.
1156 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1157 want to skip the array.
1158 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1159 want to skip the array.
1160
1161 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1162 support for (partially commented out) othersubrs 19-25, 27, and 28.
1163 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1164 (t1_decoder_done): Release new field `buildchar'.
1165
1166 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1167 functions.
1168 (t1_keywords): Register them.
1169 (t1_allocate_blend): Updated.
1170 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1171 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1172 (parse_dict): Remove `keyword_flags' argument.
1173 Use new macro IS_PS_TOKEN.
1174 Changed function so that later PostScript definitions override
1175 earlier ones.
1176 (t1_init_loader): Initialize new field `keywords_encountered'.
1177 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1178 `len_buildchar'.
1179 Remove `keywords_flags'.
1180
1181 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1182 `keywords_encountered'.
1183 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1184
1185 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1186 New entries for parsing /NDV, /CDV, and /DesignVector.
1187
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000011882006-07-07 Werner Lemberg <wl@gnu.org>
1189
1190 Add many checks to protect against malformed PCF files.
1191
1192 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1193 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1194
1195 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1196 data and check that tables don't overlap (using a simple
1197 bubblesort).
1198 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1199 New macros which give the size of data structures in the data
1200 stream.
1201 (pcf_get_properties): Use rough estimates to get array size limits.
1202 Assign `face->nprops' and `face->properties' earlier so that a call
1203 to PCF_Face_Done can do the clean-up in case of error.
1204 Protect against invalid string offsets.
1205 (pcf_get_metrics): Clean up code.
1206 Adjust tracing message levels.
1207 Use rough estimate to get array size limit.
1208 (pcf_get_bitmaps): Clean up code.
1209 Adjust tracing message levels.
1210 Use rough estimates to get offset limits.
1211 (pcf_get_encodings): Adjust tracing message level.
1212 (pcf_get_accel): Clean up code.
1213
Werner Lemberg8eb05252006-06-27 06:20:01 +000012142006-06-26 Werner Lemberg <wl@gnu.org>
1215
1216 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1217 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1218
Werner Lemberg24703f82006-06-26 19:12:51 +000012192006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1220
1221 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1222 (t1_decoder_parse_charstrings): Operator with
1223 opcode 15 pops its two arguments.
1224 Handle the case where the pops of an othersubr may be part of a
1225 subroutine.
1226 Handle unknown othersubrs gracefully: count their operands and let
1227 the following pop operators push the operands as the results onto
1228 the Type1 stack.
1229 Improve handling of setcurrentpoint opcode.
1230
Werner Lembergc011f4c2006-06-26 09:40:00 +000012312006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1232
1233 The Type 1 parser now skips over top-level procedures as required
1234 for a `Simplified Parser'. This makes the parser more robust as it
1235 doesn't poke around in PostScript code. Additionally, it makes the
1236 FontDirectory hackery in src/type1/t1load.c unnecessary.
1237
1238 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1239 (skip_literal_string): Add FT_Error as return value.
1240 Handle escapes better.
1241 (skip_string): Add FT_Error as return value.
1242 Don't set `parser->error' but return error code directly.
1243 (skip_procedure): New function.
1244 (ps_parser_skip_PS_token): Handle procedures.
1245 Update code.
1246 (ps_parser_to_token): Update code.
1247 (ps_parser_load_field_table): Handle bbox entries also.
1248
1249 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1250 Add commented-out code for synthetic fonts.
1251
Werner Lemberga2da05c2006-06-25 06:27:27 +000012522006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1253
1254 Fix two hinting bugs as reported in
1255 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1256
1257 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1258 `first_point' member.
1259
1260 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1261 `first_point'.
1262 (TT_Process_Composite_Glyph): Always untouch points.
1263
1264 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1265 `first_point' and `last_point' in case of composite glyphs.
1266 (Ins_IUP): Fix computation of `end_point'.
1267
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012682006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1269
Werner Lembergef3d2c22006-06-25 06:07:14 +00001270 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1271 Mac. The original patch was written by David Sachitano and Lawrence
1272 Coopet, and modified by Sean McBride for MPW compatibility. Only
1273 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001274
Werner Lembergef3d2c22006-06-25 06:07:14 +00001275 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1276 Mac OS X platforms.
1277 (OS_INLINE): Undefine before definition.
1278 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1279 FontAssociation table in FOND resource.
1280 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1281 and fontSize at each entry of FontAssociation table in FOND
1282 resource.
1283 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1284 ffStylOff of FamilyRecord header of FOND resource, the header,
1285 fontSize, fontID at each entry of FontAssociation table, and
1286 StyleMapping table.
1287 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001288
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000012892006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1290
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001291 Public API of TrueTypeGX, OpenType, and classic kern table validator
1292 should return `FT_Err_Unimplemented_Feature' if validation service
1293 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001294 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001295 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1296
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001297 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1298 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1299 unavailable.
1300 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1301 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001302
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001303 * src/base/ftotval.c (FT_OpenType_Validate): Return
1304 FT_Err_Unimplemented_Feature if OpenType validation service is
1305 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001306
Werner Lembergb10e45a2006-06-08 07:32:56 +000013072006-06-08 Werner Lemberg <wl@gnu.org>
1308
1309 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1310 errors.
1311
David Turner5f1f7502006-06-07 05:11:50 +000013122006-06-07 David Turner <david@freetype.org>
1313
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001314 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1315 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1316 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001317
David Turner457b4a82006-06-06 08:14:14 +000013182006-06-06 David Turner <david@freetype.org>
1319
Werner Lemberg4836f952006-06-06 12:54:08 +00001320 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001321
Werner Lemberg4836f952006-06-06 12:54:08 +00001322 We change `ps_unicodes_init' so that it also takes a
1323 `free_glyph_name' callback to release the glyph names returned by
1324 `get_glyph_name'
1325
1326 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1327 Renamed to ...
1328 (PS_GetGlyphNameFunc): This.
1329 (PS_FreeGlyphNameFunc): New typedef.
1330 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1331
1332 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1333 argument.
1334 (cff_sid_free_glyph_name): New function.
1335 (cff_cmap_unicode_init): Updated.
1336
1337 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1338
1339 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1340 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001341
1342
David Turner09717352006-06-04 14:33:08 +000013432006-06-04 David Turner <david@freetype.org>
1344
Werner Lembergd724f202006-06-04 15:17:41 +00001345 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1346 `item_size == 0' as well -- though this sounds weird, it can
1347 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001348
Werner Lembergd724f202006-06-04 15:17:41 +00001349 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1350 of `face->num_glyphs' which missed the last glyph, due to
1351 the offset-by-1 computation, since the PFR format doesn't
1352 guarantee that glyph index 0 corresponds to the `missing
1353 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001354
Werner Lemberg33779662006-05-26 06:30:05 +000013552006-05-25 Werner Lemberg <wl@gnu.org>
1356
1357 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1358 `-no-undefined'. Reported by Christian Biesinger.
1359
Werner Lemberg24773d62006-05-20 08:53:13 +000013602006-05-19 Brian Weed <bw@imaginengine.com>
1361
1362 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1363 have debug information, and debug libraries use `C7 compatible'
1364 debug info.
1365
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000013662006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1367
Werner Lemberga6523a62006-05-20 08:47:01 +00001368 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001369 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001370
Werner Lemberga6523a62006-05-20 08:47:01 +00001371 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1372 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001373
1374 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001375 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001376
13772006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1378
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001379 * build/unix/configure.raw: Add a fallback to disable Carbon
1380 dependency, if configured with no options on Mac OS X.
1381
13822006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1383
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001384 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001385 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001386 the second part of Savannah bug #16590.
1387
Werner Lemberg545c4e52006-05-17 22:55:04 +000013882006-05-18 Werner Lemberg <wl@gnu.org>
1389
1390 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1391 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1392
David Turnerdc3ff312006-05-17 12:59:35 +000013932006-05-17 David Turner <david@freetype.org>
1394
Werner Lemberg545c4e52006-05-17 22:55:04 +00001395 This is a major patch used to drastically improve the performance of
1396 loading glyphs. This both speeds up loading the glyph vectors
1397 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001398
Werner Lemberg545c4e52006-05-17 22:55:04 +00001399 We now use inline assembler code with GCC to implement `FT_MulFix',
1400 which is probably the most important function related to the
1401 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001402
Werner Lemberg545c4e52006-05-17 22:55:04 +00001403 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001404
1405
Werner Lemberg545c4e52006-05-17 22:55:04 +00001406 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1407 `cursor' and `limit'.
1408
1409 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1410 New functions.
1411 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1412 [TEST]: Remove.
1413
1414 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1415 code.
1416
1417 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1418 `FT_ZERO'
1419 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1420 (af_glyph_hints_reload: Rewrite recognition of weak points.
1421
1422 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1423 constant values out of the loops.
1424
1425 * src/autofit/aftypes.h: Updated.
1426
1427 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1428
1429 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1430 product to get orientation.
1431
1432 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1433 (FT_Stream_OpenGzip): Use it to handle small files directly in
1434 memory.
1435
1436 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1437 Improve performance.
1438
1439 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1440 `limit'.
1441
1442 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1443 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1444 exceedingly large values of number of contours. Speed up by
1445 reducing the number of loops.
1446
1447 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1448
1449
1450 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1451 used to detect rogue clients from 4 to 16. This is to prevent some
1452 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1453 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001454
Werner Lembergde2d90a2006-05-17 08:54:30 +000014552007-05-17 Werner Lemberg <wl@gnu.org>
1456
1457 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001458 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001459
14602006-05-16 Werner Lemberg <wl@gnu.org>
1461
1462 * docs/PROBLEMS: Updated icl issues.
1463
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001464----------------------------------------------------------------------------
1465
Werner Lemberg42b63b22007-01-21 21:01:33 +00001466Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001467David Turner, Robert Wilhelm, and Werner Lemberg.
1468
1469This file is part of the FreeType project, and may only be used, modified,
1470and distributed under the terms of the FreeType project license,
1471LICENSE.TXT. By continuing to use, modify, or distribute this file you
1472indicate that you have read the license and understand and accept it
1473fully.
1474
1475
1476Local Variables:
1477version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001478coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001479End: