blob: 1c8ba2fcb4a1ba2131b1000c9cf9eeae2b49f273 [file] [log] [blame]
David Turnera42567b2007-01-25 12:23:37 +000012007-01-25 David Turner <david@freetype.org>
2
Werner Lembergd7855662007-01-25 13:53:56 +00003 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00004
Werner Lembergd7855662007-01-25 13:53:56 +00005 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
6 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
7 functions.
David Turnera42567b2007-01-25 12:23:37 +00008
Werner Lembergd7855662007-01-25 13:53:56 +00009 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +000010
Werner Lembergb1be9e82007-01-25 11:50:00 +0000112007-01-25 Werner Lemberg <wl@gnu.org>
12
13 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +000014 correctly in a sanity check. Since this function is only used to
15 load local and global functions, any charstring that called the last
16 local/global function would fail otherwise. This fixes Savannah bug
17 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +000018
19 * docs/CHANGES: Document it.
20
David Turnerb6de8d12007-01-23 15:51:50 +0000212007-01-23 David Turner <david@freetype.org>
22
Werner Lembergb1be9e82007-01-25 11:50:00 +000023 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
24 prevented compilation when disabling both the unpatented and the
25 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000026
Werner Lembergb1be9e82007-01-25 11:50:00 +000027
28 Fix and enable the warper to improve `light' hinting mode. This is
29 not necessarily a final version, but it seems to work well.
30
31 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
32 Disable code.
33 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
34 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
35
36 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
37 (af_warper_compute_line_best): Fix array size of `scores'.
38 (af_warper_compute): Better handling of border cases.
39 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
40 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +000041
Werner Lemberg011d1112007-01-21 09:36:00 +0000422007-01-21 Werner Lemberg <wl@gnu.org>
43
Werner Lemberg42b63b22007-01-21 21:01:33 +000044 * ChangeLog: Split off older entries into...
45 * ChangeLog.22: This new file.
46
472007-01-21 Werner Lemberg <wl@gnu.org>
48
Werner Lemberg555258f2007-01-21 09:46:37 +000049 * docs/CHANGES: Document SHZ fix.
50
512007-01-21 George Williams <gww@silcom.com>
52
53 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
54 points.
55
562007-01-21 Werner Lemberg <wl@gnu.org>
57
Werner Lemberg011d1112007-01-21 09:36:00 +000058 * src/sfnt/ttmtx.c (tt_face_get_metrics)
59 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
60
Werner Lemberg87a5a432007-01-17 12:44:39 +0000612007-01-17 Werner Lemberg <wl@gnu.org>
62
Werner Lembergb8003292007-01-17 12:56:25 +000063
64 * Version 2.3.0 released.
65 =========================
66
67
68 Tag sources with `VER-2-3-0-FINAL'.
69
702007-01-17 Werner Lemberg <wl@gnu.org>
71
Werner Lemberg87a5a432007-01-17 12:44:39 +000072 * docs/release: Updated.
73
David Turner22122722007-01-16 20:06:44 +0000742007-01-16 David Turner <david@freetype.org>
75
Werner Lemberg87a5a432007-01-17 12:44:39 +000076 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
77 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
78 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
79 warnings.
David Turner22122722007-01-16 20:06:44 +000080
Werner Lemberg267e1d72007-01-15 07:48:09 +0000812007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
82
83 * builds/amiga/makefile, builds/amiga/makefile.os4,
84 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
85
86 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
87
Werner Lemberg8c4120d2007-01-15 06:42:40 +0000882007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
89
90 Fix various compiler warnings.
91
92 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
93 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
94 s/index/strike_index/.
95 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
96
97 * src/gxvalid/gxvmorx5.c
98 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
99
100 * src/truetype/ttinterp.c (Compute_Point_Displacement),
101 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
102 uninitialized variables.
103
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001042007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
105
106 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
107
Werner Lemberg281c1482007-01-13 22:50:51 +00001082007-01-13 Werner Lemberg <wl@gnu.org>
109
110 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
111 versions up to 0x3FF without complaining.
112
Werner Lembergac250b22007-01-13 14:01:36 +00001132007-01-13 Derek Clegg <dclegg@apple.com>
114
115 Add FT_Get_PS_Font_Info interface to CFF driver.
116
117 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
118 (CFF_FontRec): Add `font_info' field.
119
120 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
121 (cff_font_done): Free font->font_info if necessary.
122
123 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
124 (cff_service_ps_info): Register cff_ps_get_font_info.
125
Werner Lemberg23df31a2007-01-13 08:45:00 +00001262007-01-13 Werner Lemberg <wl@gnu.org>
127
128 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
129 with C++ compiler.
130
131 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
132 af_glyph_hints_dump_edges): Ditto.
133
134 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
135 `modules.cfg').
136
137 * src/sfnt/ttsbit0.h: Remove.
138
139 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
140
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001412007-01-12 David Turner <david@freetype.org>
142
143 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
144 bug in the bitmap emboldener if the pitch of the source bitmap is
145 much larger than its width.
146
147 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
148 compilation warning.
149
Werner Lemberg6d96d312007-01-12 10:30:19 +00001502007-01-12 Werner Lemberg <wl@gnu.org>
151
152 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
153 `automake' CVS module from sources.redhat.com.
154
Werner Lemberg17432b52007-01-12 09:28:44 +00001552007-01-11 Werner Lemberg <wl@gnu.org>
156
157 * src/type1/t1load.c (is_space): Removed.
158 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
159 (parse_charstrings): Use IS_PS_TOKEN.
160
161
162 * autogen.sh: Avoid bash specific syntax.
163
David Turner038ace22007-01-11 15:00:59 +00001642007-01-11 David Turner <david@freetype.org>
165
Werner Lemberg17432b52007-01-12 09:28:44 +0000166 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000167
Werner Lemberg17432b52007-01-12 09:28:44 +0000168 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000169
Werner Lemberg17432b52007-01-12 09:28:44 +0000170 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
171 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000172 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000173
Werner Lemberg17432b52007-01-12 09:28:44 +0000174 * autogen.sh: Small fix to get it working on Mac OS X properly:
175 The issue is that GNU libtool is called `glibtool' on this platform,
176 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000177
David Turner2628ea92007-01-10 13:15:56 +00001782007-01-10 David Turner <david@freetype.org>
179
Werner Lemberg17432b52007-01-12 09:28:44 +0000180 * all-sources: Tag all sources with VER-2-3-0-RC1 and
181 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000182
Werner Lemberg17432b52007-01-12 09:28:44 +0000183 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
184 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
185 version number to 2.3.0.
186
187 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
188 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000189
190 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000191 include/freetype/ftlcdfil.h: Update reference documentation with
192 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000193
Werner Lemberg17432b52007-01-12 09:28:44 +0000194 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
195 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000196
Werner Lembergbf02d392007-01-10 07:07:37 +00001972007-01-10 Derek Clegg <dclegg@apple.com>
198
199 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
200 values.
201
David Turnerf48b60e2007-01-08 15:15:32 +00002022007-01-08 David Turner <david@freetype.org>
203
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000204 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000205
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000206 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
207 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000208 corresponding to a given character pixel size.
209
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000210 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
211 `gasp' table, in order to avoid potential problems with later
212 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000213
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000214 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
215 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000216
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000217 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
218 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
219 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
220 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000221
Werner Lemberge6b6f372007-01-07 00:06:47 +00002222007-01-07 Werner Lemberg <wl@gnu.org>
223
Werner Lembergb8004d22007-01-07 09:13:38 +0000224 * src/cid/cidparse.c (cid_parser_new): Improve error message for
225 Type 11 fonts.
226 Scan for `/sfnts' token.
227
2282007-01-07 Werner Lemberg <wl@gnu.org>
229
230 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000231
Werner Lembergbe5f7972007-01-06 07:51:48 +00002322007-01-06 Werner Lemberg <wl@gnu.org>
233
234 * src/cff/cffload.c (cff_index_init): Remove unused variable.
235 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
236
David Turnera8cf42b2007-01-04 16:46:46 +00002372007-01-04 David Turner <david@freetype.org>
238
Werner Lembergf6294392007-01-06 07:47:45 +0000239 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
240 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000241
Werner Lembergf6294392007-01-06 07:47:45 +0000242
243 Do not allocate interpreter-specific tables in memory if we are not
244 going to load glyphs with the bytecode interpreter anyway.
245
246 * src/truetype/ttgload.c (tt_loader_init): Load execution context
247 only if glyph is hinted.
248 Updated.
249 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
250 and `cvs_ready'.
251 Add `tt_size_ready_bytecode' declaration.
252 * src/truetype/ttobjs.c (tt_size_done_bytecode,
253 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
254 (tt_size_init): Move most code into `tt_size_init_bytecode'.
255 (tt_size_done): Move most code into `tt_size_done_bytecode'.
256 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000257
David Turner91a34022007-01-05 14:47:08 +0000258
Werner Lembergf6294392007-01-06 07:47:45 +0000259 Don't extract the metrics table from the SFNT font file. Instead,
260 reparse it on each glyph load. The runtime difference is not
261 noticeable, and it can save a lot of heap memory when memory-mapped
262 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000263
Werner Lembergf6294392007-01-06 07:47:45 +0000264 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
265 `horz_metrics_offset' and `vert_metrics_ofset'.
266 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
267 Updated.
268
269
270 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
271
272
273 Do not load the CFF index offsets into memory, since this wastes a
274 *lot* of heap memory with large Asian CFF fonts. There is no
275 significant performance loss.
276
277 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
278 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
279 `data_size'.
280 (CFF_CharsetRec): Add field `num_glyphs'.
281
282 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
283 cff_charset_cid_to_gindex): New functions.
284 (cff_new_index): Renamed to...
285 (cff_index_init): This. Update all callers.
286 Updated -- some code has been moved to `cff_index_load_offsets'.
287 (cff_done_index): Renamed to...
288 (cff_index_done): This. Update all callers.
289 (cff_index_get_pointers, cff_index_access_element): Updated to use
290 stream offsets.
291 (cff_charset_compute_cids): Set `num_glyphs' field.
292 (cff_encoding_load): Updated.
293
294 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000295
2962007-01-04 David Turner <david@freetype.org>
297
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000298 * docs/INSTALL.UNIX: Simplify some parts, add reference to
299 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000300
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000301 * README.CVS: Add common problem description and solution
302 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000303
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000304 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000305
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000306 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000307
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000308 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000309
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000310 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
311 (TWorker): This.
312 Remove `count_table' and `memory'.
313 Make `grays' a pointer.
314 (TRaster): New structure.
315 (count_table): New static array.
316 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
317 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
318 ft_black_set_mode, ft_black_render): Updated.
319 (ft_black_init): Don't initialize `count_table'.
320 (ft_black_reset): Use the render pool. This saves about 6KB of
321 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000322
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000323 * src/smooth/ftgrays.c (TRaster): Replaced with...
324 (TWorker): This.
325 Remove `memory'.
326 (TRaster): New structure.
327
328 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
329 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
330 gray_render_span, gray_raster_render): Updated.
331 (gray_raster_reset): Use the render pool. This saves about 6KB of
332 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000333
David Turner8a6c44e2007-01-04 17:03:11 +0000334 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
335 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000336 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
337 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
338 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000339
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000340 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
341 Remove a typo that results in no hinting and a memory leak with some
342 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000343
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000344 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000345 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000346 CFF_Faces in it. We need to close all faces before destroying the
347 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000348
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003492007-01-02 Werner Lemberg <wl@gnu.org>
350
351 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
352 Remove compiler warning.
353
David Turner9207e002007-01-02 16:58:13 +00003542007-01-02 David Turner <david@freetype.org>
355
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000356 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000357
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003582006-12-31 Masatake YAMATO <jet@gyve.org>
359
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000360 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
361 function.
362 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000363 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000364 `gxv_kern_subtable_fmt0_pairs_validate'.
365
David Turner115b4422006-12-22 11:37:05 +00003662006-12-22 David Turner <david@freetype.org>
367
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000368 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
369 warnings.
David Turner115b4422006-12-22 11:37:05 +0000370
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000371 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
372 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000373
Werner Lemberg4755bf72006-12-16 08:58:44 +00003742006-12-16 Anders Kaseorg <anders@kaseorg.com>
375
376 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
377 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
378
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003792006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
380
Werner Lemberg9b774e22007-01-16 06:11:27 +0000381 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000382 sync with the modification by Jens Claudius on 2006-08-22; cf.
383 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 +0000384
3852006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
386
387 * src/base/ftmac.c: Specialized for Mac OS X only.
388 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
389 * builds/unix/configure.raw: Ditto. When explicit switches for
390 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
391 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
392
3932006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
394
395 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
396 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
397 instead of src/base/ftmac.c
398 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
399 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
400 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
401 that cannot be built at present.
402
4032006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
404
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000405 * src/base/ftobjs.c: Improvement of resource fork handler for
406 POSIX, cf.
407 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000408 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
409 format or .dfont, to simulate the face index number counted by ftmac.c.
410 (IsMacResource): Return the number of scalable faces correctly.
411
Werner Lembergec5b4502006-12-10 07:51:38 +00004122006-12-10 Werner Lemberg <wl@gnu.org>
413
414 * builds/toplevel.mk (version): Protect against `distclean' target.
415
Werner Lembergb26b3142006-12-09 20:01:43 +00004162006-12-09 Werner Lemberg <wl@gnu.org>
417
418 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
419 or `type'.
420
421 * builds/freetype.mk (version): Extracted from freetype.h, using
422 GNU make's built-in string functions.
423 (refdoc): Use $(version) instead of static version number.
424
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004252006-12-08 Werner Lemberg <wl@gnu.org>
426
427 * builds/toplevel.mk (dist): Extract version number from freetype.h.
428
Werner Lemberg15c29502006-12-09 07:29:54 +00004292006-12-08 Vladimir Volovich <vvv@vsu.ru>
430
431 * src/tools/apinames (State): Remove final comma in structure -- xlc
432 v5 under AIX 4.3 doesn't like this.
433
David Turnerdbf3b432006-12-07 21:18:09 +00004342006-12-07 David Turner <david@freetype.org>
435
Werner Lemberg256a3512006-12-08 06:49:33 +0000436 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
437 to the spacing of auto-fitted glyphs. This only impacts rare
438 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000439
Werner Lemberg11171312006-12-03 09:43:40 +00004402006-12-03 Werner Lemberg <wl@gnu.org>
441
442 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
443
Werner Lemberg960ba592006-12-01 08:20:47 +00004442006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000445
Werner Lemberg960ba592006-12-01 08:20:47 +0000446 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
447 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
448 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000449
David Turner80658e52006-11-28 08:09:20 +0000450
Werner Lemberg960ba592006-12-01 08:20:47 +0000451 * include/freetype/ftxf86.h: Fix and extend comment so that it
452 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000453
Werner Lemberg960ba592006-12-01 08:20:47 +0000454 * include/freetype/ftchapters.h: Add `font_format' section.
455
456
457 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
458 to TOC in index page.
459
4602006-11-28 David Turner <david@freetype.org>
461
462 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
463 trying to render into a zero-width/height bitmap, not an error code.
464
465 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
466
467 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
468 ones instead.
469
470 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
471 variable.
David Turner80658e52006-11-28 08:09:20 +0000472
Werner Lemberg8636c292006-11-26 22:28:13 +00004732006-11-26 Pierre Hanser <hanser@club-internet.fr>
474
475 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
476
Werner Lemberg960ba592006-12-01 08:20:47 +00004772006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000478
Werner Lemberg960ba592006-12-01 08:20:47 +0000479 * src/autofit/afhints.c (af_glyph_hints_dump_points,
480 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
481 Add stubs to link the `ftgrid' test program when debugging is
482 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000483
Werner Lemberg960ba592006-12-01 08:20:47 +00004842006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000485
486 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000487 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
488
489 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
490 Emit more sensible information.
491
492 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
493
494 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
495 rounding of blue values.
496 (af_latin_hints_compute_segments): Hint segment heights.
497 (af_latin_hints_link_segments): Reduce `len_score' value.
498 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
499 value and use `height' member for comparisons.
500 (af_latin_hint_edges): Extend logging message.
501 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000502
Werner Lemberg91959bf2006-11-22 10:36:55 +00005032006-11-22 Werner Lemberg <wl@gnu.org>
504
505 Fix Savannah bug #15553.
506
507 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
508 program after a change from mono to grayscaling (and vice versa).
509 Use correct constant for comparison to get `exec->grayscale'.
510
Werner Lemberg913a3652006-11-19 09:19:17 +00005112006-11-18 Werner Lemberg <wl@gnu.org>
512
513 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000514 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000515 This patch fixes Savannah bug #18301.
516
517 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
518 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
519 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
520 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
521 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
522 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
523 (FNT_Load_Glyph): Check validity of `glyph_index'.
524
David Turner7bab6ae2006-11-13 11:25:06 +00005252006-11-13 David Turner <david@freetype.org>
526
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000527 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
528 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000529
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000530 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
531 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
532 when building the library to change the default LCD filter to be
533 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000534
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000535 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000536
David Turner8765c712006-11-10 16:49:42 +00005372006-11-10 David Turner <david@freetype.org>
538
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000539 * src/smooth/ftsmooth.c: API change for the LCD
540 filter. The FT_LcdFilter value is an enumeration describing which
541 filter to apply, with new values FT_LCD_FILTER_LIGHT and
542 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
543 algorithm which produces strong color fringes for everything
544 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000545
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000546 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
547 second parameter to an enum type.
548
549 * src/base/ftlcdfil.c (USE_LEGACY): Define.
550 (_ft_lcd_filter): Rename to...
551 (_ft_lcd_filter_fir): This.
552 Update parameters.
553 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
554 (FT_Library_Set_LcdFilter): Update parameters.
555 Handle new filter modes.
556
557 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
558 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
559 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
560 callback and update other fields.
561
562 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
563 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
564 Other minor improvements.
565
566 * src/autofit/aflatin.c: Various tiny improvements that drastically
567 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
568 (af_latin_hints_compute_edges): Fix typo.
569 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000570
David Turner4e9cc3c2006-11-09 16:31:52 +00005712006-11-09 David Turner <david@freetype.org>
572
Werner Lemberg49c77a82006-11-09 21:51:57 +0000573 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
574 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000575
Werner Lemberg5e430892006-11-07 09:35:03 +00005762006-11-07 Zhe Su <james.su@gmail.com>
577
578 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
579 also.
580
Werner Lemberg111b5ae2006-11-03 09:40:12 +00005812006-11-03 Werner Lemberg <wl@gnu.org>
582
583 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
584
David Turner40604742006-11-02 16:37:35 +00005852006-11-02 David Turner <david@freetype.org>
586
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000587 Add a few tweaks to better handle serif fonts.
588 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000589
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000590 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
591 segments that are less than 1.5 pixels high. This gets rid of
592 *many* corner cases with serifs.
593 (af_latin_align_linked_edge): Add logging message.
594 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
595 Add logging messages.
596 Handle AF_EDGE_FLAG flag specially.
597
598 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
599 _af_debug_disable_blue_hints, and _af_debug_hints variables.
600
601 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
602 Update external declarations.
603 (af_corner_orientation, af_corner_is_flat): Replaced by...
604
605 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
606 ft_corner_is_flat): These declarations.
607
608 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
609 Comment out. Replaced by...
610
611 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
612 These functions. Update all callers.
613 (FT_Add64) [!FT_LONG64]: Simplify.
614
615 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
616 (af_direction_compute): Add a missing FT_ABS call. This bug caused
617 production of garbage by missing lots of segments.
618
619 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
620
621 * src/autofit/afloader.c (af_loader_init, af_loader_done)
622 [AF_DEBUG]: Set _af_debug_hints.
623
624
625 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
626 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
627 and ft_corner_orientation.
628
629
630 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000631
Werner Lemberge88c5262006-10-24 05:46:26 +00006322006-10-24 Werner Lemberg <wl@gnu.org>
633
634 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
635
636 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
637 as argument.
638
David Turnera1861392006-10-23 16:00:59 +00006392006-10-23 Zhe Su <zsu@novell.com>
640
Werner Lemberg715e96e2006-10-24 05:28:45 +0000641 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
642 better deal with broken Asian fonts with strange glyphs, having
643 self-intersections and other peculiarities. The used algorithm is
644 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000645
David Turnere140f142006-10-23 08:56:57 +00006462006-10-23 David Turner <david@freetype.org>
647
Werner Lemberg715e96e2006-10-24 05:28:45 +0000648 Speed up the CFF font loader. With some large CFF fonts,
649 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000650
Werner Lemberg715e96e2006-10-24 05:28:45 +0000651 * src/cff/cffload.c (cff_get_offset): Removed.
652 (cff_new_index): Inline functionality of `cff_get_offset'.
653 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
654 (cff_charset_done): Call `cff_charset_free_cids'.
655 (cff_charset_load): Call `cff_charset_compute_cids'.
656 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
657
658 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
659 with FT_NEXT_XXX.
660
661
662 Speed up the Postscript hinter, with more than 100% speed increase
663 on my machine.
664
665 * src/pshinter/pshalgo.c (psh_corner_is_flat,
666 psh_corner_orientation): New functions.
667 (psh_glyph_compute_inflections): Merge loops for efficiency.
668 Use `psh_corner_orientation'.
669 (psh_glyph_init): Use `psh_corner_is_flat'.
670 (psh_hint_table_find_strong_point): Renamed to...
671 (psh_hint_table_find_strong_points): This.
672 Rewrite, adding argument to handle all points at once.
673 Update all callers.
674 (PSH_MAX_STRONG_INTERNAL): New macro.
675 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000676
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00006772006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
678
679 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000680 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000681
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00006822006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
683
684 * docs/INSTALL.CROSS: New document file for cross-building.
685
686 * builds/unix/configure.raw: Preliminary cross-building support.
687 Find native C compiler and pass it by CC_BUILD, and
688 find suffix for native executable and pass it by EXEEXT_BUILD.
689 Also suffix for target executable is passed by EXEEXT.
690
Werner Lembergb9e6d692006-10-15 08:58:40 +0000691 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
692 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000693 CC_BUILD and EXEEXT_BUILD.
694
Werner Lembergb9e6d692006-10-15 08:58:40 +0000695 * builds/exports.mk (APINAMES_EXE): Change the extension for
696 apinames from the suffix for target (E) to that for building host
697 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000698
Werner Lemberg82a07e92006-10-12 06:20:44 +00006992006-10-12 Werner Lemberg <wl@gnu.org>
700
701 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
702 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
703 which reference those files.
704
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007052006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
706
Werner Lembergb9e6d692006-10-15 08:58:40 +0000707 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
708 embedded in freetype2.pc and freetype-config. Use it to record
709 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000710
711 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
712
713 * builds/unix/freetype-config.in: Ditto.
714
Werner Lemberg28e17d92006-10-11 17:27:47 +00007152006-10-11 Werner Lemberg <wl@gnu.org>
716
717 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
718 development.
719
Jens Claudius336d2292006-10-03 08:53:37 +00007202006-10-03 Jens Claudius <jens.claudius@yahoo.com>
721
722 * include/freetype/config/ftstdlib.h: Cast away volatileness from
723 argument to ft_setjmp.
724
725 * include/freetype/internal/ftvalid.h: Add comment that
726 ft_validator_run must not be used.
727
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007282006-10-01 Werner Lemberg <wl@gnu.org>
729
730 * src/base/ftbase.c: Undo change from 2006-09-30.
731
732 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
733
7342006-09-30 David Turner <david@freetype.org>
735
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000736 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
737 s/unpatented_hinting/ignore_unpatented_hinter/.
738 Update all callers.
739
740 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
741 auto-hinting shall be used or not.
742
743 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000744
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007452006-09-30 Werner Lemberg <wl@gnu.org>
746
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000747 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
748 in use).
749
750 * src/base/ftbase.c: Include `ftlcdfil.c'.
751
Werner Lemberg9b15ea32006-09-29 18:22:11 +00007522006-09-29 Werner Lemberg <wl@gnu.org>
753
754 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
755 overlapping segments. Bug reported by Stefan Koch.
756
David Turnerad830712006-09-27 16:20:59 +00007572006-09-28 David Turner <david@freetype.org>
758
Werner Lemberg2c002e12006-09-29 21:31:53 +0000759 Fix a bug in the automatic unpatented hinting support which prevents
760 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000761
Werner Lemberg2c002e12006-09-29 21:31:53 +0000762 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
763 s/force_autohint/unpatented_hinting/. Update all callers.
764
765 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
766
767 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000768
David Turner8a317cf2006-09-27 07:52:48 +00007692006-09-27 David Turner <david@freetype.org>
770
Werner Lemberg2c002e12006-09-29 21:31:53 +0000771 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000772
David Turner8a317cf2006-09-27 07:52:48 +0000773
David Turnere140f142006-10-23 08:56:57 +0000774 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000775 In a default build, the function `FT_Library_SetLcdFilter' returns
776 `FT_Err_Unimplemented_Feature'; you need to #define
777 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
778 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000779
Werner Lemberg2c002e12006-09-29 21:31:53 +0000780 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000781
Werner Lemberg2c002e12006-09-29 21:31:53 +0000782 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
783 typedef.
784 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
785 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000786
Werner Lemberg2c002e12006-09-29 21:31:53 +0000787 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
788 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000789
Werner Lemberg2c002e12006-09-29 21:31:53 +0000790 Handle subpixel rendering.
791 Simplify function.
792 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
793 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
794
795 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
796 pointing to <freetype/ftlcdfil.h>.
797
798 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
799 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
800
801 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000802
Werner Lemberge20df4a2006-09-27 06:29:21 +00008032006-09-26 David Bustin
804
805 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
806 correctly. Reported as Savannah bug #17843.
807
David Turner6f8c6222006-09-26 15:42:44 +00008082006-09-26 David Turner <david@freetype.org>
809
Werner Lemberg110246c2006-09-26 21:55:44 +0000810 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
811 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
812 horizontal and vertical hinting for the purpose of debugging the
813 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000814
Werner Lemberg110246c2006-09-26 21:55:44 +0000815 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
816 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000817
Werner Lemberg110246c2006-09-26 21:55:44 +0000818 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
819
820 * include/freetype/config/ftoption.h, devel/ftoption.h
821 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
822 we want to compile LCD-optimized rendering code (à la ClearType) or
823 not. The macro *must* be disabled in default builds of the library
824 for patent reasons.
825
826 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
827 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
828 isn't defined at compile time. This only changes the content of the
829 rendered glyph to match the one of normal gray-level rendering,
830 hence clients should not need to be modified.
831
832 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000833
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008342006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
835
836 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
837 LWFN fails and both are available.
838
David Turnerf3050052006-09-11 12:00:32 +00008392006-09-11 David Turner <david@freetype.org>
840
Werner Lembergf9644552006-09-12 13:48:10 +0000841 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
842 report their English names through an Apple Roman
843 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000844
Werner Lembergf9644552006-09-12 13:48:10 +0000845 If the font uses another name entry with language_id == English, it
846 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000847
Werner Lembergf9644552006-09-12 13:48:10 +0000848 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
849 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000850
Werner Lemberg36d2eab2006-09-05 19:24:34 +00008512006-09-05 Werner Lemberg <wl@gnu.org>
852
853 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000854 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000855 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
856 `HAN NOM B.ttf').
857
858 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
859
David Turner772e55d2006-09-05 09:45:15 +00008602006-09-05 David Turner <david@freetype.org>
861
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000862 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000863
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000864 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
865 (TRaster): Remove `count_ex' and `count_ey'.
866 (gray_find_cell): Remove 2nd and 3rd argument.
867 (gray_alloc_cell): Merged with `gray_find_cell'.
868 (gray_record_cell): Simplify.
869 (gray_set_cell): Rewrite.
870 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
871 (gray_render_span): Don't use FT_MEM_SET for small values.
872 (gray_dump_cells) [DEBUG_GRAYS]: New function.
873 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
874 bitmap scanline.
875 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000876
David Turneraa557a92006-09-04 16:42:44 +00008772006-09-04 David Turner <david@freetype.org>
878
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000879 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
880 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000881
Werner Lemberg2d8629b2006-09-03 06:18:45 +00008822006-09-03 Werner Lemberg <wl@gnu.org>
883
884 * devel/ftoption.h: Synchronize with
885 include/freetype/config/ftoption.h.
886
887 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
888 variable declaration.
889 (gray_convert_glyph): Fix compiler warnings.
890
David Turner6d79f212006-09-01 14:09:35 +00008912006-09-01 David Turner <david@freetype.org>
892
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000893 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
894 to recognize a few fonts that require the automatic unpatented
895 loader.
David Turnerbd502952006-09-01 19:05:24 +0000896
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000897 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
898 rasterizer. The speed improvement is between 15% and 25%, depending
899 on the font data.
900
901 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
902 (TCell): Redefine.
903 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
904 (gray_init_cells): Updated.
905 (gray_find_cell, gray_alloc_cell): New functions.
906 (gray_record_cell): Rewritten to use `gray_find_cell' and
907 `gray_alloc_cell'.
908 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
909 QSORT_THRESHOLD):
910 Removed.
911 (gray_shell_sort, gray_quick_sort, gray_check_sort,
912 gray_dump_cells): Removed.
913 (gray_sweep): Rewritten.
914 (gray_convert_glyph): Rewrite code which used one of the sorting
915 functions.
916 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000917
Werner Lembergd898aed2006-08-29 09:50:34 +00009182006-08-29 Dr. Werner Fink <werner@suse.de>
919
920 * configure: Make it possible to handle configure options which
921 have strings containing spaces.
922
9232006-08-27 David Turner <david@freetype.org>
924
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000925 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
926 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
927 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
928
929 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
930 src/truetype/truetype.c, src/truetype/ttdriver.c,
931 src/truetype/ttgload.c, src/truetype/ttgload.h,
932 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
933 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
934 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
935
936 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
937 member `force_autohint'.
938
939 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
940
941 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
942 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000943
Jens Claudiusa787f452006-08-27 11:26:18 +00009442006-08-27 Jens Claudius <jens.claudius@yahoo.com>
945
946 Fix miscellaneous compiler warnings.
947
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000948 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
949 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000950
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000951 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
952 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
953 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000954
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000955 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
956 volatileness of argument to ft_longjmp. Spotted by Werner
957 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000958
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000959 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
960 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000961
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000962 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
963 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000964
Werner Lembergc4c35b72006-08-27 08:03:46 +00009652006-08-27 Werner Lemberg <wl@gnu.org>
966
967 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
968 Reported by Jens.
969
Jens Claudius088e44e2006-08-22 14:24:30 +00009702006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000971
Jens Claudius088e44e2006-08-22 14:24:30 +0000972 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000973 about addresses of volatile objects passed as function arguments as
974 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000975
Werner Lembergc4c35b72006-08-27 08:03:46 +0000976 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
977 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000978
979 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
980 argument `table' a pointer to a volatile object.
981
982 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
983 argument `table' a pointer to a volatile object.
984
Jens Claudius2652bd52006-08-18 17:20:37 +00009852006-08-18 Jens Claudius <jens.claudius@yahoo.com>
986
987 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
988 variable `_sfnt' as volatile since it must keep its value across
989 a call to ft_setjmp.
990 (gxv_validate): Same for local variables `memory' and `valid'.
991 (classic_kern_validate): Same for local variables `memory',
992 `ckern', and `valid'.
993
994 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
995 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
996 `jstf', and 'valid'.
997
998 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
999 local variable `cmap'.
1000
David Turner9fbfc6a2006-08-16 09:11:31 +000010012006-08-16 David Turner <david@freetype.org>
1002
Werner Lemberg12342992006-08-19 11:18:09 +00001003 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1004 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001005
Werner Lemberg12342992006-08-19 11:18:09 +00001006 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1007 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001008
David Turner33f5f242006-08-16 16:50:55 +00001009
Werner Lemberg12342992006-08-19 11:18:09 +00001010 Improvements to native TrueType hinting. This is a first try,
1011 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1012
1013 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1014 `extra_points2'.
1015
1016 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1017 `orus'.
1018
1019 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1020 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1021 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1022 handle `extra_points2'.
1023
1024 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1025 Remove compiler warning.
1026 (cur_to_arg): Remove macro.
1027 (TT_Hint_Glyph): Updated.
1028 (TT_Process_Simple_Glyph): Handle `orus'.
1029
1030 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1031 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1032 (LOC_Ins_IUP): Renamed to...
1033 (IUP_WorkerRec): This.
1034 Add `orus' member.
1035 (Shift): Renamed to...
1036 (_iup_worker_shift): This.
1037 Updated.
1038 (Interp): Renamed to...
1039 (_iup_worker_interpolate): This.
1040 Updated to handle `orus'.
1041 (Ins_IUP): Updated.
1042
1043 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1044 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001045
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000010462006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1047
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001048 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001049 build ftvalid in ft2demos. This has been inadvertedly changed
1050 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001051
10522006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1053
Werner Lemberg12342992006-08-19 11:18:09 +00001054 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1055 Jens:
1056 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001057
Werner Lemberg12342992006-08-19 11:18:09 +00001058 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1059 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001060
1061 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1062
Jens Claudius9950adc2006-08-13 12:14:36 +000010632006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1064
Werner Lemberg12342992006-08-19 11:18:09 +00001065 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1066 T1_TOKEN_TYPE_KEY.
1067 (T1_FieldRec): Add `dict'.
1068 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1069 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1070 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001071
Werner Lemberg12342992006-08-19 11:18:09 +00001072 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1073 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001074
1075 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1076
1077 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001078 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1079 not T1_TOKEN_TYPE_ANY.
1080 (ps_parser_load_field): Make sure a token that should be a string or
1081 name is really a string or name.
1082 Avoid memory leak if a keyword has been already encountered and its
1083 value is overwritten.
1084 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1085 T1_FIELD_XXX.
1086 (parse_dict): Ignore keywords that occur in the wrong dictionary
1087 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001088
Werner Lemberg12342992006-08-19 11:18:09 +00001089 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1090 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001091
Werner Lemberg12342992006-08-19 11:18:09 +00001092 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1093 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001094
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000010952006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1096
1097 Move creation of field `buildchar' of T1_DecoderRec out of
1098 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1099 of it.
1100
1101 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1102 and `T1_Compute_Max_Advance'.
1103
1104 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1105 Remove field `face', add `len_buildchar'.
1106
1107 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1108 field `buildchar'.
1109
1110 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1111 finisher for T1_Decoder.
1112 (cid_slot_load_glyph): Do not ignore failure when initializing the
1113 T1_Decoder.
1114
1115 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1116 Updated.
1117 (t1_decoder_init): Remove initialization of fields `buildchar' and
1118 `len_buildchar'.
1119 (t1_decoder_done): Remove deallocation of field `buildchar'.
1120
1121 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1122 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1123 T1_Decoder.
1124 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1125 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1126 case of error.
1127
1128 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1129 `buildchar' of T1_FaceRec.
1130
1131 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1132 `buildchar' of T1_FaceRec.
1133
Werner Lemberg1a380e02006-07-14 18:28:08 +000011342006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1135
1136 * freetype2/include/freetype/internal/psaux.h: New macros
1137 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1138 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1139 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1140 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1141 (T1_DecoderRec): New fields `buildchar' and `face'.
1142 (IS_PS_TOKEN): New macro.
1143
1144 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1145 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1146
1147 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1148 `default_design_vector' and `num_default_design_vector'.
1149
1150 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1151 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1152 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1153
1154 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1155 `token' argument to be NULL if we want only to count the number of
1156 tokens.
1157 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1158 want to skip the array.
1159 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1160 want to skip the array.
1161
1162 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1163 support for (partially commented out) othersubrs 19-25, 27, and 28.
1164 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1165 (t1_decoder_done): Release new field `buildchar'.
1166
1167 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1168 functions.
1169 (t1_keywords): Register them.
1170 (t1_allocate_blend): Updated.
1171 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1172 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1173 (parse_dict): Remove `keyword_flags' argument.
1174 Use new macro IS_PS_TOKEN.
1175 Changed function so that later PostScript definitions override
1176 earlier ones.
1177 (t1_init_loader): Initialize new field `keywords_encountered'.
1178 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1179 `len_buildchar'.
1180 Remove `keywords_flags'.
1181
1182 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1183 `keywords_encountered'.
1184 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1185
1186 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1187 New entries for parsing /NDV, /CDV, and /DesignVector.
1188
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000011892006-07-07 Werner Lemberg <wl@gnu.org>
1190
1191 Add many checks to protect against malformed PCF files.
1192
1193 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1194 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1195
1196 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1197 data and check that tables don't overlap (using a simple
1198 bubblesort).
1199 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1200 New macros which give the size of data structures in the data
1201 stream.
1202 (pcf_get_properties): Use rough estimates to get array size limits.
1203 Assign `face->nprops' and `face->properties' earlier so that a call
1204 to PCF_Face_Done can do the clean-up in case of error.
1205 Protect against invalid string offsets.
1206 (pcf_get_metrics): Clean up code.
1207 Adjust tracing message levels.
1208 Use rough estimate to get array size limit.
1209 (pcf_get_bitmaps): Clean up code.
1210 Adjust tracing message levels.
1211 Use rough estimates to get offset limits.
1212 (pcf_get_encodings): Adjust tracing message level.
1213 (pcf_get_accel): Clean up code.
1214
Werner Lemberg8eb05252006-06-27 06:20:01 +000012152006-06-26 Werner Lemberg <wl@gnu.org>
1216
1217 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1218 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1219
Werner Lemberg24703f82006-06-26 19:12:51 +000012202006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1221
1222 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1223 (t1_decoder_parse_charstrings): Operator with
1224 opcode 15 pops its two arguments.
1225 Handle the case where the pops of an othersubr may be part of a
1226 subroutine.
1227 Handle unknown othersubrs gracefully: count their operands and let
1228 the following pop operators push the operands as the results onto
1229 the Type1 stack.
1230 Improve handling of setcurrentpoint opcode.
1231
Werner Lembergc011f4c2006-06-26 09:40:00 +000012322006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1233
1234 The Type 1 parser now skips over top-level procedures as required
1235 for a `Simplified Parser'. This makes the parser more robust as it
1236 doesn't poke around in PostScript code. Additionally, it makes the
1237 FontDirectory hackery in src/type1/t1load.c unnecessary.
1238
1239 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1240 (skip_literal_string): Add FT_Error as return value.
1241 Handle escapes better.
1242 (skip_string): Add FT_Error as return value.
1243 Don't set `parser->error' but return error code directly.
1244 (skip_procedure): New function.
1245 (ps_parser_skip_PS_token): Handle procedures.
1246 Update code.
1247 (ps_parser_to_token): Update code.
1248 (ps_parser_load_field_table): Handle bbox entries also.
1249
1250 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1251 Add commented-out code for synthetic fonts.
1252
Werner Lemberga2da05c2006-06-25 06:27:27 +000012532006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1254
1255 Fix two hinting bugs as reported in
1256 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1257
1258 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1259 `first_point' member.
1260
1261 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1262 `first_point'.
1263 (TT_Process_Composite_Glyph): Always untouch points.
1264
1265 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1266 `first_point' and `last_point' in case of composite glyphs.
1267 (Ins_IUP): Fix computation of `end_point'.
1268
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012692006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1270
Werner Lembergef3d2c22006-06-25 06:07:14 +00001271 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1272 Mac. The original patch was written by David Sachitano and Lawrence
1273 Coopet, and modified by Sean McBride for MPW compatibility. Only
1274 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001275
Werner Lembergef3d2c22006-06-25 06:07:14 +00001276 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1277 Mac OS X platforms.
1278 (OS_INLINE): Undefine before definition.
1279 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1280 FontAssociation table in FOND resource.
1281 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1282 and fontSize at each entry of FontAssociation table in FOND
1283 resource.
1284 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1285 ffStylOff of FamilyRecord header of FOND resource, the header,
1286 fontSize, fontID at each entry of FontAssociation table, and
1287 StyleMapping table.
1288 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001289
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000012902006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1291
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001292 Public API of TrueTypeGX, OpenType, and classic kern table validator
1293 should return `FT_Err_Unimplemented_Feature' if validation service
1294 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001295 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001296 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1297
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001298 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1299 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1300 unavailable.
1301 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1302 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001303
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001304 * src/base/ftotval.c (FT_OpenType_Validate): Return
1305 FT_Err_Unimplemented_Feature if OpenType validation service is
1306 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001307
Werner Lembergb10e45a2006-06-08 07:32:56 +000013082006-06-08 Werner Lemberg <wl@gnu.org>
1309
1310 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1311 errors.
1312
David Turner5f1f7502006-06-07 05:11:50 +000013132006-06-07 David Turner <david@freetype.org>
1314
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001315 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1316 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1317 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001318
David Turner457b4a82006-06-06 08:14:14 +000013192006-06-06 David Turner <david@freetype.org>
1320
Werner Lemberg4836f952006-06-06 12:54:08 +00001321 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001322
Werner Lemberg4836f952006-06-06 12:54:08 +00001323 We change `ps_unicodes_init' so that it also takes a
1324 `free_glyph_name' callback to release the glyph names returned by
1325 `get_glyph_name'
1326
1327 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1328 Renamed to ...
1329 (PS_GetGlyphNameFunc): This.
1330 (PS_FreeGlyphNameFunc): New typedef.
1331 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1332
1333 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1334 argument.
1335 (cff_sid_free_glyph_name): New function.
1336 (cff_cmap_unicode_init): Updated.
1337
1338 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1339
1340 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1341 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001342
1343
David Turner09717352006-06-04 14:33:08 +000013442006-06-04 David Turner <david@freetype.org>
1345
Werner Lembergd724f202006-06-04 15:17:41 +00001346 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1347 `item_size == 0' as well -- though this sounds weird, it can
1348 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001349
Werner Lembergd724f202006-06-04 15:17:41 +00001350 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1351 of `face->num_glyphs' which missed the last glyph, due to
1352 the offset-by-1 computation, since the PFR format doesn't
1353 guarantee that glyph index 0 corresponds to the `missing
1354 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001355
Werner Lemberg33779662006-05-26 06:30:05 +000013562006-05-25 Werner Lemberg <wl@gnu.org>
1357
1358 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1359 `-no-undefined'. Reported by Christian Biesinger.
1360
Werner Lemberg24773d62006-05-20 08:53:13 +000013612006-05-19 Brian Weed <bw@imaginengine.com>
1362
1363 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1364 have debug information, and debug libraries use `C7 compatible'
1365 debug info.
1366
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000013672006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1368
Werner Lemberga6523a62006-05-20 08:47:01 +00001369 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001370 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001371
Werner Lemberga6523a62006-05-20 08:47:01 +00001372 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1373 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001374
1375 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001376 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001377
13782006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1379
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001380 * build/unix/configure.raw: Add a fallback to disable Carbon
1381 dependency, if configured with no options on Mac OS X.
1382
13832006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1384
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001385 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001386 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001387 the second part of Savannah bug #16590.
1388
Werner Lemberg545c4e52006-05-17 22:55:04 +000013892006-05-18 Werner Lemberg <wl@gnu.org>
1390
1391 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1392 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1393
David Turnerdc3ff312006-05-17 12:59:35 +000013942006-05-17 David Turner <david@freetype.org>
1395
Werner Lemberg545c4e52006-05-17 22:55:04 +00001396 This is a major patch used to drastically improve the performance of
1397 loading glyphs. This both speeds up loading the glyph vectors
1398 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001399
Werner Lemberg545c4e52006-05-17 22:55:04 +00001400 We now use inline assembler code with GCC to implement `FT_MulFix',
1401 which is probably the most important function related to the
1402 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001403
Werner Lemberg545c4e52006-05-17 22:55:04 +00001404 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001405
1406
Werner Lemberg545c4e52006-05-17 22:55:04 +00001407 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1408 `cursor' and `limit'.
1409
1410 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1411 New functions.
1412 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1413 [TEST]: Remove.
1414
1415 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1416 code.
1417
1418 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1419 `FT_ZERO'
1420 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1421 (af_glyph_hints_reload: Rewrite recognition of weak points.
1422
1423 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1424 constant values out of the loops.
1425
1426 * src/autofit/aftypes.h: Updated.
1427
1428 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1429
1430 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1431 product to get orientation.
1432
1433 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1434 (FT_Stream_OpenGzip): Use it to handle small files directly in
1435 memory.
1436
1437 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1438 Improve performance.
1439
1440 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1441 `limit'.
1442
1443 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1444 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1445 exceedingly large values of number of contours. Speed up by
1446 reducing the number of loops.
1447
1448 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1449
1450
1451 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1452 used to detect rogue clients from 4 to 16. This is to prevent some
1453 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1454 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001455
Werner Lembergde2d90a2006-05-17 08:54:30 +000014562007-05-17 Werner Lemberg <wl@gnu.org>
1457
1458 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001459 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001460
14612006-05-16 Werner Lemberg <wl@gnu.org>
1462
1463 * docs/PROBLEMS: Updated icl issues.
1464
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001465----------------------------------------------------------------------------
1466
Werner Lemberg42b63b22007-01-21 21:01:33 +00001467Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001468David Turner, Robert Wilhelm, and Werner Lemberg.
1469
1470This file is part of the FreeType project, and may only be used, modified,
1471and distributed under the terms of the FreeType project license,
1472LICENSE.TXT. By continuing to use, modify, or distribute this file you
1473indicate that you have read the license and understand and accept it
1474fully.
1475
1476
1477Local Variables:
1478version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001479coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001480End: