blob: 68153034d2502b8323bf0df487f657c9bed7b036 [file] [log] [blame]
Werner Lemberg313d7772007-02-01 08:10:45 +000012007-02-01 Werner Lemberg <wl@gnu.org>
2
3 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
4 Explain why applications shouldn't use it. Found by Alexei.
5
Werner Lemberg4b2e83d2007-02-01 07:58:02 +000062007-02-01 Alexei Podtelezhnikov >apodtele@gmail.com>
7
8 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
9 message.
10
11 * src/gxvalid/gxvmort1.c
12 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
13 message.
14
Werner Lemberg53935932007-01-31 08:53:02 +0000152007-01-31 Werner Lemberg <wl@gnu.org>
16
17
18 * Version 2.3.1 released.
19 =========================
20
21
22 Tag sources with `VER-2-3-1-FINAL'.
23
24 * builds/win32/visualc/freetype.dsp,
25 builds/win32/visualc/freetype.vcproj: s/230/231/.
26 * builds/win32/visualc/index.html: s/221/231/.
27
28 * vms_make.com: Add `ftgasp'.
29
David Turnera7ee6082007-01-30 10:33:53 +0000302007-01-30 David Turner <david@freetype.org>
31
Werner Lemberg53935932007-01-31 08:53:02 +000032 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +000033
Werner Lemberg53935932007-01-31 08:53:02 +000034 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +000035
Werner Lemberg53935932007-01-31 08:53:02 +000036 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
37 s/2.3.0/2.3.1/.
38
39 * builds/unix/configure.raw (version_info): Set to 9:12:3.
40
41
42 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
43 (af_loader_load_g): Disable the warper (i.e., the light hinting
44 improvements) to make a 2.3.1 bugfix release before introducing a
45 new feature. This should give us more time to tune and improve the
46 warper for the next release.
47
48 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +000049
David Turnerd91eebd2007-01-26 15:05:41 +0000502007-01-25 David Turner <david@freetype.org>
51
Werner Lembergbf241762007-01-26 16:08:49 +000052 For light auto-hinting, improve glyph advance widths and resurrect
53 normal/full hinting to its normal quality.
54
55 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
56 and `xmax_delta'.
57 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
58 and `xmax_delta'.
59
60 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
61 preprocessor conditional with if-clause, handling both light and
62 normal mode.
63
64 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
65 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +000066
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000672007-01-25 Werner Lemberg <wl@gnu.org>
68
69 * docs/release: Updated -- Savannah uses a new uploading scheme.
70
David Turnera42567b2007-01-25 12:23:37 +0000712007-01-25 David Turner <david@freetype.org>
72
Werner Lembergd7855662007-01-25 13:53:56 +000073 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +000074
Werner Lembergd7855662007-01-25 13:53:56 +000075 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
76 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
77 functions.
David Turnera42567b2007-01-25 12:23:37 +000078
Werner Lembergd7855662007-01-25 13:53:56 +000079 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +000080
Werner Lembergb1be9e82007-01-25 11:50:00 +0000812007-01-25 Werner Lemberg <wl@gnu.org>
82
83 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +000084 correctly in a sanity check. Since this function is only used to
85 load local and global functions, any charstring that called the last
86 local/global function would fail otherwise. This fixes Savannah bug
87 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +000088
89 * docs/CHANGES: Document it.
90
David Turnerb6de8d12007-01-23 15:51:50 +0000912007-01-23 David Turner <david@freetype.org>
92
Werner Lembergb1be9e82007-01-25 11:50:00 +000093 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
94 prevented compilation when disabling both the unpatented and the
95 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000096
Werner Lembergb1be9e82007-01-25 11:50:00 +000097
98 Fix and enable the warper to improve `light' hinting mode. This is
99 not necessarily a final version, but it seems to work well.
100
101 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
102 Disable code.
103 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
104 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
105
106 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
107 (af_warper_compute_line_best): Fix array size of `scores'.
108 (af_warper_compute): Better handling of border cases.
109 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
110 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000111
Werner Lemberg011d1112007-01-21 09:36:00 +00001122007-01-21 Werner Lemberg <wl@gnu.org>
113
Werner Lemberg42b63b22007-01-21 21:01:33 +0000114 * ChangeLog: Split off older entries into...
115 * ChangeLog.22: This new file.
116
1172007-01-21 Werner Lemberg <wl@gnu.org>
118
Werner Lemberg555258f2007-01-21 09:46:37 +0000119 * docs/CHANGES: Document SHZ fix.
120
1212007-01-21 George Williams <gww@silcom.com>
122
123 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
124 points.
125
1262007-01-21 Werner Lemberg <wl@gnu.org>
127
Werner Lemberg011d1112007-01-21 09:36:00 +0000128 * src/sfnt/ttmtx.c (tt_face_get_metrics)
129 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
130
Werner Lemberg87a5a432007-01-17 12:44:39 +00001312007-01-17 Werner Lemberg <wl@gnu.org>
132
Werner Lembergb8003292007-01-17 12:56:25 +0000133
134 * Version 2.3.0 released.
135 =========================
136
137
138 Tag sources with `VER-2-3-0-FINAL'.
139
1402007-01-17 Werner Lemberg <wl@gnu.org>
141
Werner Lemberg87a5a432007-01-17 12:44:39 +0000142 * docs/release: Updated.
143
David Turner22122722007-01-16 20:06:44 +00001442007-01-16 David Turner <david@freetype.org>
145
Werner Lemberg87a5a432007-01-17 12:44:39 +0000146 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
147 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
148 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
149 warnings.
David Turner22122722007-01-16 20:06:44 +0000150
Werner Lemberg267e1d72007-01-15 07:48:09 +00001512007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
152
153 * builds/amiga/makefile, builds/amiga/makefile.os4,
154 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
155
156 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
157
Werner Lemberg8c4120d2007-01-15 06:42:40 +00001582007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
159
160 Fix various compiler warnings.
161
162 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
163 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
164 s/index/strike_index/.
165 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
166
167 * src/gxvalid/gxvmorx5.c
168 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
169
170 * src/truetype/ttinterp.c (Compute_Point_Displacement),
171 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
172 uninitialized variables.
173
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001742007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
175
176 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
177
Werner Lemberg281c1482007-01-13 22:50:51 +00001782007-01-13 Werner Lemberg <wl@gnu.org>
179
180 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
181 versions up to 0x3FF without complaining.
182
Werner Lembergac250b22007-01-13 14:01:36 +00001832007-01-13 Derek Clegg <dclegg@apple.com>
184
185 Add FT_Get_PS_Font_Info interface to CFF driver.
186
187 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
188 (CFF_FontRec): Add `font_info' field.
189
190 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
191 (cff_font_done): Free font->font_info if necessary.
192
193 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
194 (cff_service_ps_info): Register cff_ps_get_font_info.
195
Werner Lemberg23df31a2007-01-13 08:45:00 +00001962007-01-13 Werner Lemberg <wl@gnu.org>
197
198 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
199 with C++ compiler.
200
201 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
202 af_glyph_hints_dump_edges): Ditto.
203
204 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
205 `modules.cfg').
206
207 * src/sfnt/ttsbit0.h: Remove.
208
209 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
210
Werner Lemberg27cf9de2007-01-13 07:34:23 +00002112007-01-12 David Turner <david@freetype.org>
212
213 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
214 bug in the bitmap emboldener if the pitch of the source bitmap is
215 much larger than its width.
216
217 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
218 compilation warning.
219
Werner Lemberg6d96d312007-01-12 10:30:19 +00002202007-01-12 Werner Lemberg <wl@gnu.org>
221
222 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
223 `automake' CVS module from sources.redhat.com.
224
Werner Lemberg17432b52007-01-12 09:28:44 +00002252007-01-11 Werner Lemberg <wl@gnu.org>
226
227 * src/type1/t1load.c (is_space): Removed.
228 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
229 (parse_charstrings): Use IS_PS_TOKEN.
230
231
232 * autogen.sh: Avoid bash specific syntax.
233
David Turner038ace22007-01-11 15:00:59 +00002342007-01-11 David Turner <david@freetype.org>
235
Werner Lemberg17432b52007-01-12 09:28:44 +0000236 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000237
Werner Lemberg17432b52007-01-12 09:28:44 +0000238 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000239
Werner Lemberg17432b52007-01-12 09:28:44 +0000240 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
241 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000242 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000243
Werner Lemberg17432b52007-01-12 09:28:44 +0000244 * autogen.sh: Small fix to get it working on Mac OS X properly:
245 The issue is that GNU libtool is called `glibtool' on this platform,
246 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000247
David Turner2628ea92007-01-10 13:15:56 +00002482007-01-10 David Turner <david@freetype.org>
249
Werner Lemberg17432b52007-01-12 09:28:44 +0000250 * all-sources: Tag all sources with VER-2-3-0-RC1 and
251 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000252
Werner Lemberg17432b52007-01-12 09:28:44 +0000253 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
254 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
255 version number to 2.3.0.
256
257 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
258 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000259
260 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000261 include/freetype/ftlcdfil.h: Update reference documentation with
262 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000263
Werner Lemberg17432b52007-01-12 09:28:44 +0000264 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
265 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000266
Werner Lembergbf02d392007-01-10 07:07:37 +00002672007-01-10 Derek Clegg <dclegg@apple.com>
268
269 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
270 values.
271
David Turnerf48b60e2007-01-08 15:15:32 +00002722007-01-08 David Turner <david@freetype.org>
273
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000274 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000275
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000276 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
277 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000278 corresponding to a given character pixel size.
279
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000280 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
281 `gasp' table, in order to avoid potential problems with later
282 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000283
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000284 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
285 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000286
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000287 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
288 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
289 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
290 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000291
Werner Lemberge6b6f372007-01-07 00:06:47 +00002922007-01-07 Werner Lemberg <wl@gnu.org>
293
Werner Lembergb8004d22007-01-07 09:13:38 +0000294 * src/cid/cidparse.c (cid_parser_new): Improve error message for
295 Type 11 fonts.
296 Scan for `/sfnts' token.
297
2982007-01-07 Werner Lemberg <wl@gnu.org>
299
300 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000301
Werner Lembergbe5f7972007-01-06 07:51:48 +00003022007-01-06 Werner Lemberg <wl@gnu.org>
303
304 * src/cff/cffload.c (cff_index_init): Remove unused variable.
305 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
306
David Turnera8cf42b2007-01-04 16:46:46 +00003072007-01-04 David Turner <david@freetype.org>
308
Werner Lembergf6294392007-01-06 07:47:45 +0000309 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
310 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000311
Werner Lembergf6294392007-01-06 07:47:45 +0000312
313 Do not allocate interpreter-specific tables in memory if we are not
314 going to load glyphs with the bytecode interpreter anyway.
315
316 * src/truetype/ttgload.c (tt_loader_init): Load execution context
317 only if glyph is hinted.
318 Updated.
319 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
320 and `cvs_ready'.
321 Add `tt_size_ready_bytecode' declaration.
322 * src/truetype/ttobjs.c (tt_size_done_bytecode,
323 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
324 (tt_size_init): Move most code into `tt_size_init_bytecode'.
325 (tt_size_done): Move most code into `tt_size_done_bytecode'.
326 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000327
David Turner91a34022007-01-05 14:47:08 +0000328
Werner Lembergf6294392007-01-06 07:47:45 +0000329 Don't extract the metrics table from the SFNT font file. Instead,
330 reparse it on each glyph load. The runtime difference is not
331 noticeable, and it can save a lot of heap memory when memory-mapped
332 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000333
Werner Lembergf6294392007-01-06 07:47:45 +0000334 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
335 `horz_metrics_offset' and `vert_metrics_ofset'.
336 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
337 Updated.
338
339
340 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
341
342
343 Do not load the CFF index offsets into memory, since this wastes a
344 *lot* of heap memory with large Asian CFF fonts. There is no
345 significant performance loss.
346
347 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
348 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
349 `data_size'.
350 (CFF_CharsetRec): Add field `num_glyphs'.
351
352 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
353 cff_charset_cid_to_gindex): New functions.
354 (cff_new_index): Renamed to...
355 (cff_index_init): This. Update all callers.
356 Updated -- some code has been moved to `cff_index_load_offsets'.
357 (cff_done_index): Renamed to...
358 (cff_index_done): This. Update all callers.
359 (cff_index_get_pointers, cff_index_access_element): Updated to use
360 stream offsets.
361 (cff_charset_compute_cids): Set `num_glyphs' field.
362 (cff_encoding_load): Updated.
363
364 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000365
3662007-01-04 David Turner <david@freetype.org>
367
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000368 * docs/INSTALL.UNIX: Simplify some parts, add reference to
369 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000370
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000371 * README.CVS: Add common problem description and solution
372 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000373
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000374 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000375
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000376 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000377
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000378 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000379
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000380 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
381 (TWorker): This.
382 Remove `count_table' and `memory'.
383 Make `grays' a pointer.
384 (TRaster): New structure.
385 (count_table): New static array.
386 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
387 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
388 ft_black_set_mode, ft_black_render): Updated.
389 (ft_black_init): Don't initialize `count_table'.
390 (ft_black_reset): Use the render pool. This saves about 6KB of
391 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000392
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000393 * src/smooth/ftgrays.c (TRaster): Replaced with...
394 (TWorker): This.
395 Remove `memory'.
396 (TRaster): New structure.
397
398 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
399 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
400 gray_render_span, gray_raster_render): Updated.
401 (gray_raster_reset): Use the render pool. This saves about 6KB of
402 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000403
David Turner8a6c44e2007-01-04 17:03:11 +0000404 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
405 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000406 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
407 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
408 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000409
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000410 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
411 Remove a typo that results in no hinting and a memory leak with some
412 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000413
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000414 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000415 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000416 CFF_Faces in it. We need to close all faces before destroying the
417 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000418
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00004192007-01-02 Werner Lemberg <wl@gnu.org>
420
421 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
422 Remove compiler warning.
423
David Turner9207e002007-01-02 16:58:13 +00004242007-01-02 David Turner <david@freetype.org>
425
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000426 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000427
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00004282006-12-31 Masatake YAMATO <jet@gyve.org>
429
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000430 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
431 function.
432 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000433 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000434 `gxv_kern_subtable_fmt0_pairs_validate'.
435
David Turner115b4422006-12-22 11:37:05 +00004362006-12-22 David Turner <david@freetype.org>
437
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000438 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
439 warnings.
David Turner115b4422006-12-22 11:37:05 +0000440
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000441 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
442 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000443
Werner Lemberg4755bf72006-12-16 08:58:44 +00004442006-12-16 Anders Kaseorg <anders@kaseorg.com>
445
446 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
447 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
448
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00004492006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
450
Werner Lemberg9b774e22007-01-16 06:11:27 +0000451 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000452 sync with the modification by Jens Claudius on 2006-08-22; cf.
453 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 +0000454
4552006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
456
457 * src/base/ftmac.c: Specialized for Mac OS X only.
458 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
459 * builds/unix/configure.raw: Ditto. When explicit switches for
460 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
461 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
462
4632006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
464
465 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
466 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
467 instead of src/base/ftmac.c
468 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
469 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
470 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
471 that cannot be built at present.
472
4732006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
474
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000475 * src/base/ftobjs.c: Improvement of resource fork handler for
476 POSIX, cf.
477 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000478 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
479 format or .dfont, to simulate the face index number counted by ftmac.c.
480 (IsMacResource): Return the number of scalable faces correctly.
481
Werner Lembergec5b4502006-12-10 07:51:38 +00004822006-12-10 Werner Lemberg <wl@gnu.org>
483
484 * builds/toplevel.mk (version): Protect against `distclean' target.
485
Werner Lembergb26b3142006-12-09 20:01:43 +00004862006-12-09 Werner Lemberg <wl@gnu.org>
487
488 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
489 or `type'.
490
491 * builds/freetype.mk (version): Extracted from freetype.h, using
492 GNU make's built-in string functions.
493 (refdoc): Use $(version) instead of static version number.
494
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004952006-12-08 Werner Lemberg <wl@gnu.org>
496
497 * builds/toplevel.mk (dist): Extract version number from freetype.h.
498
Werner Lemberg15c29502006-12-09 07:29:54 +00004992006-12-08 Vladimir Volovich <vvv@vsu.ru>
500
501 * src/tools/apinames (State): Remove final comma in structure -- xlc
502 v5 under AIX 4.3 doesn't like this.
503
David Turnerdbf3b432006-12-07 21:18:09 +00005042006-12-07 David Turner <david@freetype.org>
505
Werner Lemberg256a3512006-12-08 06:49:33 +0000506 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
507 to the spacing of auto-fitted glyphs. This only impacts rare
508 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000509
Werner Lemberg11171312006-12-03 09:43:40 +00005102006-12-03 Werner Lemberg <wl@gnu.org>
511
512 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
513
Werner Lemberg960ba592006-12-01 08:20:47 +00005142006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000515
Werner Lemberg960ba592006-12-01 08:20:47 +0000516 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
517 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
518 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000519
David Turner80658e52006-11-28 08:09:20 +0000520
Werner Lemberg960ba592006-12-01 08:20:47 +0000521 * include/freetype/ftxf86.h: Fix and extend comment so that it
522 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000523
Werner Lemberg960ba592006-12-01 08:20:47 +0000524 * include/freetype/ftchapters.h: Add `font_format' section.
525
526
527 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
528 to TOC in index page.
529
5302006-11-28 David Turner <david@freetype.org>
531
532 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
533 trying to render into a zero-width/height bitmap, not an error code.
534
535 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
536
537 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
538 ones instead.
539
540 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
541 variable.
David Turner80658e52006-11-28 08:09:20 +0000542
Werner Lemberg8636c292006-11-26 22:28:13 +00005432006-11-26 Pierre Hanser <hanser@club-internet.fr>
544
545 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
546
Werner Lemberg960ba592006-12-01 08:20:47 +00005472006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000548
Werner Lemberg960ba592006-12-01 08:20:47 +0000549 * src/autofit/afhints.c (af_glyph_hints_dump_points,
550 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
551 Add stubs to link the `ftgrid' test program when debugging is
552 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000553
Werner Lemberg960ba592006-12-01 08:20:47 +00005542006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000555
556 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000557 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
558
559 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
560 Emit more sensible information.
561
562 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
563
564 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
565 rounding of blue values.
566 (af_latin_hints_compute_segments): Hint segment heights.
567 (af_latin_hints_link_segments): Reduce `len_score' value.
568 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
569 value and use `height' member for comparisons.
570 (af_latin_hint_edges): Extend logging message.
571 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000572
Werner Lemberg91959bf2006-11-22 10:36:55 +00005732006-11-22 Werner Lemberg <wl@gnu.org>
574
575 Fix Savannah bug #15553.
576
577 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
578 program after a change from mono to grayscaling (and vice versa).
579 Use correct constant for comparison to get `exec->grayscale'.
580
Werner Lemberg913a3652006-11-19 09:19:17 +00005812006-11-18 Werner Lemberg <wl@gnu.org>
582
583 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000584 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000585 This patch fixes Savannah bug #18301.
586
587 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
588 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
589 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
590 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
591 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
592 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
593 (FNT_Load_Glyph): Check validity of `glyph_index'.
594
David Turner7bab6ae2006-11-13 11:25:06 +00005952006-11-13 David Turner <david@freetype.org>
596
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000597 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
598 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000599
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000600 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
601 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
602 when building the library to change the default LCD filter to be
603 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000604
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000605 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000606
David Turner8765c712006-11-10 16:49:42 +00006072006-11-10 David Turner <david@freetype.org>
608
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000609 * src/smooth/ftsmooth.c: API change for the LCD
610 filter. The FT_LcdFilter value is an enumeration describing which
611 filter to apply, with new values FT_LCD_FILTER_LIGHT and
612 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
613 algorithm which produces strong color fringes for everything
614 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000615
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000616 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
617 second parameter to an enum type.
618
619 * src/base/ftlcdfil.c (USE_LEGACY): Define.
620 (_ft_lcd_filter): Rename to...
621 (_ft_lcd_filter_fir): This.
622 Update parameters.
623 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
624 (FT_Library_Set_LcdFilter): Update parameters.
625 Handle new filter modes.
626
627 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
628 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
629 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
630 callback and update other fields.
631
632 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
633 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
634 Other minor improvements.
635
636 * src/autofit/aflatin.c: Various tiny improvements that drastically
637 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
638 (af_latin_hints_compute_edges): Fix typo.
639 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000640
David Turner4e9cc3c2006-11-09 16:31:52 +00006412006-11-09 David Turner <david@freetype.org>
642
Werner Lemberg49c77a82006-11-09 21:51:57 +0000643 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
644 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000645
Werner Lemberg5e430892006-11-07 09:35:03 +00006462006-11-07 Zhe Su <james.su@gmail.com>
647
648 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
649 also.
650
Werner Lemberg111b5ae2006-11-03 09:40:12 +00006512006-11-03 Werner Lemberg <wl@gnu.org>
652
653 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
654
David Turner40604742006-11-02 16:37:35 +00006552006-11-02 David Turner <david@freetype.org>
656
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000657 Add a few tweaks to better handle serif fonts.
658 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000659
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000660 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
661 segments that are less than 1.5 pixels high. This gets rid of
662 *many* corner cases with serifs.
663 (af_latin_align_linked_edge): Add logging message.
664 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
665 Add logging messages.
666 Handle AF_EDGE_FLAG flag specially.
667
668 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
669 _af_debug_disable_blue_hints, and _af_debug_hints variables.
670
671 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
672 Update external declarations.
673 (af_corner_orientation, af_corner_is_flat): Replaced by...
674
675 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
676 ft_corner_is_flat): These declarations.
677
678 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
679 Comment out. Replaced by...
680
681 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
682 These functions. Update all callers.
683 (FT_Add64) [!FT_LONG64]: Simplify.
684
685 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
686 (af_direction_compute): Add a missing FT_ABS call. This bug caused
687 production of garbage by missing lots of segments.
688
689 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
690
691 * src/autofit/afloader.c (af_loader_init, af_loader_done)
692 [AF_DEBUG]: Set _af_debug_hints.
693
694
695 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
696 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
697 and ft_corner_orientation.
698
699
700 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000701
Werner Lemberge88c5262006-10-24 05:46:26 +00007022006-10-24 Werner Lemberg <wl@gnu.org>
703
704 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
705
706 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
707 as argument.
708
David Turnera1861392006-10-23 16:00:59 +00007092006-10-23 Zhe Su <zsu@novell.com>
710
Werner Lemberg715e96e2006-10-24 05:28:45 +0000711 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
712 better deal with broken Asian fonts with strange glyphs, having
713 self-intersections and other peculiarities. The used algorithm is
714 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000715
David Turnere140f142006-10-23 08:56:57 +00007162006-10-23 David Turner <david@freetype.org>
717
Werner Lemberg715e96e2006-10-24 05:28:45 +0000718 Speed up the CFF font loader. With some large CFF fonts,
719 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000720
Werner Lemberg715e96e2006-10-24 05:28:45 +0000721 * src/cff/cffload.c (cff_get_offset): Removed.
722 (cff_new_index): Inline functionality of `cff_get_offset'.
723 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
724 (cff_charset_done): Call `cff_charset_free_cids'.
725 (cff_charset_load): Call `cff_charset_compute_cids'.
726 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
727
728 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
729 with FT_NEXT_XXX.
730
731
732 Speed up the Postscript hinter, with more than 100% speed increase
733 on my machine.
734
735 * src/pshinter/pshalgo.c (psh_corner_is_flat,
736 psh_corner_orientation): New functions.
737 (psh_glyph_compute_inflections): Merge loops for efficiency.
738 Use `psh_corner_orientation'.
739 (psh_glyph_init): Use `psh_corner_is_flat'.
740 (psh_hint_table_find_strong_point): Renamed to...
741 (psh_hint_table_find_strong_points): This.
742 Rewrite, adding argument to handle all points at once.
743 Update all callers.
744 (PSH_MAX_STRONG_INTERNAL): New macro.
745 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000746
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00007472006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
748
749 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000750 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000751
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00007522006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
753
754 * docs/INSTALL.CROSS: New document file for cross-building.
755
756 * builds/unix/configure.raw: Preliminary cross-building support.
757 Find native C compiler and pass it by CC_BUILD, and
758 find suffix for native executable and pass it by EXEEXT_BUILD.
759 Also suffix for target executable is passed by EXEEXT.
760
Werner Lembergb9e6d692006-10-15 08:58:40 +0000761 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
762 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000763 CC_BUILD and EXEEXT_BUILD.
764
Werner Lembergb9e6d692006-10-15 08:58:40 +0000765 * builds/exports.mk (APINAMES_EXE): Change the extension for
766 apinames from the suffix for target (E) to that for building host
767 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000768
Werner Lemberg82a07e92006-10-12 06:20:44 +00007692006-10-12 Werner Lemberg <wl@gnu.org>
770
771 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
772 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
773 which reference those files.
774
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007752006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
776
Werner Lembergb9e6d692006-10-15 08:58:40 +0000777 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
778 embedded in freetype2.pc and freetype-config. Use it to record
779 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000780
781 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
782
783 * builds/unix/freetype-config.in: Ditto.
784
Werner Lemberg28e17d92006-10-11 17:27:47 +00007852006-10-11 Werner Lemberg <wl@gnu.org>
786
787 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
788 development.
789
Jens Claudius336d2292006-10-03 08:53:37 +00007902006-10-03 Jens Claudius <jens.claudius@yahoo.com>
791
792 * include/freetype/config/ftstdlib.h: Cast away volatileness from
793 argument to ft_setjmp.
794
795 * include/freetype/internal/ftvalid.h: Add comment that
796 ft_validator_run must not be used.
797
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007982006-10-01 Werner Lemberg <wl@gnu.org>
799
800 * src/base/ftbase.c: Undo change from 2006-09-30.
801
802 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
803
8042006-09-30 David Turner <david@freetype.org>
805
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000806 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
807 s/unpatented_hinting/ignore_unpatented_hinter/.
808 Update all callers.
809
810 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
811 auto-hinting shall be used or not.
812
813 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000814
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008152006-09-30 Werner Lemberg <wl@gnu.org>
816
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000817 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
818 in use).
819
820 * src/base/ftbase.c: Include `ftlcdfil.c'.
821
Werner Lemberg9b15ea32006-09-29 18:22:11 +00008222006-09-29 Werner Lemberg <wl@gnu.org>
823
824 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
825 overlapping segments. Bug reported by Stefan Koch.
826
David Turnerad830712006-09-27 16:20:59 +00008272006-09-28 David Turner <david@freetype.org>
828
Werner Lemberg2c002e12006-09-29 21:31:53 +0000829 Fix a bug in the automatic unpatented hinting support which prevents
830 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000831
Werner Lemberg2c002e12006-09-29 21:31:53 +0000832 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
833 s/force_autohint/unpatented_hinting/. Update all callers.
834
835 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
836
837 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000838
David Turner8a317cf2006-09-27 07:52:48 +00008392006-09-27 David Turner <david@freetype.org>
840
Werner Lemberg2c002e12006-09-29 21:31:53 +0000841 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000842
David Turner8a317cf2006-09-27 07:52:48 +0000843
David Turnere140f142006-10-23 08:56:57 +0000844 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000845 In a default build, the function `FT_Library_SetLcdFilter' returns
846 `FT_Err_Unimplemented_Feature'; you need to #define
847 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
848 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000849
Werner Lemberg2c002e12006-09-29 21:31:53 +0000850 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000851
Werner Lemberg2c002e12006-09-29 21:31:53 +0000852 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
853 typedef.
854 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
855 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000856
Werner Lemberg2c002e12006-09-29 21:31:53 +0000857 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
858 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000859
Werner Lemberg2c002e12006-09-29 21:31:53 +0000860 Handle subpixel rendering.
861 Simplify function.
862 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
863 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
864
865 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
866 pointing to <freetype/ftlcdfil.h>.
867
868 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
869 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
870
871 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000872
Werner Lemberge20df4a2006-09-27 06:29:21 +00008732006-09-26 David Bustin
874
875 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
876 correctly. Reported as Savannah bug #17843.
877
David Turner6f8c6222006-09-26 15:42:44 +00008782006-09-26 David Turner <david@freetype.org>
879
Werner Lemberg110246c2006-09-26 21:55:44 +0000880 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
881 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
882 horizontal and vertical hinting for the purpose of debugging the
883 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000884
Werner Lemberg110246c2006-09-26 21:55:44 +0000885 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
886 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000887
Werner Lemberg110246c2006-09-26 21:55:44 +0000888 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
889
890 * include/freetype/config/ftoption.h, devel/ftoption.h
891 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
892 we want to compile LCD-optimized rendering code (à la ClearType) or
893 not. The macro *must* be disabled in default builds of the library
894 for patent reasons.
895
896 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
897 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
898 isn't defined at compile time. This only changes the content of the
899 rendered glyph to match the one of normal gray-level rendering,
900 hence clients should not need to be modified.
901
902 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000903
Werner Lemberg745ff2c2006-09-19 05:48:02 +00009042006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
905
906 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
907 LWFN fails and both are available.
908
David Turnerf3050052006-09-11 12:00:32 +00009092006-09-11 David Turner <david@freetype.org>
910
Werner Lembergf9644552006-09-12 13:48:10 +0000911 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
912 report their English names through an Apple Roman
913 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000914
Werner Lembergf9644552006-09-12 13:48:10 +0000915 If the font uses another name entry with language_id == English, it
916 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000917
Werner Lembergf9644552006-09-12 13:48:10 +0000918 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
919 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000920
Werner Lemberg36d2eab2006-09-05 19:24:34 +00009212006-09-05 Werner Lemberg <wl@gnu.org>
922
923 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000924 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000925 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
926 `HAN NOM B.ttf').
927
928 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
929
David Turner772e55d2006-09-05 09:45:15 +00009302006-09-05 David Turner <david@freetype.org>
931
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000932 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000933
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000934 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
935 (TRaster): Remove `count_ex' and `count_ey'.
936 (gray_find_cell): Remove 2nd and 3rd argument.
937 (gray_alloc_cell): Merged with `gray_find_cell'.
938 (gray_record_cell): Simplify.
939 (gray_set_cell): Rewrite.
940 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
941 (gray_render_span): Don't use FT_MEM_SET for small values.
942 (gray_dump_cells) [DEBUG_GRAYS]: New function.
943 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
944 bitmap scanline.
945 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000946
David Turneraa557a92006-09-04 16:42:44 +00009472006-09-04 David Turner <david@freetype.org>
948
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000949 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
950 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000951
Werner Lemberg2d8629b2006-09-03 06:18:45 +00009522006-09-03 Werner Lemberg <wl@gnu.org>
953
954 * devel/ftoption.h: Synchronize with
955 include/freetype/config/ftoption.h.
956
957 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
958 variable declaration.
959 (gray_convert_glyph): Fix compiler warnings.
960
David Turner6d79f212006-09-01 14:09:35 +00009612006-09-01 David Turner <david@freetype.org>
962
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000963 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
964 to recognize a few fonts that require the automatic unpatented
965 loader.
David Turnerbd502952006-09-01 19:05:24 +0000966
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000967 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
968 rasterizer. The speed improvement is between 15% and 25%, depending
969 on the font data.
970
971 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
972 (TCell): Redefine.
973 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
974 (gray_init_cells): Updated.
975 (gray_find_cell, gray_alloc_cell): New functions.
976 (gray_record_cell): Rewritten to use `gray_find_cell' and
977 `gray_alloc_cell'.
978 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
979 QSORT_THRESHOLD):
980 Removed.
981 (gray_shell_sort, gray_quick_sort, gray_check_sort,
982 gray_dump_cells): Removed.
983 (gray_sweep): Rewritten.
984 (gray_convert_glyph): Rewrite code which used one of the sorting
985 functions.
986 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000987
Werner Lembergd898aed2006-08-29 09:50:34 +00009882006-08-29 Dr. Werner Fink <werner@suse.de>
989
990 * configure: Make it possible to handle configure options which
991 have strings containing spaces.
992
9932006-08-27 David Turner <david@freetype.org>
994
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000995 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
996 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
997 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
998
999 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1000 src/truetype/truetype.c, src/truetype/ttdriver.c,
1001 src/truetype/ttgload.c, src/truetype/ttgload.h,
1002 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1003 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1004 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1005
1006 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1007 member `force_autohint'.
1008
1009 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1010
1011 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1012 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001013
Jens Claudiusa787f452006-08-27 11:26:18 +000010142006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1015
1016 Fix miscellaneous compiler warnings.
1017
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001018 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1019 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001020
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001021 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1022 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1023 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001024
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001025 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1026 volatileness of argument to ft_longjmp. Spotted by Werner
1027 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001028
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001029 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1030 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001031
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001032 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1033 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001034
Werner Lembergc4c35b72006-08-27 08:03:46 +000010352006-08-27 Werner Lemberg <wl@gnu.org>
1036
1037 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1038 Reported by Jens.
1039
Jens Claudius088e44e2006-08-22 14:24:30 +000010402006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001041
Jens Claudius088e44e2006-08-22 14:24:30 +00001042 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001043 about addresses of volatile objects passed as function arguments as
1044 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001045
Werner Lembergc4c35b72006-08-27 08:03:46 +00001046 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1047 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001048
1049 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1050 argument `table' a pointer to a volatile object.
1051
1052 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1053 argument `table' a pointer to a volatile object.
1054
Jens Claudius2652bd52006-08-18 17:20:37 +000010552006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1056
1057 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1058 variable `_sfnt' as volatile since it must keep its value across
1059 a call to ft_setjmp.
1060 (gxv_validate): Same for local variables `memory' and `valid'.
1061 (classic_kern_validate): Same for local variables `memory',
1062 `ckern', and `valid'.
1063
1064 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1065 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1066 `jstf', and 'valid'.
1067
1068 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1069 local variable `cmap'.
1070
David Turner9fbfc6a2006-08-16 09:11:31 +000010712006-08-16 David Turner <david@freetype.org>
1072
Werner Lemberg12342992006-08-19 11:18:09 +00001073 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1074 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001075
Werner Lemberg12342992006-08-19 11:18:09 +00001076 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1077 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001078
David Turner33f5f242006-08-16 16:50:55 +00001079
Werner Lemberg12342992006-08-19 11:18:09 +00001080 Improvements to native TrueType hinting. This is a first try,
1081 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1082
1083 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1084 `extra_points2'.
1085
1086 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1087 `orus'.
1088
1089 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1090 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1091 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1092 handle `extra_points2'.
1093
1094 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1095 Remove compiler warning.
1096 (cur_to_arg): Remove macro.
1097 (TT_Hint_Glyph): Updated.
1098 (TT_Process_Simple_Glyph): Handle `orus'.
1099
1100 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1101 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1102 (LOC_Ins_IUP): Renamed to...
1103 (IUP_WorkerRec): This.
1104 Add `orus' member.
1105 (Shift): Renamed to...
1106 (_iup_worker_shift): This.
1107 Updated.
1108 (Interp): Renamed to...
1109 (_iup_worker_interpolate): This.
1110 Updated to handle `orus'.
1111 (Ins_IUP): Updated.
1112
1113 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1114 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001115
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000011162006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1117
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001118 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001119 build ftvalid in ft2demos. This has been inadvertedly changed
1120 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001121
11222006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1123
Werner Lemberg12342992006-08-19 11:18:09 +00001124 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1125 Jens:
1126 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001127
Werner Lemberg12342992006-08-19 11:18:09 +00001128 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1129 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001130
1131 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1132
Jens Claudius9950adc2006-08-13 12:14:36 +000011332006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1134
Werner Lemberg12342992006-08-19 11:18:09 +00001135 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1136 T1_TOKEN_TYPE_KEY.
1137 (T1_FieldRec): Add `dict'.
1138 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1139 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1140 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001141
Werner Lemberg12342992006-08-19 11:18:09 +00001142 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1143 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001144
1145 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1146
1147 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001148 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1149 not T1_TOKEN_TYPE_ANY.
1150 (ps_parser_load_field): Make sure a token that should be a string or
1151 name is really a string or name.
1152 Avoid memory leak if a keyword has been already encountered and its
1153 value is overwritten.
1154 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1155 T1_FIELD_XXX.
1156 (parse_dict): Ignore keywords that occur in the wrong dictionary
1157 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001158
Werner Lemberg12342992006-08-19 11:18:09 +00001159 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1160 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001161
Werner Lemberg12342992006-08-19 11:18:09 +00001162 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1163 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001164
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000011652006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1166
1167 Move creation of field `buildchar' of T1_DecoderRec out of
1168 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1169 of it.
1170
1171 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1172 and `T1_Compute_Max_Advance'.
1173
1174 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1175 Remove field `face', add `len_buildchar'.
1176
1177 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1178 field `buildchar'.
1179
1180 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1181 finisher for T1_Decoder.
1182 (cid_slot_load_glyph): Do not ignore failure when initializing the
1183 T1_Decoder.
1184
1185 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1186 Updated.
1187 (t1_decoder_init): Remove initialization of fields `buildchar' and
1188 `len_buildchar'.
1189 (t1_decoder_done): Remove deallocation of field `buildchar'.
1190
1191 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1192 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1193 T1_Decoder.
1194 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1195 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1196 case of error.
1197
1198 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1199 `buildchar' of T1_FaceRec.
1200
1201 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1202 `buildchar' of T1_FaceRec.
1203
Werner Lemberg1a380e02006-07-14 18:28:08 +000012042006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1205
1206 * freetype2/include/freetype/internal/psaux.h: New macros
1207 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1208 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1209 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1210 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1211 (T1_DecoderRec): New fields `buildchar' and `face'.
1212 (IS_PS_TOKEN): New macro.
1213
1214 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1215 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1216
1217 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1218 `default_design_vector' and `num_default_design_vector'.
1219
1220 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1221 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1222 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1223
1224 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1225 `token' argument to be NULL if we want only to count the number of
1226 tokens.
1227 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1228 want to skip the array.
1229 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1230 want to skip the array.
1231
1232 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1233 support for (partially commented out) othersubrs 19-25, 27, and 28.
1234 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1235 (t1_decoder_done): Release new field `buildchar'.
1236
1237 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1238 functions.
1239 (t1_keywords): Register them.
1240 (t1_allocate_blend): Updated.
1241 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1242 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1243 (parse_dict): Remove `keyword_flags' argument.
1244 Use new macro IS_PS_TOKEN.
1245 Changed function so that later PostScript definitions override
1246 earlier ones.
1247 (t1_init_loader): Initialize new field `keywords_encountered'.
1248 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1249 `len_buildchar'.
1250 Remove `keywords_flags'.
1251
1252 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1253 `keywords_encountered'.
1254 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1255
1256 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1257 New entries for parsing /NDV, /CDV, and /DesignVector.
1258
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000012592006-07-07 Werner Lemberg <wl@gnu.org>
1260
1261 Add many checks to protect against malformed PCF files.
1262
1263 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1264 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1265
1266 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1267 data and check that tables don't overlap (using a simple
1268 bubblesort).
1269 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1270 New macros which give the size of data structures in the data
1271 stream.
1272 (pcf_get_properties): Use rough estimates to get array size limits.
1273 Assign `face->nprops' and `face->properties' earlier so that a call
1274 to PCF_Face_Done can do the clean-up in case of error.
1275 Protect against invalid string offsets.
1276 (pcf_get_metrics): Clean up code.
1277 Adjust tracing message levels.
1278 Use rough estimate to get array size limit.
1279 (pcf_get_bitmaps): Clean up code.
1280 Adjust tracing message levels.
1281 Use rough estimates to get offset limits.
1282 (pcf_get_encodings): Adjust tracing message level.
1283 (pcf_get_accel): Clean up code.
1284
Werner Lemberg8eb05252006-06-27 06:20:01 +000012852006-06-26 Werner Lemberg <wl@gnu.org>
1286
1287 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1288 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1289
Werner Lemberg24703f82006-06-26 19:12:51 +000012902006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1291
1292 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1293 (t1_decoder_parse_charstrings): Operator with
1294 opcode 15 pops its two arguments.
1295 Handle the case where the pops of an othersubr may be part of a
1296 subroutine.
1297 Handle unknown othersubrs gracefully: count their operands and let
1298 the following pop operators push the operands as the results onto
1299 the Type1 stack.
1300 Improve handling of setcurrentpoint opcode.
1301
Werner Lembergc011f4c2006-06-26 09:40:00 +000013022006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1303
1304 The Type 1 parser now skips over top-level procedures as required
1305 for a `Simplified Parser'. This makes the parser more robust as it
1306 doesn't poke around in PostScript code. Additionally, it makes the
1307 FontDirectory hackery in src/type1/t1load.c unnecessary.
1308
1309 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1310 (skip_literal_string): Add FT_Error as return value.
1311 Handle escapes better.
1312 (skip_string): Add FT_Error as return value.
1313 Don't set `parser->error' but return error code directly.
1314 (skip_procedure): New function.
1315 (ps_parser_skip_PS_token): Handle procedures.
1316 Update code.
1317 (ps_parser_to_token): Update code.
1318 (ps_parser_load_field_table): Handle bbox entries also.
1319
1320 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1321 Add commented-out code for synthetic fonts.
1322
Werner Lemberga2da05c2006-06-25 06:27:27 +000013232006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1324
1325 Fix two hinting bugs as reported in
1326 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1327
1328 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1329 `first_point' member.
1330
1331 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1332 `first_point'.
1333 (TT_Process_Composite_Glyph): Always untouch points.
1334
1335 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1336 `first_point' and `last_point' in case of composite glyphs.
1337 (Ins_IUP): Fix computation of `end_point'.
1338
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000013392006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1340
Werner Lembergef3d2c22006-06-25 06:07:14 +00001341 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1342 Mac. The original patch was written by David Sachitano and Lawrence
1343 Coopet, and modified by Sean McBride for MPW compatibility. Only
1344 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001345
Werner Lembergef3d2c22006-06-25 06:07:14 +00001346 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1347 Mac OS X platforms.
1348 (OS_INLINE): Undefine before definition.
1349 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1350 FontAssociation table in FOND resource.
1351 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1352 and fontSize at each entry of FontAssociation table in FOND
1353 resource.
1354 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1355 ffStylOff of FamilyRecord header of FOND resource, the header,
1356 fontSize, fontID at each entry of FontAssociation table, and
1357 StyleMapping table.
1358 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001359
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000013602006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1361
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001362 Public API of TrueTypeGX, OpenType, and classic kern table validator
1363 should return `FT_Err_Unimplemented_Feature' if validation service
1364 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001365 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001366 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1367
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001368 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1369 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1370 unavailable.
1371 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1372 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001373
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001374 * src/base/ftotval.c (FT_OpenType_Validate): Return
1375 FT_Err_Unimplemented_Feature if OpenType validation service is
1376 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001377
Werner Lembergb10e45a2006-06-08 07:32:56 +000013782006-06-08 Werner Lemberg <wl@gnu.org>
1379
1380 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1381 errors.
1382
David Turner5f1f7502006-06-07 05:11:50 +000013832006-06-07 David Turner <david@freetype.org>
1384
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001385 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1386 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1387 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001388
David Turner457b4a82006-06-06 08:14:14 +000013892006-06-06 David Turner <david@freetype.org>
1390
Werner Lemberg4836f952006-06-06 12:54:08 +00001391 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001392
Werner Lemberg4836f952006-06-06 12:54:08 +00001393 We change `ps_unicodes_init' so that it also takes a
1394 `free_glyph_name' callback to release the glyph names returned by
1395 `get_glyph_name'
1396
1397 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1398 Renamed to ...
1399 (PS_GetGlyphNameFunc): This.
1400 (PS_FreeGlyphNameFunc): New typedef.
1401 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1402
1403 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1404 argument.
1405 (cff_sid_free_glyph_name): New function.
1406 (cff_cmap_unicode_init): Updated.
1407
1408 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1409
1410 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1411 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001412
1413
David Turner09717352006-06-04 14:33:08 +000014142006-06-04 David Turner <david@freetype.org>
1415
Werner Lembergd724f202006-06-04 15:17:41 +00001416 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1417 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001418 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001419
Werner Lembergd724f202006-06-04 15:17:41 +00001420 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1421 of `face->num_glyphs' which missed the last glyph, due to
1422 the offset-by-1 computation, since the PFR format doesn't
1423 guarantee that glyph index 0 corresponds to the `missing
1424 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001425
Werner Lemberg33779662006-05-26 06:30:05 +000014262006-05-25 Werner Lemberg <wl@gnu.org>
1427
1428 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1429 `-no-undefined'. Reported by Christian Biesinger.
1430
Werner Lemberg24773d62006-05-20 08:53:13 +000014312006-05-19 Brian Weed <bw@imaginengine.com>
1432
1433 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1434 have debug information, and debug libraries use `C7 compatible'
1435 debug info.
1436
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000014372006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1438
Werner Lemberga6523a62006-05-20 08:47:01 +00001439 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001440 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001441
Werner Lemberga6523a62006-05-20 08:47:01 +00001442 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1443 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001444
1445 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001446 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001447
14482006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1449
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001450 * build/unix/configure.raw: Add a fallback to disable Carbon
1451 dependency, if configured with no options on Mac OS X.
1452
14532006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1454
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001455 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001456 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001457 the second part of Savannah bug #16590.
1458
Werner Lemberg545c4e52006-05-17 22:55:04 +000014592006-05-18 Werner Lemberg <wl@gnu.org>
1460
1461 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1462 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1463
David Turnerdc3ff312006-05-17 12:59:35 +000014642006-05-17 David Turner <david@freetype.org>
1465
Werner Lemberg545c4e52006-05-17 22:55:04 +00001466 This is a major patch used to drastically improve the performance of
1467 loading glyphs. This both speeds up loading the glyph vectors
1468 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001469
Werner Lemberg545c4e52006-05-17 22:55:04 +00001470 We now use inline assembler code with GCC to implement `FT_MulFix',
1471 which is probably the most important function related to the
1472 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001473
Werner Lemberg545c4e52006-05-17 22:55:04 +00001474 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001475
1476
Werner Lemberg545c4e52006-05-17 22:55:04 +00001477 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1478 `cursor' and `limit'.
1479
1480 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1481 New functions.
1482 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1483 [TEST]: Remove.
1484
1485 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1486 code.
1487
1488 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1489 `FT_ZERO'
1490 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1491 (af_glyph_hints_reload: Rewrite recognition of weak points.
1492
1493 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1494 constant values out of the loops.
1495
1496 * src/autofit/aftypes.h: Updated.
1497
1498 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1499
1500 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1501 product to get orientation.
1502
1503 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1504 (FT_Stream_OpenGzip): Use it to handle small files directly in
1505 memory.
1506
1507 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1508 Improve performance.
1509
1510 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1511 `limit'.
1512
1513 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1514 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1515 exceedingly large values of number of contours. Speed up by
1516 reducing the number of loops.
1517
1518 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1519
1520
1521 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1522 used to detect rogue clients from 4 to 16. This is to prevent some
1523 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1524 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001525
Werner Lembergde2d90a2006-05-17 08:54:30 +000015262007-05-17 Werner Lemberg <wl@gnu.org>
1527
1528 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001529 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001530
15312006-05-16 Werner Lemberg <wl@gnu.org>
1532
1533 * docs/PROBLEMS: Updated icl issues.
1534
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001535----------------------------------------------------------------------------
1536
Werner Lemberg42b63b22007-01-21 21:01:33 +00001537Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001538David Turner, Robert Wilhelm, and Werner Lemberg.
1539
1540This file is part of the FreeType project, and may only be used, modified,
1541and distributed under the terms of the FreeType project license,
1542LICENSE.TXT. By continuing to use, modify, or distribute this file you
1543indicate that you have read the license and understand and accept it
1544fully.
1545
1546
1547Local Variables:
1548version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001549coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001550End: