blob: 8d02b701e1bcaf038170275de3be31034f1c2984 [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +00003 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
4 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
5 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
6 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
7 FT_GetFilePath_From_Mac_ATS_Name.
8 * builds/mac/ftmac.c: Ditto.
9
102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
11
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +000012 * include/freetype/ftmac.h: Fixed wrong comment, FSSpec of
13 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
14 for passing to FT_New_Face_From_FSSpec.
15
162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
17
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000018 * builds/unix/configure.raw: Checks if Mac OS X system headers
19 can be built under ANSI C mode.
20 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by ANSI C
21 compatible one, if system headers are ANSI C incompatible.
22 * builds/mac/ftmac.c (OS_INLINE): Ditto.
23
Werner Lemberg313d7772007-02-01 08:10:45 +0000242007-02-01 Werner Lemberg <wl@gnu.org>
25
26 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
27 Explain why applications shouldn't use it. Found by Alexei.
28
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000292007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +000030
31 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
32 message.
33
34 * src/gxvalid/gxvmort1.c
35 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
36 message.
37
Werner Lemberg53935932007-01-31 08:53:02 +0000382007-01-31 Werner Lemberg <wl@gnu.org>
39
40
41 * Version 2.3.1 released.
42 =========================
43
44
45 Tag sources with `VER-2-3-1-FINAL'.
46
47 * builds/win32/visualc/freetype.dsp,
48 builds/win32/visualc/freetype.vcproj: s/230/231/.
49 * builds/win32/visualc/index.html: s/221/231/.
50
51 * vms_make.com: Add `ftgasp'.
52
David Turnera7ee6082007-01-30 10:33:53 +0000532007-01-30 David Turner <david@freetype.org>
54
Werner Lemberg53935932007-01-31 08:53:02 +000055 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +000056
Werner Lemberg53935932007-01-31 08:53:02 +000057 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +000058
Werner Lemberg53935932007-01-31 08:53:02 +000059 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
60 s/2.3.0/2.3.1/.
61
62 * builds/unix/configure.raw (version_info): Set to 9:12:3.
63
64
65 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
66 (af_loader_load_g): Disable the warper (i.e., the light hinting
67 improvements) to make a 2.3.1 bugfix release before introducing a
68 new feature. This should give us more time to tune and improve the
69 warper for the next release.
70
71 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +000072
David Turnerd91eebd2007-01-26 15:05:41 +0000732007-01-25 David Turner <david@freetype.org>
74
Werner Lembergbf241762007-01-26 16:08:49 +000075 For light auto-hinting, improve glyph advance widths and resurrect
76 normal/full hinting to its normal quality.
77
78 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
79 and `xmax_delta'.
80 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
81 and `xmax_delta'.
82
83 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
84 preprocessor conditional with if-clause, handling both light and
85 normal mode.
86
87 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
88 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +000089
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000902007-01-25 Werner Lemberg <wl@gnu.org>
91
92 * docs/release: Updated -- Savannah uses a new uploading scheme.
93
David Turnera42567b2007-01-25 12:23:37 +0000942007-01-25 David Turner <david@freetype.org>
95
Werner Lembergd7855662007-01-25 13:53:56 +000096 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +000097
Werner Lembergd7855662007-01-25 13:53:56 +000098 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
99 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
100 functions.
David Turnera42567b2007-01-25 12:23:37 +0000101
Werner Lembergd7855662007-01-25 13:53:56 +0000102 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000103
Werner Lembergb1be9e82007-01-25 11:50:00 +00001042007-01-25 Werner Lemberg <wl@gnu.org>
105
106 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000107 correctly in a sanity check. Since this function is only used to
108 load local and global functions, any charstring that called the last
109 local/global function would fail otherwise. This fixes Savannah bug
110 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000111
112 * docs/CHANGES: Document it.
113
David Turnerb6de8d12007-01-23 15:51:50 +00001142007-01-23 David Turner <david@freetype.org>
115
Werner Lembergb1be9e82007-01-25 11:50:00 +0000116 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
117 prevented compilation when disabling both the unpatented and the
118 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000119
Werner Lembergb1be9e82007-01-25 11:50:00 +0000120
121 Fix and enable the warper to improve `light' hinting mode. This is
122 not necessarily a final version, but it seems to work well.
123
124 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
125 Disable code.
126 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
127 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
128
129 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
130 (af_warper_compute_line_best): Fix array size of `scores'.
131 (af_warper_compute): Better handling of border cases.
132 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
133 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000134
Werner Lemberg011d1112007-01-21 09:36:00 +00001352007-01-21 Werner Lemberg <wl@gnu.org>
136
Werner Lemberg42b63b22007-01-21 21:01:33 +0000137 * ChangeLog: Split off older entries into...
138 * ChangeLog.22: This new file.
139
1402007-01-21 Werner Lemberg <wl@gnu.org>
141
Werner Lemberg555258f2007-01-21 09:46:37 +0000142 * docs/CHANGES: Document SHZ fix.
143
1442007-01-21 George Williams <gww@silcom.com>
145
146 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
147 points.
148
1492007-01-21 Werner Lemberg <wl@gnu.org>
150
Werner Lemberg011d1112007-01-21 09:36:00 +0000151 * src/sfnt/ttmtx.c (tt_face_get_metrics)
152 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
153
Werner Lemberg87a5a432007-01-17 12:44:39 +00001542007-01-17 Werner Lemberg <wl@gnu.org>
155
Werner Lembergb8003292007-01-17 12:56:25 +0000156
157 * Version 2.3.0 released.
158 =========================
159
160
161 Tag sources with `VER-2-3-0-FINAL'.
162
1632007-01-17 Werner Lemberg <wl@gnu.org>
164
Werner Lemberg87a5a432007-01-17 12:44:39 +0000165 * docs/release: Updated.
166
David Turner22122722007-01-16 20:06:44 +00001672007-01-16 David Turner <david@freetype.org>
168
Werner Lemberg87a5a432007-01-17 12:44:39 +0000169 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
170 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
171 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
172 warnings.
David Turner22122722007-01-16 20:06:44 +0000173
Werner Lemberg267e1d72007-01-15 07:48:09 +00001742007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
175
176 * builds/amiga/makefile, builds/amiga/makefile.os4,
177 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
178
179 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
180
Werner Lemberg8c4120d2007-01-15 06:42:40 +00001812007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
182
183 Fix various compiler warnings.
184
185 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
186 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
187 s/index/strike_index/.
188 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
189
190 * src/gxvalid/gxvmorx5.c
191 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
192
193 * src/truetype/ttinterp.c (Compute_Point_Displacement),
194 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
195 uninitialized variables.
196
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001972007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
198
199 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
200
Werner Lemberg281c1482007-01-13 22:50:51 +00002012007-01-13 Werner Lemberg <wl@gnu.org>
202
203 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
204 versions up to 0x3FF without complaining.
205
Werner Lembergac250b22007-01-13 14:01:36 +00002062007-01-13 Derek Clegg <dclegg@apple.com>
207
208 Add FT_Get_PS_Font_Info interface to CFF driver.
209
210 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
211 (CFF_FontRec): Add `font_info' field.
212
213 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
214 (cff_font_done): Free font->font_info if necessary.
215
216 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
217 (cff_service_ps_info): Register cff_ps_get_font_info.
218
Werner Lemberg23df31a2007-01-13 08:45:00 +00002192007-01-13 Werner Lemberg <wl@gnu.org>
220
221 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
222 with C++ compiler.
223
224 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
225 af_glyph_hints_dump_edges): Ditto.
226
227 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
228 `modules.cfg').
229
230 * src/sfnt/ttsbit0.h: Remove.
231
232 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
233
Werner Lemberg27cf9de2007-01-13 07:34:23 +00002342007-01-12 David Turner <david@freetype.org>
235
236 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
237 bug in the bitmap emboldener if the pitch of the source bitmap is
238 much larger than its width.
239
240 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
241 compilation warning.
242
Werner Lemberg6d96d312007-01-12 10:30:19 +00002432007-01-12 Werner Lemberg <wl@gnu.org>
244
245 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
246 `automake' CVS module from sources.redhat.com.
247
Werner Lemberg17432b52007-01-12 09:28:44 +00002482007-01-11 Werner Lemberg <wl@gnu.org>
249
250 * src/type1/t1load.c (is_space): Removed.
251 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
252 (parse_charstrings): Use IS_PS_TOKEN.
253
254
255 * autogen.sh: Avoid bash specific syntax.
256
David Turner038ace22007-01-11 15:00:59 +00002572007-01-11 David Turner <david@freetype.org>
258
Werner Lemberg17432b52007-01-12 09:28:44 +0000259 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000260
Werner Lemberg17432b52007-01-12 09:28:44 +0000261 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000262
Werner Lemberg17432b52007-01-12 09:28:44 +0000263 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
264 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000265 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000266
Werner Lemberg17432b52007-01-12 09:28:44 +0000267 * autogen.sh: Small fix to get it working on Mac OS X properly:
268 The issue is that GNU libtool is called `glibtool' on this platform,
269 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000270
David Turner2628ea92007-01-10 13:15:56 +00002712007-01-10 David Turner <david@freetype.org>
272
Werner Lemberg17432b52007-01-12 09:28:44 +0000273 * all-sources: Tag all sources with VER-2-3-0-RC1 and
274 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000275
Werner Lemberg17432b52007-01-12 09:28:44 +0000276 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
277 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
278 version number to 2.3.0.
279
280 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
281 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000282
283 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000284 include/freetype/ftlcdfil.h: Update reference documentation with
285 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000286
Werner Lemberg17432b52007-01-12 09:28:44 +0000287 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
288 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000289
Werner Lembergbf02d392007-01-10 07:07:37 +00002902007-01-10 Derek Clegg <dclegg@apple.com>
291
292 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
293 values.
294
David Turnerf48b60e2007-01-08 15:15:32 +00002952007-01-08 David Turner <david@freetype.org>
296
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000297 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000298
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000299 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
300 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000301 corresponding to a given character pixel size.
302
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000303 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
304 `gasp' table, in order to avoid potential problems with later
305 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000306
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000307 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
308 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000309
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000310 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
311 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
312 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
313 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000314
Werner Lemberge6b6f372007-01-07 00:06:47 +00003152007-01-07 Werner Lemberg <wl@gnu.org>
316
Werner Lembergb8004d22007-01-07 09:13:38 +0000317 * src/cid/cidparse.c (cid_parser_new): Improve error message for
318 Type 11 fonts.
319 Scan for `/sfnts' token.
320
3212007-01-07 Werner Lemberg <wl@gnu.org>
322
323 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000324
Werner Lembergbe5f7972007-01-06 07:51:48 +00003252007-01-06 Werner Lemberg <wl@gnu.org>
326
327 * src/cff/cffload.c (cff_index_init): Remove unused variable.
328 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
329
David Turnera8cf42b2007-01-04 16:46:46 +00003302007-01-04 David Turner <david@freetype.org>
331
Werner Lembergf6294392007-01-06 07:47:45 +0000332 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
333 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000334
Werner Lembergf6294392007-01-06 07:47:45 +0000335
336 Do not allocate interpreter-specific tables in memory if we are not
337 going to load glyphs with the bytecode interpreter anyway.
338
339 * src/truetype/ttgload.c (tt_loader_init): Load execution context
340 only if glyph is hinted.
341 Updated.
342 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
343 and `cvs_ready'.
344 Add `tt_size_ready_bytecode' declaration.
345 * src/truetype/ttobjs.c (tt_size_done_bytecode,
346 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
347 (tt_size_init): Move most code into `tt_size_init_bytecode'.
348 (tt_size_done): Move most code into `tt_size_done_bytecode'.
349 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000350
David Turner91a34022007-01-05 14:47:08 +0000351
Werner Lembergf6294392007-01-06 07:47:45 +0000352 Don't extract the metrics table from the SFNT font file. Instead,
353 reparse it on each glyph load. The runtime difference is not
354 noticeable, and it can save a lot of heap memory when memory-mapped
355 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000356
Werner Lembergf6294392007-01-06 07:47:45 +0000357 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
358 `horz_metrics_offset' and `vert_metrics_ofset'.
359 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
360 Updated.
361
362
363 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
364
365
366 Do not load the CFF index offsets into memory, since this wastes a
367 *lot* of heap memory with large Asian CFF fonts. There is no
368 significant performance loss.
369
370 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
371 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
372 `data_size'.
373 (CFF_CharsetRec): Add field `num_glyphs'.
374
375 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
376 cff_charset_cid_to_gindex): New functions.
377 (cff_new_index): Renamed to...
378 (cff_index_init): This. Update all callers.
379 Updated -- some code has been moved to `cff_index_load_offsets'.
380 (cff_done_index): Renamed to...
381 (cff_index_done): This. Update all callers.
382 (cff_index_get_pointers, cff_index_access_element): Updated to use
383 stream offsets.
384 (cff_charset_compute_cids): Set `num_glyphs' field.
385 (cff_encoding_load): Updated.
386
387 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000388
3892007-01-04 David Turner <david@freetype.org>
390
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000391 * docs/INSTALL.UNIX: Simplify some parts, add reference to
392 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000393
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000394 * README.CVS: Add common problem description and solution
395 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000396
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000397 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000398
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000399 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000400
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000401 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000402
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000403 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
404 (TWorker): This.
405 Remove `count_table' and `memory'.
406 Make `grays' a pointer.
407 (TRaster): New structure.
408 (count_table): New static array.
409 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
410 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
411 ft_black_set_mode, ft_black_render): Updated.
412 (ft_black_init): Don't initialize `count_table'.
413 (ft_black_reset): Use the render pool. This saves about 6KB of
414 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000415
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000416 * src/smooth/ftgrays.c (TRaster): Replaced with...
417 (TWorker): This.
418 Remove `memory'.
419 (TRaster): New structure.
420
421 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
422 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
423 gray_render_span, gray_raster_render): Updated.
424 (gray_raster_reset): Use the render pool. This saves about 6KB of
425 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000426
David Turner8a6c44e2007-01-04 17:03:11 +0000427 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
428 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000429 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
430 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
431 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000432
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000433 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
434 Remove a typo that results in no hinting and a memory leak with some
435 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000436
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000437 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000438 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000439 CFF_Faces in it. We need to close all faces before destroying the
440 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000441
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00004422007-01-02 Werner Lemberg <wl@gnu.org>
443
444 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
445 Remove compiler warning.
446
David Turner9207e002007-01-02 16:58:13 +00004472007-01-02 David Turner <david@freetype.org>
448
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000449 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000450
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00004512006-12-31 Masatake YAMATO <jet@gyve.org>
452
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000453 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
454 function.
455 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000456 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000457 `gxv_kern_subtable_fmt0_pairs_validate'.
458
David Turner115b4422006-12-22 11:37:05 +00004592006-12-22 David Turner <david@freetype.org>
460
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000461 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
462 warnings.
David Turner115b4422006-12-22 11:37:05 +0000463
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000464 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
465 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000466
Werner Lemberg4755bf72006-12-16 08:58:44 +00004672006-12-16 Anders Kaseorg <anders@kaseorg.com>
468
469 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
470 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
471
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00004722006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
473
Werner Lemberg9b774e22007-01-16 06:11:27 +0000474 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000475 sync with the modification by Jens Claudius on 2006-08-22; cf.
476 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 +0000477
4782006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
479
480 * src/base/ftmac.c: Specialized for Mac OS X only.
481 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
482 * builds/unix/configure.raw: Ditto. When explicit switches for
483 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
484 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
485
4862006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
487
488 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
489 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
490 instead of src/base/ftmac.c
491 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
492 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
493 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
494 that cannot be built at present.
495
4962006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
497
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000498 * src/base/ftobjs.c: Improvement of resource fork handler for
499 POSIX, cf.
500 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000501 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
502 format or .dfont, to simulate the face index number counted by ftmac.c.
503 (IsMacResource): Return the number of scalable faces correctly.
504
Werner Lembergec5b4502006-12-10 07:51:38 +00005052006-12-10 Werner Lemberg <wl@gnu.org>
506
507 * builds/toplevel.mk (version): Protect against `distclean' target.
508
Werner Lembergb26b3142006-12-09 20:01:43 +00005092006-12-09 Werner Lemberg <wl@gnu.org>
510
511 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
512 or `type'.
513
514 * builds/freetype.mk (version): Extracted from freetype.h, using
515 GNU make's built-in string functions.
516 (refdoc): Use $(version) instead of static version number.
517
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00005182006-12-08 Werner Lemberg <wl@gnu.org>
519
520 * builds/toplevel.mk (dist): Extract version number from freetype.h.
521
Werner Lemberg15c29502006-12-09 07:29:54 +00005222006-12-08 Vladimir Volovich <vvv@vsu.ru>
523
524 * src/tools/apinames (State): Remove final comma in structure -- xlc
525 v5 under AIX 4.3 doesn't like this.
526
David Turnerdbf3b432006-12-07 21:18:09 +00005272006-12-07 David Turner <david@freetype.org>
528
Werner Lemberg256a3512006-12-08 06:49:33 +0000529 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
530 to the spacing of auto-fitted glyphs. This only impacts rare
531 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000532
Werner Lemberg11171312006-12-03 09:43:40 +00005332006-12-03 Werner Lemberg <wl@gnu.org>
534
535 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
536
Werner Lemberg960ba592006-12-01 08:20:47 +00005372006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000538
Werner Lemberg960ba592006-12-01 08:20:47 +0000539 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
540 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
541 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000542
David Turner80658e52006-11-28 08:09:20 +0000543
Werner Lemberg960ba592006-12-01 08:20:47 +0000544 * include/freetype/ftxf86.h: Fix and extend comment so that it
545 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000546
Werner Lemberg960ba592006-12-01 08:20:47 +0000547 * include/freetype/ftchapters.h: Add `font_format' section.
548
549
550 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
551 to TOC in index page.
552
5532006-11-28 David Turner <david@freetype.org>
554
555 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
556 trying to render into a zero-width/height bitmap, not an error code.
557
558 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
559
560 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
561 ones instead.
562
563 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
564 variable.
David Turner80658e52006-11-28 08:09:20 +0000565
Werner Lemberg8636c292006-11-26 22:28:13 +00005662006-11-26 Pierre Hanser <hanser@club-internet.fr>
567
568 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
569
Werner Lemberg960ba592006-12-01 08:20:47 +00005702006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000571
Werner Lemberg960ba592006-12-01 08:20:47 +0000572 * src/autofit/afhints.c (af_glyph_hints_dump_points,
573 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
574 Add stubs to link the `ftgrid' test program when debugging is
575 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000576
Werner Lemberg960ba592006-12-01 08:20:47 +00005772006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000578
579 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000580 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
581
582 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
583 Emit more sensible information.
584
585 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
586
587 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
588 rounding of blue values.
589 (af_latin_hints_compute_segments): Hint segment heights.
590 (af_latin_hints_link_segments): Reduce `len_score' value.
591 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
592 value and use `height' member for comparisons.
593 (af_latin_hint_edges): Extend logging message.
594 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000595
Werner Lemberg91959bf2006-11-22 10:36:55 +00005962006-11-22 Werner Lemberg <wl@gnu.org>
597
598 Fix Savannah bug #15553.
599
600 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
601 program after a change from mono to grayscaling (and vice versa).
602 Use correct constant for comparison to get `exec->grayscale'.
603
Werner Lemberg913a3652006-11-19 09:19:17 +00006042006-11-18 Werner Lemberg <wl@gnu.org>
605
606 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000607 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000608 This patch fixes Savannah bug #18301.
609
610 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
611 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
612 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
613 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
614 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
615 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
616 (FNT_Load_Glyph): Check validity of `glyph_index'.
617
David Turner7bab6ae2006-11-13 11:25:06 +00006182006-11-13 David Turner <david@freetype.org>
619
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000620 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
621 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000622
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000623 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
624 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
625 when building the library to change the default LCD filter to be
626 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000627
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000628 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000629
David Turner8765c712006-11-10 16:49:42 +00006302006-11-10 David Turner <david@freetype.org>
631
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000632 * src/smooth/ftsmooth.c: API change for the LCD
633 filter. The FT_LcdFilter value is an enumeration describing which
634 filter to apply, with new values FT_LCD_FILTER_LIGHT and
635 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
636 algorithm which produces strong color fringes for everything
637 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000638
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000639 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
640 second parameter to an enum type.
641
642 * src/base/ftlcdfil.c (USE_LEGACY): Define.
643 (_ft_lcd_filter): Rename to...
644 (_ft_lcd_filter_fir): This.
645 Update parameters.
646 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
647 (FT_Library_Set_LcdFilter): Update parameters.
648 Handle new filter modes.
649
650 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
651 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
652 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
653 callback and update other fields.
654
655 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
656 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
657 Other minor improvements.
658
659 * src/autofit/aflatin.c: Various tiny improvements that drastically
660 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
661 (af_latin_hints_compute_edges): Fix typo.
662 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000663
David Turner4e9cc3c2006-11-09 16:31:52 +00006642006-11-09 David Turner <david@freetype.org>
665
Werner Lemberg49c77a82006-11-09 21:51:57 +0000666 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
667 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000668
Werner Lemberg5e430892006-11-07 09:35:03 +00006692006-11-07 Zhe Su <james.su@gmail.com>
670
671 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
672 also.
673
Werner Lemberg111b5ae2006-11-03 09:40:12 +00006742006-11-03 Werner Lemberg <wl@gnu.org>
675
676 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
677
David Turner40604742006-11-02 16:37:35 +00006782006-11-02 David Turner <david@freetype.org>
679
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000680 Add a few tweaks to better handle serif fonts.
681 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000682
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000683 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
684 segments that are less than 1.5 pixels high. This gets rid of
685 *many* corner cases with serifs.
686 (af_latin_align_linked_edge): Add logging message.
687 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
688 Add logging messages.
689 Handle AF_EDGE_FLAG flag specially.
690
691 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
692 _af_debug_disable_blue_hints, and _af_debug_hints variables.
693
694 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
695 Update external declarations.
696 (af_corner_orientation, af_corner_is_flat): Replaced by...
697
698 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
699 ft_corner_is_flat): These declarations.
700
701 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
702 Comment out. Replaced by...
703
704 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
705 These functions. Update all callers.
706 (FT_Add64) [!FT_LONG64]: Simplify.
707
708 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
709 (af_direction_compute): Add a missing FT_ABS call. This bug caused
710 production of garbage by missing lots of segments.
711
712 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
713
714 * src/autofit/afloader.c (af_loader_init, af_loader_done)
715 [AF_DEBUG]: Set _af_debug_hints.
716
717
718 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
719 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
720 and ft_corner_orientation.
721
722
723 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000724
Werner Lemberge88c5262006-10-24 05:46:26 +00007252006-10-24 Werner Lemberg <wl@gnu.org>
726
727 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
728
729 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
730 as argument.
731
David Turnera1861392006-10-23 16:00:59 +00007322006-10-23 Zhe Su <zsu@novell.com>
733
Werner Lemberg715e96e2006-10-24 05:28:45 +0000734 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
735 better deal with broken Asian fonts with strange glyphs, having
736 self-intersections and other peculiarities. The used algorithm is
737 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000738
David Turnere140f142006-10-23 08:56:57 +00007392006-10-23 David Turner <david@freetype.org>
740
Werner Lemberg715e96e2006-10-24 05:28:45 +0000741 Speed up the CFF font loader. With some large CFF fonts,
742 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000743
Werner Lemberg715e96e2006-10-24 05:28:45 +0000744 * src/cff/cffload.c (cff_get_offset): Removed.
745 (cff_new_index): Inline functionality of `cff_get_offset'.
746 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
747 (cff_charset_done): Call `cff_charset_free_cids'.
748 (cff_charset_load): Call `cff_charset_compute_cids'.
749 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
750
751 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
752 with FT_NEXT_XXX.
753
754
755 Speed up the Postscript hinter, with more than 100% speed increase
756 on my machine.
757
758 * src/pshinter/pshalgo.c (psh_corner_is_flat,
759 psh_corner_orientation): New functions.
760 (psh_glyph_compute_inflections): Merge loops for efficiency.
761 Use `psh_corner_orientation'.
762 (psh_glyph_init): Use `psh_corner_is_flat'.
763 (psh_hint_table_find_strong_point): Renamed to...
764 (psh_hint_table_find_strong_points): This.
765 Rewrite, adding argument to handle all points at once.
766 Update all callers.
767 (PSH_MAX_STRONG_INTERNAL): New macro.
768 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000769
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00007702006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
771
772 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000773 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000774
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00007752006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
776
777 * docs/INSTALL.CROSS: New document file for cross-building.
778
779 * builds/unix/configure.raw: Preliminary cross-building support.
780 Find native C compiler and pass it by CC_BUILD, and
781 find suffix for native executable and pass it by EXEEXT_BUILD.
782 Also suffix for target executable is passed by EXEEXT.
783
Werner Lembergb9e6d692006-10-15 08:58:40 +0000784 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
785 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000786 CC_BUILD and EXEEXT_BUILD.
787
Werner Lembergb9e6d692006-10-15 08:58:40 +0000788 * builds/exports.mk (APINAMES_EXE): Change the extension for
789 apinames from the suffix for target (E) to that for building host
790 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000791
Werner Lemberg82a07e92006-10-12 06:20:44 +00007922006-10-12 Werner Lemberg <wl@gnu.org>
793
794 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
795 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
796 which reference those files.
797
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007982006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
799
Werner Lembergb9e6d692006-10-15 08:58:40 +0000800 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
801 embedded in freetype2.pc and freetype-config. Use it to record
802 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000803
804 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
805
806 * builds/unix/freetype-config.in: Ditto.
807
Werner Lemberg28e17d92006-10-11 17:27:47 +00008082006-10-11 Werner Lemberg <wl@gnu.org>
809
810 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
811 development.
812
Jens Claudius336d2292006-10-03 08:53:37 +00008132006-10-03 Jens Claudius <jens.claudius@yahoo.com>
814
815 * include/freetype/config/ftstdlib.h: Cast away volatileness from
816 argument to ft_setjmp.
817
818 * include/freetype/internal/ftvalid.h: Add comment that
819 ft_validator_run must not be used.
820
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008212006-10-01 Werner Lemberg <wl@gnu.org>
822
823 * src/base/ftbase.c: Undo change from 2006-09-30.
824
825 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
826
8272006-09-30 David Turner <david@freetype.org>
828
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000829 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
830 s/unpatented_hinting/ignore_unpatented_hinter/.
831 Update all callers.
832
833 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
834 auto-hinting shall be used or not.
835
836 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000837
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008382006-09-30 Werner Lemberg <wl@gnu.org>
839
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000840 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
841 in use).
842
843 * src/base/ftbase.c: Include `ftlcdfil.c'.
844
Werner Lemberg9b15ea32006-09-29 18:22:11 +00008452006-09-29 Werner Lemberg <wl@gnu.org>
846
847 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
848 overlapping segments. Bug reported by Stefan Koch.
849
David Turnerad830712006-09-27 16:20:59 +00008502006-09-28 David Turner <david@freetype.org>
851
Werner Lemberg2c002e12006-09-29 21:31:53 +0000852 Fix a bug in the automatic unpatented hinting support which prevents
853 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000854
Werner Lemberg2c002e12006-09-29 21:31:53 +0000855 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
856 s/force_autohint/unpatented_hinting/. Update all callers.
857
858 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
859
860 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000861
David Turner8a317cf2006-09-27 07:52:48 +00008622006-09-27 David Turner <david@freetype.org>
863
Werner Lemberg2c002e12006-09-29 21:31:53 +0000864 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000865
David Turner8a317cf2006-09-27 07:52:48 +0000866
David Turnere140f142006-10-23 08:56:57 +0000867 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000868 In a default build, the function `FT_Library_SetLcdFilter' returns
869 `FT_Err_Unimplemented_Feature'; you need to #define
870 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
871 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000872
Werner Lemberg2c002e12006-09-29 21:31:53 +0000873 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000874
Werner Lemberg2c002e12006-09-29 21:31:53 +0000875 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
876 typedef.
877 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
878 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000879
Werner Lemberg2c002e12006-09-29 21:31:53 +0000880 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
881 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000882
Werner Lemberg2c002e12006-09-29 21:31:53 +0000883 Handle subpixel rendering.
884 Simplify function.
885 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
886 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
887
888 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
889 pointing to <freetype/ftlcdfil.h>.
890
891 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
892 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
893
894 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000895
Werner Lemberge20df4a2006-09-27 06:29:21 +00008962006-09-26 David Bustin
897
898 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
899 correctly. Reported as Savannah bug #17843.
900
David Turner6f8c6222006-09-26 15:42:44 +00009012006-09-26 David Turner <david@freetype.org>
902
Werner Lemberg110246c2006-09-26 21:55:44 +0000903 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
904 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
905 horizontal and vertical hinting for the purpose of debugging the
906 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000907
Werner Lemberg110246c2006-09-26 21:55:44 +0000908 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
909 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000910
Werner Lemberg110246c2006-09-26 21:55:44 +0000911 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
912
913 * include/freetype/config/ftoption.h, devel/ftoption.h
914 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
915 we want to compile LCD-optimized rendering code (à la ClearType) or
916 not. The macro *must* be disabled in default builds of the library
917 for patent reasons.
918
919 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
920 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
921 isn't defined at compile time. This only changes the content of the
922 rendered glyph to match the one of normal gray-level rendering,
923 hence clients should not need to be modified.
924
925 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000926
Werner Lemberg745ff2c2006-09-19 05:48:02 +00009272006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
928
929 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
930 LWFN fails and both are available.
931
David Turnerf3050052006-09-11 12:00:32 +00009322006-09-11 David Turner <david@freetype.org>
933
Werner Lembergf9644552006-09-12 13:48:10 +0000934 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
935 report their English names through an Apple Roman
936 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000937
Werner Lembergf9644552006-09-12 13:48:10 +0000938 If the font uses another name entry with language_id == English, it
939 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000940
Werner Lembergf9644552006-09-12 13:48:10 +0000941 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
942 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000943
Werner Lemberg36d2eab2006-09-05 19:24:34 +00009442006-09-05 Werner Lemberg <wl@gnu.org>
945
946 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000947 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000948 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
949 `HAN NOM B.ttf').
950
951 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
952
David Turner772e55d2006-09-05 09:45:15 +00009532006-09-05 David Turner <david@freetype.org>
954
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000955 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000956
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000957 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
958 (TRaster): Remove `count_ex' and `count_ey'.
959 (gray_find_cell): Remove 2nd and 3rd argument.
960 (gray_alloc_cell): Merged with `gray_find_cell'.
961 (gray_record_cell): Simplify.
962 (gray_set_cell): Rewrite.
963 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
964 (gray_render_span): Don't use FT_MEM_SET for small values.
965 (gray_dump_cells) [DEBUG_GRAYS]: New function.
966 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
967 bitmap scanline.
968 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000969
David Turneraa557a92006-09-04 16:42:44 +00009702006-09-04 David Turner <david@freetype.org>
971
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000972 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
973 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000974
Werner Lemberg2d8629b2006-09-03 06:18:45 +00009752006-09-03 Werner Lemberg <wl@gnu.org>
976
977 * devel/ftoption.h: Synchronize with
978 include/freetype/config/ftoption.h.
979
980 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
981 variable declaration.
982 (gray_convert_glyph): Fix compiler warnings.
983
David Turner6d79f212006-09-01 14:09:35 +00009842006-09-01 David Turner <david@freetype.org>
985
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000986 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
987 to recognize a few fonts that require the automatic unpatented
988 loader.
David Turnerbd502952006-09-01 19:05:24 +0000989
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000990 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
991 rasterizer. The speed improvement is between 15% and 25%, depending
992 on the font data.
993
994 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
995 (TCell): Redefine.
996 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
997 (gray_init_cells): Updated.
998 (gray_find_cell, gray_alloc_cell): New functions.
999 (gray_record_cell): Rewritten to use `gray_find_cell' and
1000 `gray_alloc_cell'.
1001 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1002 QSORT_THRESHOLD):
1003 Removed.
1004 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1005 gray_dump_cells): Removed.
1006 (gray_sweep): Rewritten.
1007 (gray_convert_glyph): Rewrite code which used one of the sorting
1008 functions.
1009 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001010
Werner Lembergd898aed2006-08-29 09:50:34 +000010112006-08-29 Dr. Werner Fink <werner@suse.de>
1012
1013 * configure: Make it possible to handle configure options which
1014 have strings containing spaces.
1015
10162006-08-27 David Turner <david@freetype.org>
1017
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001018 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1019 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1020 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1021
1022 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1023 src/truetype/truetype.c, src/truetype/ttdriver.c,
1024 src/truetype/ttgload.c, src/truetype/ttgload.h,
1025 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1026 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1027 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1028
1029 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1030 member `force_autohint'.
1031
1032 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1033
1034 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1035 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001036
Jens Claudiusa787f452006-08-27 11:26:18 +000010372006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1038
1039 Fix miscellaneous compiler warnings.
1040
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001041 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1042 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001043
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001044 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1045 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1046 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001047
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001048 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1049 volatileness of argument to ft_longjmp. Spotted by Werner
1050 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001051
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001052 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1053 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001054
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001055 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1056 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001057
Werner Lembergc4c35b72006-08-27 08:03:46 +000010582006-08-27 Werner Lemberg <wl@gnu.org>
1059
1060 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1061 Reported by Jens.
1062
Jens Claudius088e44e2006-08-22 14:24:30 +000010632006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001064
Jens Claudius088e44e2006-08-22 14:24:30 +00001065 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001066 about addresses of volatile objects passed as function arguments as
1067 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001068
Werner Lembergc4c35b72006-08-27 08:03:46 +00001069 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1070 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001071
1072 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1073 argument `table' a pointer to a volatile object.
1074
1075 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1076 argument `table' a pointer to a volatile object.
1077
Jens Claudius2652bd52006-08-18 17:20:37 +000010782006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1079
1080 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1081 variable `_sfnt' as volatile since it must keep its value across
1082 a call to ft_setjmp.
1083 (gxv_validate): Same for local variables `memory' and `valid'.
1084 (classic_kern_validate): Same for local variables `memory',
1085 `ckern', and `valid'.
1086
1087 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1088 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1089 `jstf', and 'valid'.
1090
1091 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1092 local variable `cmap'.
1093
David Turner9fbfc6a2006-08-16 09:11:31 +000010942006-08-16 David Turner <david@freetype.org>
1095
Werner Lemberg12342992006-08-19 11:18:09 +00001096 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1097 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001098
Werner Lemberg12342992006-08-19 11:18:09 +00001099 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1100 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001101
David Turner33f5f242006-08-16 16:50:55 +00001102
Werner Lemberg12342992006-08-19 11:18:09 +00001103 Improvements to native TrueType hinting. This is a first try,
1104 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1105
1106 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1107 `extra_points2'.
1108
1109 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1110 `orus'.
1111
1112 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1113 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1114 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1115 handle `extra_points2'.
1116
1117 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1118 Remove compiler warning.
1119 (cur_to_arg): Remove macro.
1120 (TT_Hint_Glyph): Updated.
1121 (TT_Process_Simple_Glyph): Handle `orus'.
1122
1123 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1124 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1125 (LOC_Ins_IUP): Renamed to...
1126 (IUP_WorkerRec): This.
1127 Add `orus' member.
1128 (Shift): Renamed to...
1129 (_iup_worker_shift): This.
1130 Updated.
1131 (Interp): Renamed to...
1132 (_iup_worker_interpolate): This.
1133 Updated to handle `orus'.
1134 (Ins_IUP): Updated.
1135
1136 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1137 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001138
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000011392006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1140
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001141 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001142 build ftvalid in ft2demos. This has been inadvertedly changed
1143 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001144
11452006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1146
Werner Lemberg12342992006-08-19 11:18:09 +00001147 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1148 Jens:
1149 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001150
Werner Lemberg12342992006-08-19 11:18:09 +00001151 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1152 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001153
1154 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1155
Jens Claudius9950adc2006-08-13 12:14:36 +000011562006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1157
Werner Lemberg12342992006-08-19 11:18:09 +00001158 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1159 T1_TOKEN_TYPE_KEY.
1160 (T1_FieldRec): Add `dict'.
1161 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1162 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1163 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001164
Werner Lemberg12342992006-08-19 11:18:09 +00001165 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1166 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001167
1168 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1169
1170 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001171 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1172 not T1_TOKEN_TYPE_ANY.
1173 (ps_parser_load_field): Make sure a token that should be a string or
1174 name is really a string or name.
1175 Avoid memory leak if a keyword has been already encountered and its
1176 value is overwritten.
1177 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1178 T1_FIELD_XXX.
1179 (parse_dict): Ignore keywords that occur in the wrong dictionary
1180 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001181
Werner Lemberg12342992006-08-19 11:18:09 +00001182 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1183 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001184
Werner Lemberg12342992006-08-19 11:18:09 +00001185 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1186 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001187
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000011882006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1189
1190 Move creation of field `buildchar' of T1_DecoderRec out of
1191 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1192 of it.
1193
1194 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1195 and `T1_Compute_Max_Advance'.
1196
1197 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1198 Remove field `face', add `len_buildchar'.
1199
1200 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1201 field `buildchar'.
1202
1203 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1204 finisher for T1_Decoder.
1205 (cid_slot_load_glyph): Do not ignore failure when initializing the
1206 T1_Decoder.
1207
1208 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1209 Updated.
1210 (t1_decoder_init): Remove initialization of fields `buildchar' and
1211 `len_buildchar'.
1212 (t1_decoder_done): Remove deallocation of field `buildchar'.
1213
1214 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1215 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1216 T1_Decoder.
1217 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1218 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1219 case of error.
1220
1221 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1222 `buildchar' of T1_FaceRec.
1223
1224 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1225 `buildchar' of T1_FaceRec.
1226
Werner Lemberg1a380e02006-07-14 18:28:08 +000012272006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1228
1229 * freetype2/include/freetype/internal/psaux.h: New macros
1230 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1231 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1232 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1233 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1234 (T1_DecoderRec): New fields `buildchar' and `face'.
1235 (IS_PS_TOKEN): New macro.
1236
1237 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1238 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1239
1240 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1241 `default_design_vector' and `num_default_design_vector'.
1242
1243 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1244 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1245 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1246
1247 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1248 `token' argument to be NULL if we want only to count the number of
1249 tokens.
1250 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1251 want to skip the array.
1252 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1253 want to skip the array.
1254
1255 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1256 support for (partially commented out) othersubrs 19-25, 27, and 28.
1257 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1258 (t1_decoder_done): Release new field `buildchar'.
1259
1260 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1261 functions.
1262 (t1_keywords): Register them.
1263 (t1_allocate_blend): Updated.
1264 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1265 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1266 (parse_dict): Remove `keyword_flags' argument.
1267 Use new macro IS_PS_TOKEN.
1268 Changed function so that later PostScript definitions override
1269 earlier ones.
1270 (t1_init_loader): Initialize new field `keywords_encountered'.
1271 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1272 `len_buildchar'.
1273 Remove `keywords_flags'.
1274
1275 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1276 `keywords_encountered'.
1277 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1278
1279 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1280 New entries for parsing /NDV, /CDV, and /DesignVector.
1281
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000012822006-07-07 Werner Lemberg <wl@gnu.org>
1283
1284 Add many checks to protect against malformed PCF files.
1285
1286 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1287 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1288
1289 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1290 data and check that tables don't overlap (using a simple
1291 bubblesort).
1292 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1293 New macros which give the size of data structures in the data
1294 stream.
1295 (pcf_get_properties): Use rough estimates to get array size limits.
1296 Assign `face->nprops' and `face->properties' earlier so that a call
1297 to PCF_Face_Done can do the clean-up in case of error.
1298 Protect against invalid string offsets.
1299 (pcf_get_metrics): Clean up code.
1300 Adjust tracing message levels.
1301 Use rough estimate to get array size limit.
1302 (pcf_get_bitmaps): Clean up code.
1303 Adjust tracing message levels.
1304 Use rough estimates to get offset limits.
1305 (pcf_get_encodings): Adjust tracing message level.
1306 (pcf_get_accel): Clean up code.
1307
Werner Lemberg8eb05252006-06-27 06:20:01 +000013082006-06-26 Werner Lemberg <wl@gnu.org>
1309
1310 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1311 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1312
Werner Lemberg24703f82006-06-26 19:12:51 +000013132006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1314
1315 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1316 (t1_decoder_parse_charstrings): Operator with
1317 opcode 15 pops its two arguments.
1318 Handle the case where the pops of an othersubr may be part of a
1319 subroutine.
1320 Handle unknown othersubrs gracefully: count their operands and let
1321 the following pop operators push the operands as the results onto
1322 the Type1 stack.
1323 Improve handling of setcurrentpoint opcode.
1324
Werner Lembergc011f4c2006-06-26 09:40:00 +000013252006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1326
1327 The Type 1 parser now skips over top-level procedures as required
1328 for a `Simplified Parser'. This makes the parser more robust as it
1329 doesn't poke around in PostScript code. Additionally, it makes the
1330 FontDirectory hackery in src/type1/t1load.c unnecessary.
1331
1332 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1333 (skip_literal_string): Add FT_Error as return value.
1334 Handle escapes better.
1335 (skip_string): Add FT_Error as return value.
1336 Don't set `parser->error' but return error code directly.
1337 (skip_procedure): New function.
1338 (ps_parser_skip_PS_token): Handle procedures.
1339 Update code.
1340 (ps_parser_to_token): Update code.
1341 (ps_parser_load_field_table): Handle bbox entries also.
1342
1343 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1344 Add commented-out code for synthetic fonts.
1345
Werner Lemberga2da05c2006-06-25 06:27:27 +000013462006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1347
1348 Fix two hinting bugs as reported in
1349 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1350
1351 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1352 `first_point' member.
1353
1354 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1355 `first_point'.
1356 (TT_Process_Composite_Glyph): Always untouch points.
1357
1358 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1359 `first_point' and `last_point' in case of composite glyphs.
1360 (Ins_IUP): Fix computation of `end_point'.
1361
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000013622006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1363
Werner Lembergef3d2c22006-06-25 06:07:14 +00001364 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1365 Mac. The original patch was written by David Sachitano and Lawrence
1366 Coopet, and modified by Sean McBride for MPW compatibility. Only
1367 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001368
Werner Lembergef3d2c22006-06-25 06:07:14 +00001369 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1370 Mac OS X platforms.
1371 (OS_INLINE): Undefine before definition.
1372 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1373 FontAssociation table in FOND resource.
1374 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1375 and fontSize at each entry of FontAssociation table in FOND
1376 resource.
1377 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1378 ffStylOff of FamilyRecord header of FOND resource, the header,
1379 fontSize, fontID at each entry of FontAssociation table, and
1380 StyleMapping table.
1381 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001382
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000013832006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1384
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001385 Public API of TrueTypeGX, OpenType, and classic kern table validator
1386 should return `FT_Err_Unimplemented_Feature' if validation service
1387 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001388 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001389 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1390
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001391 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1392 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1393 unavailable.
1394 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1395 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001396
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001397 * src/base/ftotval.c (FT_OpenType_Validate): Return
1398 FT_Err_Unimplemented_Feature if OpenType validation service is
1399 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001400
Werner Lembergb10e45a2006-06-08 07:32:56 +000014012006-06-08 Werner Lemberg <wl@gnu.org>
1402
1403 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1404 errors.
1405
David Turner5f1f7502006-06-07 05:11:50 +000014062006-06-07 David Turner <david@freetype.org>
1407
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001408 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1409 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1410 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001411
David Turner457b4a82006-06-06 08:14:14 +000014122006-06-06 David Turner <david@freetype.org>
1413
Werner Lemberg4836f952006-06-06 12:54:08 +00001414 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001415
Werner Lemberg4836f952006-06-06 12:54:08 +00001416 We change `ps_unicodes_init' so that it also takes a
1417 `free_glyph_name' callback to release the glyph names returned by
1418 `get_glyph_name'
1419
1420 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1421 Renamed to ...
1422 (PS_GetGlyphNameFunc): This.
1423 (PS_FreeGlyphNameFunc): New typedef.
1424 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1425
1426 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1427 argument.
1428 (cff_sid_free_glyph_name): New function.
1429 (cff_cmap_unicode_init): Updated.
1430
1431 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1432
1433 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1434 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001435
1436
David Turner09717352006-06-04 14:33:08 +000014372006-06-04 David Turner <david@freetype.org>
1438
Werner Lembergd724f202006-06-04 15:17:41 +00001439 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1440 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001441 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001442
Werner Lembergd724f202006-06-04 15:17:41 +00001443 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1444 of `face->num_glyphs' which missed the last glyph, due to
1445 the offset-by-1 computation, since the PFR format doesn't
1446 guarantee that glyph index 0 corresponds to the `missing
1447 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001448
Werner Lemberg33779662006-05-26 06:30:05 +000014492006-05-25 Werner Lemberg <wl@gnu.org>
1450
1451 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1452 `-no-undefined'. Reported by Christian Biesinger.
1453
Werner Lemberg24773d62006-05-20 08:53:13 +000014542006-05-19 Brian Weed <bw@imaginengine.com>
1455
1456 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1457 have debug information, and debug libraries use `C7 compatible'
1458 debug info.
1459
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000014602006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1461
Werner Lemberga6523a62006-05-20 08:47:01 +00001462 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001463 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001464
Werner Lemberga6523a62006-05-20 08:47:01 +00001465 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1466 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001467
1468 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001469 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001470
14712006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1472
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001473 * build/unix/configure.raw: Add a fallback to disable Carbon
1474 dependency, if configured with no options on Mac OS X.
1475
14762006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1477
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001478 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001479 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001480 the second part of Savannah bug #16590.
1481
Werner Lemberg545c4e52006-05-17 22:55:04 +000014822006-05-18 Werner Lemberg <wl@gnu.org>
1483
1484 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1485 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1486
David Turnerdc3ff312006-05-17 12:59:35 +000014872006-05-17 David Turner <david@freetype.org>
1488
Werner Lemberg545c4e52006-05-17 22:55:04 +00001489 This is a major patch used to drastically improve the performance of
1490 loading glyphs. This both speeds up loading the glyph vectors
1491 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001492
Werner Lemberg545c4e52006-05-17 22:55:04 +00001493 We now use inline assembler code with GCC to implement `FT_MulFix',
1494 which is probably the most important function related to the
1495 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001496
Werner Lemberg545c4e52006-05-17 22:55:04 +00001497 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001498
1499
Werner Lemberg545c4e52006-05-17 22:55:04 +00001500 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1501 `cursor' and `limit'.
1502
1503 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1504 New functions.
1505 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1506 [TEST]: Remove.
1507
1508 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1509 code.
1510
1511 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1512 `FT_ZERO'
1513 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1514 (af_glyph_hints_reload: Rewrite recognition of weak points.
1515
1516 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1517 constant values out of the loops.
1518
1519 * src/autofit/aftypes.h: Updated.
1520
1521 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1522
1523 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1524 product to get orientation.
1525
1526 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1527 (FT_Stream_OpenGzip): Use it to handle small files directly in
1528 memory.
1529
1530 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1531 Improve performance.
1532
1533 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1534 `limit'.
1535
1536 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1537 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1538 exceedingly large values of number of contours. Speed up by
1539 reducing the number of loops.
1540
1541 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1542
1543
1544 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1545 used to detect rogue clients from 4 to 16. This is to prevent some
1546 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1547 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001548
Werner Lembergde2d90a2006-05-17 08:54:30 +000015492007-05-17 Werner Lemberg <wl@gnu.org>
1550
1551 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001552 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001553
15542006-05-16 Werner Lemberg <wl@gnu.org>
1555
1556 * docs/PROBLEMS: Updated icl issues.
1557
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001558----------------------------------------------------------------------------
1559
Werner Lemberg42b63b22007-01-21 21:01:33 +00001560Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001561David Turner, Robert Wilhelm, and Werner Lemberg.
1562
1563This file is part of the FreeType project, and may only be used, modified,
1564and distributed under the terms of the FreeType project license,
1565LICENSE.TXT. By continuing to use, modify, or distribute this file you
1566indicate that you have read the license and understand and accept it
1567fully.
1568
1569
1570Local Variables:
1571version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001572coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001573End: