blob: d531e93184c7e92e3eed0fb76dc58c901f2a1f34 [file] [log] [blame]
Werner Lemberg011d1112007-01-21 09:36:00 +000012007-01-21 Werner Lemberg <wl@gnu.org>
2
Werner Lemberg42b63b22007-01-21 21:01:33 +00003 * ChangeLog: Split off older entries into...
4 * ChangeLog.22: This new file.
5
62007-01-21 Werner Lemberg <wl@gnu.org>
7
Werner Lemberg555258f2007-01-21 09:46:37 +00008 * docs/CHANGES: Document SHZ fix.
9
102007-01-21 George Williams <gww@silcom.com>
11
12 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
13 points.
14
152007-01-21 Werner Lemberg <wl@gnu.org>
16
Werner Lemberg011d1112007-01-21 09:36:00 +000017 * src/sfnt/ttmtx.c (tt_face_get_metrics)
18 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
19
Werner Lemberg87a5a432007-01-17 12:44:39 +0000202007-01-17 Werner Lemberg <wl@gnu.org>
21
Werner Lembergb8003292007-01-17 12:56:25 +000022
23 * Version 2.3.0 released.
24 =========================
25
26
27 Tag sources with `VER-2-3-0-FINAL'.
28
292007-01-17 Werner Lemberg <wl@gnu.org>
30
Werner Lemberg87a5a432007-01-17 12:44:39 +000031 * docs/release: Updated.
32
David Turner22122722007-01-16 20:06:44 +0000332007-01-16 David Turner <david@freetype.org>
34
Werner Lemberg87a5a432007-01-17 12:44:39 +000035 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
36 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
37 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
38 warnings.
David Turner22122722007-01-16 20:06:44 +000039
Werner Lemberg267e1d72007-01-15 07:48:09 +0000402007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
41
42 * builds/amiga/makefile, builds/amiga/makefile.os4,
43 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
44
45 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
46
Werner Lemberg8c4120d2007-01-15 06:42:40 +0000472007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
48
49 Fix various compiler warnings.
50
51 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
52 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
53 s/index/strike_index/.
54 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
55
56 * src/gxvalid/gxvmorx5.c
57 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
58
59 * src/truetype/ttinterp.c (Compute_Point_Displacement),
60 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
61 uninitialized variables.
62
Werner Lemberg6164a9d2007-01-13 23:01:36 +0000632007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
64
65 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
66
Werner Lemberg281c1482007-01-13 22:50:51 +0000672007-01-13 Werner Lemberg <wl@gnu.org>
68
69 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
70 versions up to 0x3FF without complaining.
71
Werner Lembergac250b22007-01-13 14:01:36 +0000722007-01-13 Derek Clegg <dclegg@apple.com>
73
74 Add FT_Get_PS_Font_Info interface to CFF driver.
75
76 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
77 (CFF_FontRec): Add `font_info' field.
78
79 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
80 (cff_font_done): Free font->font_info if necessary.
81
82 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
83 (cff_service_ps_info): Register cff_ps_get_font_info.
84
Werner Lemberg23df31a2007-01-13 08:45:00 +0000852007-01-13 Werner Lemberg <wl@gnu.org>
86
87 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
88 with C++ compiler.
89
90 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
91 af_glyph_hints_dump_edges): Ditto.
92
93 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
94 `modules.cfg').
95
96 * src/sfnt/ttsbit0.h: Remove.
97
98 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
99
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001002007-01-12 David Turner <david@freetype.org>
101
102 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
103 bug in the bitmap emboldener if the pitch of the source bitmap is
104 much larger than its width.
105
106 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
107 compilation warning.
108
Werner Lemberg6d96d312007-01-12 10:30:19 +00001092007-01-12 Werner Lemberg <wl@gnu.org>
110
111 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
112 `automake' CVS module from sources.redhat.com.
113
Werner Lemberg17432b52007-01-12 09:28:44 +00001142007-01-11 Werner Lemberg <wl@gnu.org>
115
116 * src/type1/t1load.c (is_space): Removed.
117 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
118 (parse_charstrings): Use IS_PS_TOKEN.
119
120
121 * autogen.sh: Avoid bash specific syntax.
122
David Turner038ace22007-01-11 15:00:59 +00001232007-01-11 David Turner <david@freetype.org>
124
Werner Lemberg17432b52007-01-12 09:28:44 +0000125 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000126
Werner Lemberg17432b52007-01-12 09:28:44 +0000127 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000128
Werner Lemberg17432b52007-01-12 09:28:44 +0000129 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
130 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000131 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000132
Werner Lemberg17432b52007-01-12 09:28:44 +0000133 * autogen.sh: Small fix to get it working on Mac OS X properly:
134 The issue is that GNU libtool is called `glibtool' on this platform,
135 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000136
David Turner2628ea92007-01-10 13:15:56 +00001372007-01-10 David Turner <david@freetype.org>
138
Werner Lemberg17432b52007-01-12 09:28:44 +0000139 * all-sources: Tag all sources with VER-2-3-0-RC1 and
140 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000141
Werner Lemberg17432b52007-01-12 09:28:44 +0000142 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
143 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
144 version number to 2.3.0.
145
146 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
147 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000148
149 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000150 include/freetype/ftlcdfil.h: Update reference documentation with
151 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000152
Werner Lemberg17432b52007-01-12 09:28:44 +0000153 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
154 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000155
Werner Lembergbf02d392007-01-10 07:07:37 +00001562007-01-10 Derek Clegg <dclegg@apple.com>
157
158 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
159 values.
160
David Turnerf48b60e2007-01-08 15:15:32 +00001612007-01-08 David Turner <david@freetype.org>
162
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000163 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000164
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000165 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
166 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000167 corresponding to a given character pixel size.
168
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000169 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
170 `gasp' table, in order to avoid potential problems with later
171 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000172
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000173 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
174 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000175
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000176 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
177 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
178 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
179 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000180
Werner Lemberge6b6f372007-01-07 00:06:47 +00001812007-01-07 Werner Lemberg <wl@gnu.org>
182
Werner Lembergb8004d22007-01-07 09:13:38 +0000183 * src/cid/cidparse.c (cid_parser_new): Improve error message for
184 Type 11 fonts.
185 Scan for `/sfnts' token.
186
1872007-01-07 Werner Lemberg <wl@gnu.org>
188
189 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000190
Werner Lembergbe5f7972007-01-06 07:51:48 +00001912007-01-06 Werner Lemberg <wl@gnu.org>
192
193 * src/cff/cffload.c (cff_index_init): Remove unused variable.
194 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
195
David Turnera8cf42b2007-01-04 16:46:46 +00001962007-01-04 David Turner <david@freetype.org>
197
Werner Lembergf6294392007-01-06 07:47:45 +0000198 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
199 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000200
Werner Lembergf6294392007-01-06 07:47:45 +0000201
202 Do not allocate interpreter-specific tables in memory if we are not
203 going to load glyphs with the bytecode interpreter anyway.
204
205 * src/truetype/ttgload.c (tt_loader_init): Load execution context
206 only if glyph is hinted.
207 Updated.
208 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
209 and `cvs_ready'.
210 Add `tt_size_ready_bytecode' declaration.
211 * src/truetype/ttobjs.c (tt_size_done_bytecode,
212 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
213 (tt_size_init): Move most code into `tt_size_init_bytecode'.
214 (tt_size_done): Move most code into `tt_size_done_bytecode'.
215 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000216
David Turner91a34022007-01-05 14:47:08 +0000217
Werner Lembergf6294392007-01-06 07:47:45 +0000218 Don't extract the metrics table from the SFNT font file. Instead,
219 reparse it on each glyph load. The runtime difference is not
220 noticeable, and it can save a lot of heap memory when memory-mapped
221 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000222
Werner Lembergf6294392007-01-06 07:47:45 +0000223 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
224 `horz_metrics_offset' and `vert_metrics_ofset'.
225 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
226 Updated.
227
228
229 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
230
231
232 Do not load the CFF index offsets into memory, since this wastes a
233 *lot* of heap memory with large Asian CFF fonts. There is no
234 significant performance loss.
235
236 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
237 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
238 `data_size'.
239 (CFF_CharsetRec): Add field `num_glyphs'.
240
241 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
242 cff_charset_cid_to_gindex): New functions.
243 (cff_new_index): Renamed to...
244 (cff_index_init): This. Update all callers.
245 Updated -- some code has been moved to `cff_index_load_offsets'.
246 (cff_done_index): Renamed to...
247 (cff_index_done): This. Update all callers.
248 (cff_index_get_pointers, cff_index_access_element): Updated to use
249 stream offsets.
250 (cff_charset_compute_cids): Set `num_glyphs' field.
251 (cff_encoding_load): Updated.
252
253 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000254
2552007-01-04 David Turner <david@freetype.org>
256
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000257 * docs/INSTALL.UNIX: Simplify some parts, add reference to
258 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000259
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000260 * README.CVS: Add common problem description and solution
261 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000262
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000263 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000264
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000265 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000266
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000267 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000268
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000269 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
270 (TWorker): This.
271 Remove `count_table' and `memory'.
272 Make `grays' a pointer.
273 (TRaster): New structure.
274 (count_table): New static array.
275 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
276 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
277 ft_black_set_mode, ft_black_render): Updated.
278 (ft_black_init): Don't initialize `count_table'.
279 (ft_black_reset): Use the render pool. This saves about 6KB of
280 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000281
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000282 * src/smooth/ftgrays.c (TRaster): Replaced with...
283 (TWorker): This.
284 Remove `memory'.
285 (TRaster): New structure.
286
287 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
288 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
289 gray_render_span, gray_raster_render): Updated.
290 (gray_raster_reset): Use the render pool. This saves about 6KB of
291 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000292
David Turner8a6c44e2007-01-04 17:03:11 +0000293 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
294 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000295 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
296 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
297 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000298
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000299 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
300 Remove a typo that results in no hinting and a memory leak with some
301 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000302
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000303 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000304 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000305 CFF_Faces in it. We need to close all faces before destroying the
306 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000307
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003082007-01-02 Werner Lemberg <wl@gnu.org>
309
310 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
311 Remove compiler warning.
312
David Turner9207e002007-01-02 16:58:13 +00003132007-01-02 David Turner <david@freetype.org>
314
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000315 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000316
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003172006-12-31 Masatake YAMATO <jet@gyve.org>
318
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000319 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
320 function.
321 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000322 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000323 `gxv_kern_subtable_fmt0_pairs_validate'.
324
David Turner115b4422006-12-22 11:37:05 +00003252006-12-22 David Turner <david@freetype.org>
326
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000327 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
328 warnings.
David Turner115b4422006-12-22 11:37:05 +0000329
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000330 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
331 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000332
Werner Lemberg4755bf72006-12-16 08:58:44 +00003332006-12-16 Anders Kaseorg <anders@kaseorg.com>
334
335 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
336 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
337
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003382006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
339
Werner Lemberg9b774e22007-01-16 06:11:27 +0000340 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000341 sync with the modification by Jens Claudius on 2006-08-22; cf.
342 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 +0000343
3442006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
345
346 * src/base/ftmac.c: Specialized for Mac OS X only.
347 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
348 * builds/unix/configure.raw: Ditto. When explicit switches for
349 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
350 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
351
3522006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
353
354 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
355 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
356 instead of src/base/ftmac.c
357 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
358 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
359 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
360 that cannot be built at present.
361
3622006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
363
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000364 * src/base/ftobjs.c: Improvement of resource fork handler for
365 POSIX, cf.
366 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000367 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
368 format or .dfont, to simulate the face index number counted by ftmac.c.
369 (IsMacResource): Return the number of scalable faces correctly.
370
Werner Lembergec5b4502006-12-10 07:51:38 +00003712006-12-10 Werner Lemberg <wl@gnu.org>
372
373 * builds/toplevel.mk (version): Protect against `distclean' target.
374
Werner Lembergb26b3142006-12-09 20:01:43 +00003752006-12-09 Werner Lemberg <wl@gnu.org>
376
377 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
378 or `type'.
379
380 * builds/freetype.mk (version): Extracted from freetype.h, using
381 GNU make's built-in string functions.
382 (refdoc): Use $(version) instead of static version number.
383
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00003842006-12-08 Werner Lemberg <wl@gnu.org>
385
386 * builds/toplevel.mk (dist): Extract version number from freetype.h.
387
Werner Lemberg15c29502006-12-09 07:29:54 +00003882006-12-08 Vladimir Volovich <vvv@vsu.ru>
389
390 * src/tools/apinames (State): Remove final comma in structure -- xlc
391 v5 under AIX 4.3 doesn't like this.
392
David Turnerdbf3b432006-12-07 21:18:09 +00003932006-12-07 David Turner <david@freetype.org>
394
Werner Lemberg256a3512006-12-08 06:49:33 +0000395 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
396 to the spacing of auto-fitted glyphs. This only impacts rare
397 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000398
Werner Lemberg11171312006-12-03 09:43:40 +00003992006-12-03 Werner Lemberg <wl@gnu.org>
400
401 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
402
Werner Lemberg960ba592006-12-01 08:20:47 +00004032006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000404
Werner Lemberg960ba592006-12-01 08:20:47 +0000405 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
406 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
407 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000408
David Turner80658e52006-11-28 08:09:20 +0000409
Werner Lemberg960ba592006-12-01 08:20:47 +0000410 * include/freetype/ftxf86.h: Fix and extend comment so that it
411 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000412
Werner Lemberg960ba592006-12-01 08:20:47 +0000413 * include/freetype/ftchapters.h: Add `font_format' section.
414
415
416 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
417 to TOC in index page.
418
4192006-11-28 David Turner <david@freetype.org>
420
421 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
422 trying to render into a zero-width/height bitmap, not an error code.
423
424 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
425
426 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
427 ones instead.
428
429 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
430 variable.
David Turner80658e52006-11-28 08:09:20 +0000431
Werner Lemberg8636c292006-11-26 22:28:13 +00004322006-11-26 Pierre Hanser <hanser@club-internet.fr>
433
434 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
435
Werner Lemberg960ba592006-12-01 08:20:47 +00004362006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000437
Werner Lemberg960ba592006-12-01 08:20:47 +0000438 * src/autofit/afhints.c (af_glyph_hints_dump_points,
439 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
440 Add stubs to link the `ftgrid' test program when debugging is
441 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000442
Werner Lemberg960ba592006-12-01 08:20:47 +00004432006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000444
445 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000446 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
447
448 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
449 Emit more sensible information.
450
451 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
452
453 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
454 rounding of blue values.
455 (af_latin_hints_compute_segments): Hint segment heights.
456 (af_latin_hints_link_segments): Reduce `len_score' value.
457 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
458 value and use `height' member for comparisons.
459 (af_latin_hint_edges): Extend logging message.
460 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000461
Werner Lemberg91959bf2006-11-22 10:36:55 +00004622006-11-22 Werner Lemberg <wl@gnu.org>
463
464 Fix Savannah bug #15553.
465
466 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
467 program after a change from mono to grayscaling (and vice versa).
468 Use correct constant for comparison to get `exec->grayscale'.
469
Werner Lemberg913a3652006-11-19 09:19:17 +00004702006-11-18 Werner Lemberg <wl@gnu.org>
471
472 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000473 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000474 This patch fixes Savannah bug #18301.
475
476 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
477 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
478 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
479 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
480 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
481 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
482 (FNT_Load_Glyph): Check validity of `glyph_index'.
483
David Turner7bab6ae2006-11-13 11:25:06 +00004842006-11-13 David Turner <david@freetype.org>
485
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000486 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
487 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000488
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000489 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
490 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
491 when building the library to change the default LCD filter to be
492 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000493
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000494 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000495
David Turner8765c712006-11-10 16:49:42 +00004962006-11-10 David Turner <david@freetype.org>
497
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000498 * src/smooth/ftsmooth.c: API change for the LCD
499 filter. The FT_LcdFilter value is an enumeration describing which
500 filter to apply, with new values FT_LCD_FILTER_LIGHT and
501 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
502 algorithm which produces strong color fringes for everything
503 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000504
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000505 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
506 second parameter to an enum type.
507
508 * src/base/ftlcdfil.c (USE_LEGACY): Define.
509 (_ft_lcd_filter): Rename to...
510 (_ft_lcd_filter_fir): This.
511 Update parameters.
512 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
513 (FT_Library_Set_LcdFilter): Update parameters.
514 Handle new filter modes.
515
516 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
517 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
518 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
519 callback and update other fields.
520
521 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
522 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
523 Other minor improvements.
524
525 * src/autofit/aflatin.c: Various tiny improvements that drastically
526 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
527 (af_latin_hints_compute_edges): Fix typo.
528 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000529
David Turner4e9cc3c2006-11-09 16:31:52 +00005302006-11-09 David Turner <david@freetype.org>
531
Werner Lemberg49c77a82006-11-09 21:51:57 +0000532 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
533 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000534
Werner Lemberg5e430892006-11-07 09:35:03 +00005352006-11-07 Zhe Su <james.su@gmail.com>
536
537 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
538 also.
539
Werner Lemberg111b5ae2006-11-03 09:40:12 +00005402006-11-03 Werner Lemberg <wl@gnu.org>
541
542 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
543
David Turner40604742006-11-02 16:37:35 +00005442006-11-02 David Turner <david@freetype.org>
545
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000546 Add a few tweaks to better handle serif fonts.
547 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000548
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000549 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
550 segments that are less than 1.5 pixels high. This gets rid of
551 *many* corner cases with serifs.
552 (af_latin_align_linked_edge): Add logging message.
553 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
554 Add logging messages.
555 Handle AF_EDGE_FLAG flag specially.
556
557 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
558 _af_debug_disable_blue_hints, and _af_debug_hints variables.
559
560 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
561 Update external declarations.
562 (af_corner_orientation, af_corner_is_flat): Replaced by...
563
564 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
565 ft_corner_is_flat): These declarations.
566
567 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
568 Comment out. Replaced by...
569
570 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
571 These functions. Update all callers.
572 (FT_Add64) [!FT_LONG64]: Simplify.
573
574 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
575 (af_direction_compute): Add a missing FT_ABS call. This bug caused
576 production of garbage by missing lots of segments.
577
578 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
579
580 * src/autofit/afloader.c (af_loader_init, af_loader_done)
581 [AF_DEBUG]: Set _af_debug_hints.
582
583
584 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
585 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
586 and ft_corner_orientation.
587
588
589 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000590
Werner Lemberge88c5262006-10-24 05:46:26 +00005912006-10-24 Werner Lemberg <wl@gnu.org>
592
593 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
594
595 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
596 as argument.
597
David Turnera1861392006-10-23 16:00:59 +00005982006-10-23 Zhe Su <zsu@novell.com>
599
Werner Lemberg715e96e2006-10-24 05:28:45 +0000600 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
601 better deal with broken Asian fonts with strange glyphs, having
602 self-intersections and other peculiarities. The used algorithm is
603 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000604
David Turnere140f142006-10-23 08:56:57 +00006052006-10-23 David Turner <david@freetype.org>
606
Werner Lemberg715e96e2006-10-24 05:28:45 +0000607 Speed up the CFF font loader. With some large CFF fonts,
608 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000609
Werner Lemberg715e96e2006-10-24 05:28:45 +0000610 * src/cff/cffload.c (cff_get_offset): Removed.
611 (cff_new_index): Inline functionality of `cff_get_offset'.
612 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
613 (cff_charset_done): Call `cff_charset_free_cids'.
614 (cff_charset_load): Call `cff_charset_compute_cids'.
615 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
616
617 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
618 with FT_NEXT_XXX.
619
620
621 Speed up the Postscript hinter, with more than 100% speed increase
622 on my machine.
623
624 * src/pshinter/pshalgo.c (psh_corner_is_flat,
625 psh_corner_orientation): New functions.
626 (psh_glyph_compute_inflections): Merge loops for efficiency.
627 Use `psh_corner_orientation'.
628 (psh_glyph_init): Use `psh_corner_is_flat'.
629 (psh_hint_table_find_strong_point): Renamed to...
630 (psh_hint_table_find_strong_points): This.
631 Rewrite, adding argument to handle all points at once.
632 Update all callers.
633 (PSH_MAX_STRONG_INTERNAL): New macro.
634 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000635
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00006362006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
637
638 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000639 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000640
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00006412006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
642
643 * docs/INSTALL.CROSS: New document file for cross-building.
644
645 * builds/unix/configure.raw: Preliminary cross-building support.
646 Find native C compiler and pass it by CC_BUILD, and
647 find suffix for native executable and pass it by EXEEXT_BUILD.
648 Also suffix for target executable is passed by EXEEXT.
649
Werner Lembergb9e6d692006-10-15 08:58:40 +0000650 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
651 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000652 CC_BUILD and EXEEXT_BUILD.
653
Werner Lembergb9e6d692006-10-15 08:58:40 +0000654 * builds/exports.mk (APINAMES_EXE): Change the extension for
655 apinames from the suffix for target (E) to that for building host
656 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000657
Werner Lemberg82a07e92006-10-12 06:20:44 +00006582006-10-12 Werner Lemberg <wl@gnu.org>
659
660 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
661 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
662 which reference those files.
663
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00006642006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
665
Werner Lembergb9e6d692006-10-15 08:58:40 +0000666 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
667 embedded in freetype2.pc and freetype-config. Use it to record
668 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000669
670 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
671
672 * builds/unix/freetype-config.in: Ditto.
673
Werner Lemberg28e17d92006-10-11 17:27:47 +00006742006-10-11 Werner Lemberg <wl@gnu.org>
675
676 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
677 development.
678
Jens Claudius336d2292006-10-03 08:53:37 +00006792006-10-03 Jens Claudius <jens.claudius@yahoo.com>
680
681 * include/freetype/config/ftstdlib.h: Cast away volatileness from
682 argument to ft_setjmp.
683
684 * include/freetype/internal/ftvalid.h: Add comment that
685 ft_validator_run must not be used.
686
Werner Lemberg2863cfa2006-10-01 17:04:00 +00006872006-10-01 Werner Lemberg <wl@gnu.org>
688
689 * src/base/ftbase.c: Undo change from 2006-09-30.
690
691 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
692
6932006-09-30 David Turner <david@freetype.org>
694
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000695 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
696 s/unpatented_hinting/ignore_unpatented_hinter/.
697 Update all callers.
698
699 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
700 auto-hinting shall be used or not.
701
702 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000703
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007042006-09-30 Werner Lemberg <wl@gnu.org>
705
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000706 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
707 in use).
708
709 * src/base/ftbase.c: Include `ftlcdfil.c'.
710
Werner Lemberg9b15ea32006-09-29 18:22:11 +00007112006-09-29 Werner Lemberg <wl@gnu.org>
712
713 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
714 overlapping segments. Bug reported by Stefan Koch.
715
David Turnerad830712006-09-27 16:20:59 +00007162006-09-28 David Turner <david@freetype.org>
717
Werner Lemberg2c002e12006-09-29 21:31:53 +0000718 Fix a bug in the automatic unpatented hinting support which prevents
719 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000720
Werner Lemberg2c002e12006-09-29 21:31:53 +0000721 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
722 s/force_autohint/unpatented_hinting/. Update all callers.
723
724 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
725
726 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000727
David Turner8a317cf2006-09-27 07:52:48 +00007282006-09-27 David Turner <david@freetype.org>
729
Werner Lemberg2c002e12006-09-29 21:31:53 +0000730 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000731
David Turner8a317cf2006-09-27 07:52:48 +0000732
David Turnere140f142006-10-23 08:56:57 +0000733 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000734 In a default build, the function `FT_Library_SetLcdFilter' returns
735 `FT_Err_Unimplemented_Feature'; you need to #define
736 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
737 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000738
Werner Lemberg2c002e12006-09-29 21:31:53 +0000739 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000740
Werner Lemberg2c002e12006-09-29 21:31:53 +0000741 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
742 typedef.
743 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
744 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000745
Werner Lemberg2c002e12006-09-29 21:31:53 +0000746 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
747 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000748
Werner Lemberg2c002e12006-09-29 21:31:53 +0000749 Handle subpixel rendering.
750 Simplify function.
751 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
752 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
753
754 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
755 pointing to <freetype/ftlcdfil.h>.
756
757 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
758 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
759
760 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000761
Werner Lemberge20df4a2006-09-27 06:29:21 +00007622006-09-26 David Bustin
763
764 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
765 correctly. Reported as Savannah bug #17843.
766
David Turner6f8c6222006-09-26 15:42:44 +00007672006-09-26 David Turner <david@freetype.org>
768
Werner Lemberg110246c2006-09-26 21:55:44 +0000769 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
770 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
771 horizontal and vertical hinting for the purpose of debugging the
772 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000773
Werner Lemberg110246c2006-09-26 21:55:44 +0000774 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
775 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000776
Werner Lemberg110246c2006-09-26 21:55:44 +0000777 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
778
779 * include/freetype/config/ftoption.h, devel/ftoption.h
780 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
781 we want to compile LCD-optimized rendering code la ClearType) or
782 not. The macro *must* be disabled in default builds of the library
783 for patent reasons.
784
785 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
786 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
787 isn't defined at compile time. This only changes the content of the
788 rendered glyph to match the one of normal gray-level rendering,
789 hence clients should not need to be modified.
790
791 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000792
Werner Lemberg745ff2c2006-09-19 05:48:02 +00007932006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
794
795 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
796 LWFN fails and both are available.
797
David Turnerf3050052006-09-11 12:00:32 +00007982006-09-11 David Turner <david@freetype.org>
799
Werner Lembergf9644552006-09-12 13:48:10 +0000800 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
801 report their English names through an Apple Roman
802 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000803
Werner Lembergf9644552006-09-12 13:48:10 +0000804 If the font uses another name entry with language_id == English, it
805 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000806
Werner Lembergf9644552006-09-12 13:48:10 +0000807 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
808 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000809
Werner Lemberg36d2eab2006-09-05 19:24:34 +00008102006-09-05 Werner Lemberg <wl@gnu.org>
811
812 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000813 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000814 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
815 `HAN NOM B.ttf').
816
817 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
818
David Turner772e55d2006-09-05 09:45:15 +00008192006-09-05 David Turner <david@freetype.org>
820
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000821 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000822
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000823 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
824 (TRaster): Remove `count_ex' and `count_ey'.
825 (gray_find_cell): Remove 2nd and 3rd argument.
826 (gray_alloc_cell): Merged with `gray_find_cell'.
827 (gray_record_cell): Simplify.
828 (gray_set_cell): Rewrite.
829 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
830 (gray_render_span): Don't use FT_MEM_SET for small values.
831 (gray_dump_cells) [DEBUG_GRAYS]: New function.
832 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
833 bitmap scanline.
834 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000835
David Turneraa557a92006-09-04 16:42:44 +00008362006-09-04 David Turner <david@freetype.org>
837
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000838 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
839 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000840
Werner Lemberg2d8629b2006-09-03 06:18:45 +00008412006-09-03 Werner Lemberg <wl@gnu.org>
842
843 * devel/ftoption.h: Synchronize with
844 include/freetype/config/ftoption.h.
845
846 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
847 variable declaration.
848 (gray_convert_glyph): Fix compiler warnings.
849
David Turner6d79f212006-09-01 14:09:35 +00008502006-09-01 David Turner <david@freetype.org>
851
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000852 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
853 to recognize a few fonts that require the automatic unpatented
854 loader.
David Turnerbd502952006-09-01 19:05:24 +0000855
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000856 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
857 rasterizer. The speed improvement is between 15% and 25%, depending
858 on the font data.
859
860 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
861 (TCell): Redefine.
862 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
863 (gray_init_cells): Updated.
864 (gray_find_cell, gray_alloc_cell): New functions.
865 (gray_record_cell): Rewritten to use `gray_find_cell' and
866 `gray_alloc_cell'.
867 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
868 QSORT_THRESHOLD):
869 Removed.
870 (gray_shell_sort, gray_quick_sort, gray_check_sort,
871 gray_dump_cells): Removed.
872 (gray_sweep): Rewritten.
873 (gray_convert_glyph): Rewrite code which used one of the sorting
874 functions.
875 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000876
Werner Lembergd898aed2006-08-29 09:50:34 +00008772006-08-29 Dr. Werner Fink <werner@suse.de>
878
879 * configure: Make it possible to handle configure options which
880 have strings containing spaces.
881
8822006-08-27 David Turner <david@freetype.org>
883
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000884 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
885 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
886 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
887
888 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
889 src/truetype/truetype.c, src/truetype/ttdriver.c,
890 src/truetype/ttgload.c, src/truetype/ttgload.h,
891 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
892 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
893 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
894
895 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
896 member `force_autohint'.
897
898 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
899
900 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
901 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000902
Jens Claudiusa787f452006-08-27 11:26:18 +00009032006-08-27 Jens Claudius <jens.claudius@yahoo.com>
904
905 Fix miscellaneous compiler warnings.
906
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000907 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
908 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000909
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000910 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
911 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
912 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000913
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000914 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
915 volatileness of argument to ft_longjmp. Spotted by Werner
916 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000917
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000918 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
919 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000920
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000921 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
922 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000923
Werner Lembergc4c35b72006-08-27 08:03:46 +00009242006-08-27 Werner Lemberg <wl@gnu.org>
925
926 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
927 Reported by Jens.
928
Jens Claudius088e44e2006-08-22 14:24:30 +00009292006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000930
Jens Claudius088e44e2006-08-22 14:24:30 +0000931 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000932 about addresses of volatile objects passed as function arguments as
933 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000934
Werner Lembergc4c35b72006-08-27 08:03:46 +0000935 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
936 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000937
938 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
939 argument `table' a pointer to a volatile object.
940
941 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
942 argument `table' a pointer to a volatile object.
943
Jens Claudius2652bd52006-08-18 17:20:37 +00009442006-08-18 Jens Claudius <jens.claudius@yahoo.com>
945
946 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
947 variable `_sfnt' as volatile since it must keep its value across
948 a call to ft_setjmp.
949 (gxv_validate): Same for local variables `memory' and `valid'.
950 (classic_kern_validate): Same for local variables `memory',
951 `ckern', and `valid'.
952
953 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
954 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
955 `jstf', and 'valid'.
956
957 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
958 local variable `cmap'.
959
David Turner9fbfc6a2006-08-16 09:11:31 +00009602006-08-16 David Turner <david@freetype.org>
961
Werner Lemberg12342992006-08-19 11:18:09 +0000962 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
963 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +0000964
Werner Lemberg12342992006-08-19 11:18:09 +0000965 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
966 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +0000967
David Turner33f5f242006-08-16 16:50:55 +0000968
Werner Lemberg12342992006-08-19 11:18:09 +0000969 Improvements to native TrueType hinting. This is a first try,
970 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
971
972 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
973 `extra_points2'.
974
975 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
976 `orus'.
977
978 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
979 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
980 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
981 handle `extra_points2'.
982
983 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
984 Remove compiler warning.
985 (cur_to_arg): Remove macro.
986 (TT_Hint_Glyph): Updated.
987 (TT_Process_Simple_Glyph): Handle `orus'.
988
989 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
990 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
991 (LOC_Ins_IUP): Renamed to...
992 (IUP_WorkerRec): This.
993 Add `orus' member.
994 (Shift): Renamed to...
995 (_iup_worker_shift): This.
996 Updated.
997 (Interp): Renamed to...
998 (_iup_worker_interpolate): This.
999 Updated to handle `orus'.
1000 (Ins_IUP): Updated.
1001
1002 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1003 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001004
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000010052006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1006
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001007 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001008 build ftvalid in ft2demos. This has been inadvertedly changed
1009 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001010
10112006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1012
Werner Lemberg12342992006-08-19 11:18:09 +00001013 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1014 Jens:
1015 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001016
Werner Lemberg12342992006-08-19 11:18:09 +00001017 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1018 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001019
1020 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1021
Jens Claudius9950adc2006-08-13 12:14:36 +000010222006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1023
Werner Lemberg12342992006-08-19 11:18:09 +00001024 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1025 T1_TOKEN_TYPE_KEY.
1026 (T1_FieldRec): Add `dict'.
1027 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1028 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1029 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001030
Werner Lemberg12342992006-08-19 11:18:09 +00001031 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1032 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001033
1034 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1035
1036 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001037 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1038 not T1_TOKEN_TYPE_ANY.
1039 (ps_parser_load_field): Make sure a token that should be a string or
1040 name is really a string or name.
1041 Avoid memory leak if a keyword has been already encountered and its
1042 value is overwritten.
1043 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1044 T1_FIELD_XXX.
1045 (parse_dict): Ignore keywords that occur in the wrong dictionary
1046 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001047
Werner Lemberg12342992006-08-19 11:18:09 +00001048 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1049 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001050
Werner Lemberg12342992006-08-19 11:18:09 +00001051 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1052 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001053
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000010542006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1055
1056 Move creation of field `buildchar' of T1_DecoderRec out of
1057 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1058 of it.
1059
1060 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1061 and `T1_Compute_Max_Advance'.
1062
1063 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1064 Remove field `face', add `len_buildchar'.
1065
1066 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1067 field `buildchar'.
1068
1069 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1070 finisher for T1_Decoder.
1071 (cid_slot_load_glyph): Do not ignore failure when initializing the
1072 T1_Decoder.
1073
1074 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1075 Updated.
1076 (t1_decoder_init): Remove initialization of fields `buildchar' and
1077 `len_buildchar'.
1078 (t1_decoder_done): Remove deallocation of field `buildchar'.
1079
1080 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1081 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1082 T1_Decoder.
1083 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1084 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1085 case of error.
1086
1087 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1088 `buildchar' of T1_FaceRec.
1089
1090 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1091 `buildchar' of T1_FaceRec.
1092
Werner Lemberg1a380e02006-07-14 18:28:08 +000010932006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1094
1095 * freetype2/include/freetype/internal/psaux.h: New macros
1096 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1097 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1098 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1099 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1100 (T1_DecoderRec): New fields `buildchar' and `face'.
1101 (IS_PS_TOKEN): New macro.
1102
1103 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1104 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1105
1106 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1107 `default_design_vector' and `num_default_design_vector'.
1108
1109 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1110 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1111 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1112
1113 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1114 `token' argument to be NULL if we want only to count the number of
1115 tokens.
1116 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1117 want to skip the array.
1118 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1119 want to skip the array.
1120
1121 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1122 support for (partially commented out) othersubrs 19-25, 27, and 28.
1123 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1124 (t1_decoder_done): Release new field `buildchar'.
1125
1126 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1127 functions.
1128 (t1_keywords): Register them.
1129 (t1_allocate_blend): Updated.
1130 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1131 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1132 (parse_dict): Remove `keyword_flags' argument.
1133 Use new macro IS_PS_TOKEN.
1134 Changed function so that later PostScript definitions override
1135 earlier ones.
1136 (t1_init_loader): Initialize new field `keywords_encountered'.
1137 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1138 `len_buildchar'.
1139 Remove `keywords_flags'.
1140
1141 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1142 `keywords_encountered'.
1143 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1144
1145 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1146 New entries for parsing /NDV, /CDV, and /DesignVector.
1147
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000011482006-07-07 Werner Lemberg <wl@gnu.org>
1149
1150 Add many checks to protect against malformed PCF files.
1151
1152 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1153 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1154
1155 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1156 data and check that tables don't overlap (using a simple
1157 bubblesort).
1158 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1159 New macros which give the size of data structures in the data
1160 stream.
1161 (pcf_get_properties): Use rough estimates to get array size limits.
1162 Assign `face->nprops' and `face->properties' earlier so that a call
1163 to PCF_Face_Done can do the clean-up in case of error.
1164 Protect against invalid string offsets.
1165 (pcf_get_metrics): Clean up code.
1166 Adjust tracing message levels.
1167 Use rough estimate to get array size limit.
1168 (pcf_get_bitmaps): Clean up code.
1169 Adjust tracing message levels.
1170 Use rough estimates to get offset limits.
1171 (pcf_get_encodings): Adjust tracing message level.
1172 (pcf_get_accel): Clean up code.
1173
Werner Lemberg8eb05252006-06-27 06:20:01 +000011742006-06-26 Werner Lemberg <wl@gnu.org>
1175
1176 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1177 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1178
Werner Lemberg24703f82006-06-26 19:12:51 +000011792006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1180
1181 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1182 (t1_decoder_parse_charstrings): Operator with
1183 opcode 15 pops its two arguments.
1184 Handle the case where the pops of an othersubr may be part of a
1185 subroutine.
1186 Handle unknown othersubrs gracefully: count their operands and let
1187 the following pop operators push the operands as the results onto
1188 the Type1 stack.
1189 Improve handling of setcurrentpoint opcode.
1190
Werner Lembergc011f4c2006-06-26 09:40:00 +000011912006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1192
1193 The Type 1 parser now skips over top-level procedures as required
1194 for a `Simplified Parser'. This makes the parser more robust as it
1195 doesn't poke around in PostScript code. Additionally, it makes the
1196 FontDirectory hackery in src/type1/t1load.c unnecessary.
1197
1198 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1199 (skip_literal_string): Add FT_Error as return value.
1200 Handle escapes better.
1201 (skip_string): Add FT_Error as return value.
1202 Don't set `parser->error' but return error code directly.
1203 (skip_procedure): New function.
1204 (ps_parser_skip_PS_token): Handle procedures.
1205 Update code.
1206 (ps_parser_to_token): Update code.
1207 (ps_parser_load_field_table): Handle bbox entries also.
1208
1209 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1210 Add commented-out code for synthetic fonts.
1211
Werner Lemberga2da05c2006-06-25 06:27:27 +000012122006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1213
1214 Fix two hinting bugs as reported in
1215 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1216
1217 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1218 `first_point' member.
1219
1220 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1221 `first_point'.
1222 (TT_Process_Composite_Glyph): Always untouch points.
1223
1224 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1225 `first_point' and `last_point' in case of composite glyphs.
1226 (Ins_IUP): Fix computation of `end_point'.
1227
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012282006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1229
Werner Lembergef3d2c22006-06-25 06:07:14 +00001230 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1231 Mac. The original patch was written by David Sachitano and Lawrence
1232 Coopet, and modified by Sean McBride for MPW compatibility. Only
1233 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001234
Werner Lembergef3d2c22006-06-25 06:07:14 +00001235 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1236 Mac OS X platforms.
1237 (OS_INLINE): Undefine before definition.
1238 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1239 FontAssociation table in FOND resource.
1240 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1241 and fontSize at each entry of FontAssociation table in FOND
1242 resource.
1243 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1244 ffStylOff of FamilyRecord header of FOND resource, the header,
1245 fontSize, fontID at each entry of FontAssociation table, and
1246 StyleMapping table.
1247 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001248
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000012492006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1250
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001251 Public API of TrueTypeGX, OpenType, and classic kern table validator
1252 should return `FT_Err_Unimplemented_Feature' if validation service
1253 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001254 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001255 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1256
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001257 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1258 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1259 unavailable.
1260 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1261 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001262
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001263 * src/base/ftotval.c (FT_OpenType_Validate): Return
1264 FT_Err_Unimplemented_Feature if OpenType validation service is
1265 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001266
Werner Lembergb10e45a2006-06-08 07:32:56 +000012672006-06-08 Werner Lemberg <wl@gnu.org>
1268
1269 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1270 errors.
1271
David Turner5f1f7502006-06-07 05:11:50 +000012722006-06-07 David Turner <david@freetype.org>
1273
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001274 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1275 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1276 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001277
David Turner457b4a82006-06-06 08:14:14 +000012782006-06-06 David Turner <david@freetype.org>
1279
Werner Lemberg4836f952006-06-06 12:54:08 +00001280 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001281
Werner Lemberg4836f952006-06-06 12:54:08 +00001282 We change `ps_unicodes_init' so that it also takes a
1283 `free_glyph_name' callback to release the glyph names returned by
1284 `get_glyph_name'
1285
1286 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1287 Renamed to ...
1288 (PS_GetGlyphNameFunc): This.
1289 (PS_FreeGlyphNameFunc): New typedef.
1290 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1291
1292 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1293 argument.
1294 (cff_sid_free_glyph_name): New function.
1295 (cff_cmap_unicode_init): Updated.
1296
1297 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1298
1299 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1300 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001301
1302
David Turner09717352006-06-04 14:33:08 +000013032006-06-04 David Turner <david@freetype.org>
1304
Werner Lembergd724f202006-06-04 15:17:41 +00001305 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1306 `item_size == 0' as well -- though this sounds weird, it can
1307 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001308
Werner Lembergd724f202006-06-04 15:17:41 +00001309 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1310 of `face->num_glyphs' which missed the last glyph, due to
1311 the offset-by-1 computation, since the PFR format doesn't
1312 guarantee that glyph index 0 corresponds to the `missing
1313 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001314
Werner Lemberg33779662006-05-26 06:30:05 +000013152006-05-25 Werner Lemberg <wl@gnu.org>
1316
1317 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1318 `-no-undefined'. Reported by Christian Biesinger.
1319
Werner Lemberg24773d62006-05-20 08:53:13 +000013202006-05-19 Brian Weed <bw@imaginengine.com>
1321
1322 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1323 have debug information, and debug libraries use `C7 compatible'
1324 debug info.
1325
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000013262006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1327
Werner Lemberga6523a62006-05-20 08:47:01 +00001328 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001329 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001330
Werner Lemberga6523a62006-05-20 08:47:01 +00001331 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1332 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001333
1334 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001335 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001336
13372006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1338
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001339 * build/unix/configure.raw: Add a fallback to disable Carbon
1340 dependency, if configured with no options on Mac OS X.
1341
13422006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1343
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001344 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001345 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001346 the second part of Savannah bug #16590.
1347
Werner Lemberg545c4e52006-05-17 22:55:04 +000013482006-05-18 Werner Lemberg <wl@gnu.org>
1349
1350 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1351 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1352
David Turnerdc3ff312006-05-17 12:59:35 +000013532006-05-17 David Turner <david@freetype.org>
1354
Werner Lemberg545c4e52006-05-17 22:55:04 +00001355 This is a major patch used to drastically improve the performance of
1356 loading glyphs. This both speeds up loading the glyph vectors
1357 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001358
Werner Lemberg545c4e52006-05-17 22:55:04 +00001359 We now use inline assembler code with GCC to implement `FT_MulFix',
1360 which is probably the most important function related to the
1361 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001362
Werner Lemberg545c4e52006-05-17 22:55:04 +00001363 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001364
1365
Werner Lemberg545c4e52006-05-17 22:55:04 +00001366 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1367 `cursor' and `limit'.
1368
1369 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1370 New functions.
1371 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1372 [TEST]: Remove.
1373
1374 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1375 code.
1376
1377 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1378 `FT_ZERO'
1379 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1380 (af_glyph_hints_reload: Rewrite recognition of weak points.
1381
1382 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1383 constant values out of the loops.
1384
1385 * src/autofit/aftypes.h: Updated.
1386
1387 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1388
1389 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1390 product to get orientation.
1391
1392 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1393 (FT_Stream_OpenGzip): Use it to handle small files directly in
1394 memory.
1395
1396 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1397 Improve performance.
1398
1399 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1400 `limit'.
1401
1402 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1403 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1404 exceedingly large values of number of contours. Speed up by
1405 reducing the number of loops.
1406
1407 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1408
1409
1410 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1411 used to detect rogue clients from 4 to 16. This is to prevent some
1412 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1413 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001414
Werner Lembergde2d90a2006-05-17 08:54:30 +000014152007-05-17 Werner Lemberg <wl@gnu.org>
1416
1417 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001418 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001419
14202006-05-16 Werner Lemberg <wl@gnu.org>
1421
1422 * docs/PROBLEMS: Updated icl issues.
1423
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001424----------------------------------------------------------------------------
1425
Werner Lemberg42b63b22007-01-21 21:01:33 +00001426Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001427David Turner, Robert Wilhelm, and Werner Lemberg.
1428
1429This file is part of the FreeType project, and may only be used, modified,
1430and distributed under the terms of the FreeType project license,
1431LICENSE.TXT. By continuing to use, modify, or distribute this file you
1432indicate that you have read the license and understand and accept it
1433fully.
1434
1435
1436Local Variables:
1437version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001438coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001439End: