blob: 415bc8ac6c81ba8b7e20a6162a917ae2984ffcc5 [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00003 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
4 "--with-fsspec" etc. Replace #include "ftmac.c" by
5 #include <ftmac.c>.
6
72007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
8
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +00009 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
10 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
11 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
12 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
13 FT_GetFilePath_From_Mac_ATS_Name.
14 * builds/mac/ftmac.c: Ditto.
15
162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
17
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +000018 * include/freetype/ftmac.h: Fixed wrong comment, FSSpec of
19 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
20 for passing to FT_New_Face_From_FSSpec.
21
222007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
23
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000024 * builds/unix/configure.raw: Checks if Mac OS X system headers
25 can be built under ANSI C mode.
26 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by ANSI C
27 compatible one, if system headers are ANSI C incompatible.
28 * builds/mac/ftmac.c (OS_INLINE): Ditto.
29
Werner Lemberg313d7772007-02-01 08:10:45 +0000302007-02-01 Werner Lemberg <wl@gnu.org>
31
32 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
33 Explain why applications shouldn't use it. Found by Alexei.
34
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000352007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +000036
37 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
38 message.
39
40 * src/gxvalid/gxvmort1.c
41 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
42 message.
43
Werner Lemberg53935932007-01-31 08:53:02 +0000442007-01-31 Werner Lemberg <wl@gnu.org>
45
46
47 * Version 2.3.1 released.
48 =========================
49
50
51 Tag sources with `VER-2-3-1-FINAL'.
52
53 * builds/win32/visualc/freetype.dsp,
54 builds/win32/visualc/freetype.vcproj: s/230/231/.
55 * builds/win32/visualc/index.html: s/221/231/.
56
57 * vms_make.com: Add `ftgasp'.
58
David Turnera7ee6082007-01-30 10:33:53 +0000592007-01-30 David Turner <david@freetype.org>
60
Werner Lemberg53935932007-01-31 08:53:02 +000061 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +000062
Werner Lemberg53935932007-01-31 08:53:02 +000063 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +000064
Werner Lemberg53935932007-01-31 08:53:02 +000065 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
66 s/2.3.0/2.3.1/.
67
68 * builds/unix/configure.raw (version_info): Set to 9:12:3.
69
70
71 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
72 (af_loader_load_g): Disable the warper (i.e., the light hinting
73 improvements) to make a 2.3.1 bugfix release before introducing a
74 new feature. This should give us more time to tune and improve the
75 warper for the next release.
76
77 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +000078
David Turnerd91eebd2007-01-26 15:05:41 +0000792007-01-25 David Turner <david@freetype.org>
80
Werner Lembergbf241762007-01-26 16:08:49 +000081 For light auto-hinting, improve glyph advance widths and resurrect
82 normal/full hinting to its normal quality.
83
84 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
85 and `xmax_delta'.
86 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
87 and `xmax_delta'.
88
89 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
90 preprocessor conditional with if-clause, handling both light and
91 normal mode.
92
93 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
94 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +000095
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000962007-01-25 Werner Lemberg <wl@gnu.org>
97
98 * docs/release: Updated -- Savannah uses a new uploading scheme.
99
David Turnera42567b2007-01-25 12:23:37 +00001002007-01-25 David Turner <david@freetype.org>
101
Werner Lembergd7855662007-01-25 13:53:56 +0000102 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000103
Werner Lembergd7855662007-01-25 13:53:56 +0000104 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
105 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
106 functions.
David Turnera42567b2007-01-25 12:23:37 +0000107
Werner Lembergd7855662007-01-25 13:53:56 +0000108 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000109
Werner Lembergb1be9e82007-01-25 11:50:00 +00001102007-01-25 Werner Lemberg <wl@gnu.org>
111
112 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000113 correctly in a sanity check. Since this function is only used to
114 load local and global functions, any charstring that called the last
115 local/global function would fail otherwise. This fixes Savannah bug
116 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000117
118 * docs/CHANGES: Document it.
119
David Turnerb6de8d12007-01-23 15:51:50 +00001202007-01-23 David Turner <david@freetype.org>
121
Werner Lembergb1be9e82007-01-25 11:50:00 +0000122 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
123 prevented compilation when disabling both the unpatented and the
124 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000125
Werner Lembergb1be9e82007-01-25 11:50:00 +0000126
127 Fix and enable the warper to improve `light' hinting mode. This is
128 not necessarily a final version, but it seems to work well.
129
130 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
131 Disable code.
132 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
133 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
134
135 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
136 (af_warper_compute_line_best): Fix array size of `scores'.
137 (af_warper_compute): Better handling of border cases.
138 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
139 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000140
Werner Lemberg011d1112007-01-21 09:36:00 +00001412007-01-21 Werner Lemberg <wl@gnu.org>
142
Werner Lemberg42b63b22007-01-21 21:01:33 +0000143 * ChangeLog: Split off older entries into...
144 * ChangeLog.22: This new file.
145
1462007-01-21 Werner Lemberg <wl@gnu.org>
147
Werner Lemberg555258f2007-01-21 09:46:37 +0000148 * docs/CHANGES: Document SHZ fix.
149
1502007-01-21 George Williams <gww@silcom.com>
151
152 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
153 points.
154
1552007-01-21 Werner Lemberg <wl@gnu.org>
156
Werner Lemberg011d1112007-01-21 09:36:00 +0000157 * src/sfnt/ttmtx.c (tt_face_get_metrics)
158 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
159
Werner Lemberg87a5a432007-01-17 12:44:39 +00001602007-01-17 Werner Lemberg <wl@gnu.org>
161
Werner Lembergb8003292007-01-17 12:56:25 +0000162
163 * Version 2.3.0 released.
164 =========================
165
166
167 Tag sources with `VER-2-3-0-FINAL'.
168
1692007-01-17 Werner Lemberg <wl@gnu.org>
170
Werner Lemberg87a5a432007-01-17 12:44:39 +0000171 * docs/release: Updated.
172
David Turner22122722007-01-16 20:06:44 +00001732007-01-16 David Turner <david@freetype.org>
174
Werner Lemberg87a5a432007-01-17 12:44:39 +0000175 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
176 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
177 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
178 warnings.
David Turner22122722007-01-16 20:06:44 +0000179
Werner Lemberg267e1d72007-01-15 07:48:09 +00001802007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
181
182 * builds/amiga/makefile, builds/amiga/makefile.os4,
183 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
184
185 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
186
Werner Lemberg8c4120d2007-01-15 06:42:40 +00001872007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
188
189 Fix various compiler warnings.
190
191 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
192 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
193 s/index/strike_index/.
194 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
195
196 * src/gxvalid/gxvmorx5.c
197 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
198
199 * src/truetype/ttinterp.c (Compute_Point_Displacement),
200 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
201 uninitialized variables.
202
Werner Lemberg6164a9d2007-01-13 23:01:36 +00002032007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
204
205 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
206
Werner Lemberg281c1482007-01-13 22:50:51 +00002072007-01-13 Werner Lemberg <wl@gnu.org>
208
209 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
210 versions up to 0x3FF without complaining.
211
Werner Lembergac250b22007-01-13 14:01:36 +00002122007-01-13 Derek Clegg <dclegg@apple.com>
213
214 Add FT_Get_PS_Font_Info interface to CFF driver.
215
216 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
217 (CFF_FontRec): Add `font_info' field.
218
219 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
220 (cff_font_done): Free font->font_info if necessary.
221
222 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
223 (cff_service_ps_info): Register cff_ps_get_font_info.
224
Werner Lemberg23df31a2007-01-13 08:45:00 +00002252007-01-13 Werner Lemberg <wl@gnu.org>
226
227 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
228 with C++ compiler.
229
230 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
231 af_glyph_hints_dump_edges): Ditto.
232
233 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
234 `modules.cfg').
235
236 * src/sfnt/ttsbit0.h: Remove.
237
238 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
239
Werner Lemberg27cf9de2007-01-13 07:34:23 +00002402007-01-12 David Turner <david@freetype.org>
241
242 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
243 bug in the bitmap emboldener if the pitch of the source bitmap is
244 much larger than its width.
245
246 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
247 compilation warning.
248
Werner Lemberg6d96d312007-01-12 10:30:19 +00002492007-01-12 Werner Lemberg <wl@gnu.org>
250
251 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
252 `automake' CVS module from sources.redhat.com.
253
Werner Lemberg17432b52007-01-12 09:28:44 +00002542007-01-11 Werner Lemberg <wl@gnu.org>
255
256 * src/type1/t1load.c (is_space): Removed.
257 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
258 (parse_charstrings): Use IS_PS_TOKEN.
259
260
261 * autogen.sh: Avoid bash specific syntax.
262
David Turner038ace22007-01-11 15:00:59 +00002632007-01-11 David Turner <david@freetype.org>
264
Werner Lemberg17432b52007-01-12 09:28:44 +0000265 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000266
Werner Lemberg17432b52007-01-12 09:28:44 +0000267 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000268
Werner Lemberg17432b52007-01-12 09:28:44 +0000269 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
270 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000271 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000272
Werner Lemberg17432b52007-01-12 09:28:44 +0000273 * autogen.sh: Small fix to get it working on Mac OS X properly:
274 The issue is that GNU libtool is called `glibtool' on this platform,
275 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000276
David Turner2628ea92007-01-10 13:15:56 +00002772007-01-10 David Turner <david@freetype.org>
278
Werner Lemberg17432b52007-01-12 09:28:44 +0000279 * all-sources: Tag all sources with VER-2-3-0-RC1 and
280 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000281
Werner Lemberg17432b52007-01-12 09:28:44 +0000282 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
283 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
284 version number to 2.3.0.
285
286 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
287 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000288
289 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000290 include/freetype/ftlcdfil.h: Update reference documentation with
291 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000292
Werner Lemberg17432b52007-01-12 09:28:44 +0000293 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
294 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000295
Werner Lembergbf02d392007-01-10 07:07:37 +00002962007-01-10 Derek Clegg <dclegg@apple.com>
297
298 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
299 values.
300
David Turnerf48b60e2007-01-08 15:15:32 +00003012007-01-08 David Turner <david@freetype.org>
302
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000303 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000304
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000305 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
306 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000307 corresponding to a given character pixel size.
308
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000309 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
310 `gasp' table, in order to avoid potential problems with later
311 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000312
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000313 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
314 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000315
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000316 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
317 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
318 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
319 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000320
Werner Lemberge6b6f372007-01-07 00:06:47 +00003212007-01-07 Werner Lemberg <wl@gnu.org>
322
Werner Lembergb8004d22007-01-07 09:13:38 +0000323 * src/cid/cidparse.c (cid_parser_new): Improve error message for
324 Type 11 fonts.
325 Scan for `/sfnts' token.
326
3272007-01-07 Werner Lemberg <wl@gnu.org>
328
329 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000330
Werner Lembergbe5f7972007-01-06 07:51:48 +00003312007-01-06 Werner Lemberg <wl@gnu.org>
332
333 * src/cff/cffload.c (cff_index_init): Remove unused variable.
334 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
335
David Turnera8cf42b2007-01-04 16:46:46 +00003362007-01-04 David Turner <david@freetype.org>
337
Werner Lembergf6294392007-01-06 07:47:45 +0000338 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
339 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000340
Werner Lembergf6294392007-01-06 07:47:45 +0000341
342 Do not allocate interpreter-specific tables in memory if we are not
343 going to load glyphs with the bytecode interpreter anyway.
344
345 * src/truetype/ttgload.c (tt_loader_init): Load execution context
346 only if glyph is hinted.
347 Updated.
348 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
349 and `cvs_ready'.
350 Add `tt_size_ready_bytecode' declaration.
351 * src/truetype/ttobjs.c (tt_size_done_bytecode,
352 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
353 (tt_size_init): Move most code into `tt_size_init_bytecode'.
354 (tt_size_done): Move most code into `tt_size_done_bytecode'.
355 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000356
David Turner91a34022007-01-05 14:47:08 +0000357
Werner Lembergf6294392007-01-06 07:47:45 +0000358 Don't extract the metrics table from the SFNT font file. Instead,
359 reparse it on each glyph load. The runtime difference is not
360 noticeable, and it can save a lot of heap memory when memory-mapped
361 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000362
Werner Lembergf6294392007-01-06 07:47:45 +0000363 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
364 `horz_metrics_offset' and `vert_metrics_ofset'.
365 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
366 Updated.
367
368
369 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
370
371
372 Do not load the CFF index offsets into memory, since this wastes a
373 *lot* of heap memory with large Asian CFF fonts. There is no
374 significant performance loss.
375
376 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
377 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
378 `data_size'.
379 (CFF_CharsetRec): Add field `num_glyphs'.
380
381 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
382 cff_charset_cid_to_gindex): New functions.
383 (cff_new_index): Renamed to...
384 (cff_index_init): This. Update all callers.
385 Updated -- some code has been moved to `cff_index_load_offsets'.
386 (cff_done_index): Renamed to...
387 (cff_index_done): This. Update all callers.
388 (cff_index_get_pointers, cff_index_access_element): Updated to use
389 stream offsets.
390 (cff_charset_compute_cids): Set `num_glyphs' field.
391 (cff_encoding_load): Updated.
392
393 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000394
3952007-01-04 David Turner <david@freetype.org>
396
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000397 * docs/INSTALL.UNIX: Simplify some parts, add reference to
398 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000399
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000400 * README.CVS: Add common problem description and solution
401 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000402
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000403 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000404
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000405 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000406
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000407 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000408
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000409 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
410 (TWorker): This.
411 Remove `count_table' and `memory'.
412 Make `grays' a pointer.
413 (TRaster): New structure.
414 (count_table): New static array.
415 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
416 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
417 ft_black_set_mode, ft_black_render): Updated.
418 (ft_black_init): Don't initialize `count_table'.
419 (ft_black_reset): Use the render pool. This saves about 6KB of
420 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000421
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000422 * src/smooth/ftgrays.c (TRaster): Replaced with...
423 (TWorker): This.
424 Remove `memory'.
425 (TRaster): New structure.
426
427 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
428 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
429 gray_render_span, gray_raster_render): Updated.
430 (gray_raster_reset): Use the render pool. This saves about 6KB of
431 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000432
David Turner8a6c44e2007-01-04 17:03:11 +0000433 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
434 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000435 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
436 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
437 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000438
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000439 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
440 Remove a typo that results in no hinting and a memory leak with some
441 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000442
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000443 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000444 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000445 CFF_Faces in it. We need to close all faces before destroying the
446 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000447
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00004482007-01-02 Werner Lemberg <wl@gnu.org>
449
450 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
451 Remove compiler warning.
452
David Turner9207e002007-01-02 16:58:13 +00004532007-01-02 David Turner <david@freetype.org>
454
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000455 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000456
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00004572006-12-31 Masatake YAMATO <jet@gyve.org>
458
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000459 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
460 function.
461 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000462 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000463 `gxv_kern_subtable_fmt0_pairs_validate'.
464
David Turner115b4422006-12-22 11:37:05 +00004652006-12-22 David Turner <david@freetype.org>
466
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000467 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
468 warnings.
David Turner115b4422006-12-22 11:37:05 +0000469
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000470 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
471 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000472
Werner Lemberg4755bf72006-12-16 08:58:44 +00004732006-12-16 Anders Kaseorg <anders@kaseorg.com>
474
475 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
476 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
477
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00004782006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
479
Werner Lemberg9b774e22007-01-16 06:11:27 +0000480 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000481 sync with the modification by Jens Claudius on 2006-08-22; cf.
482 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 +0000483
4842006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
485
486 * src/base/ftmac.c: Specialized for Mac OS X only.
487 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
488 * builds/unix/configure.raw: Ditto. When explicit switches for
489 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
490 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
491
4922006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
493
494 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
495 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
496 instead of src/base/ftmac.c
497 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
498 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
499 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
500 that cannot be built at present.
501
5022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
503
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000504 * src/base/ftobjs.c: Improvement of resource fork handler for
505 POSIX, cf.
506 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000507 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
508 format or .dfont, to simulate the face index number counted by ftmac.c.
509 (IsMacResource): Return the number of scalable faces correctly.
510
Werner Lembergec5b4502006-12-10 07:51:38 +00005112006-12-10 Werner Lemberg <wl@gnu.org>
512
513 * builds/toplevel.mk (version): Protect against `distclean' target.
514
Werner Lembergb26b3142006-12-09 20:01:43 +00005152006-12-09 Werner Lemberg <wl@gnu.org>
516
517 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
518 or `type'.
519
520 * builds/freetype.mk (version): Extracted from freetype.h, using
521 GNU make's built-in string functions.
522 (refdoc): Use $(version) instead of static version number.
523
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00005242006-12-08 Werner Lemberg <wl@gnu.org>
525
526 * builds/toplevel.mk (dist): Extract version number from freetype.h.
527
Werner Lemberg15c29502006-12-09 07:29:54 +00005282006-12-08 Vladimir Volovich <vvv@vsu.ru>
529
530 * src/tools/apinames (State): Remove final comma in structure -- xlc
531 v5 under AIX 4.3 doesn't like this.
532
David Turnerdbf3b432006-12-07 21:18:09 +00005332006-12-07 David Turner <david@freetype.org>
534
Werner Lemberg256a3512006-12-08 06:49:33 +0000535 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
536 to the spacing of auto-fitted glyphs. This only impacts rare
537 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000538
Werner Lemberg11171312006-12-03 09:43:40 +00005392006-12-03 Werner Lemberg <wl@gnu.org>
540
541 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
542
Werner Lemberg960ba592006-12-01 08:20:47 +00005432006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000544
Werner Lemberg960ba592006-12-01 08:20:47 +0000545 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
546 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
547 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000548
David Turner80658e52006-11-28 08:09:20 +0000549
Werner Lemberg960ba592006-12-01 08:20:47 +0000550 * include/freetype/ftxf86.h: Fix and extend comment so that it
551 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000552
Werner Lemberg960ba592006-12-01 08:20:47 +0000553 * include/freetype/ftchapters.h: Add `font_format' section.
554
555
556 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
557 to TOC in index page.
558
5592006-11-28 David Turner <david@freetype.org>
560
561 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
562 trying to render into a zero-width/height bitmap, not an error code.
563
564 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
565
566 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
567 ones instead.
568
569 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
570 variable.
David Turner80658e52006-11-28 08:09:20 +0000571
Werner Lemberg8636c292006-11-26 22:28:13 +00005722006-11-26 Pierre Hanser <hanser@club-internet.fr>
573
574 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
575
Werner Lemberg960ba592006-12-01 08:20:47 +00005762006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000577
Werner Lemberg960ba592006-12-01 08:20:47 +0000578 * src/autofit/afhints.c (af_glyph_hints_dump_points,
579 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
580 Add stubs to link the `ftgrid' test program when debugging is
581 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000582
Werner Lemberg960ba592006-12-01 08:20:47 +00005832006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000584
585 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000586 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
587
588 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
589 Emit more sensible information.
590
591 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
592
593 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
594 rounding of blue values.
595 (af_latin_hints_compute_segments): Hint segment heights.
596 (af_latin_hints_link_segments): Reduce `len_score' value.
597 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
598 value and use `height' member for comparisons.
599 (af_latin_hint_edges): Extend logging message.
600 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000601
Werner Lemberg91959bf2006-11-22 10:36:55 +00006022006-11-22 Werner Lemberg <wl@gnu.org>
603
604 Fix Savannah bug #15553.
605
606 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
607 program after a change from mono to grayscaling (and vice versa).
608 Use correct constant for comparison to get `exec->grayscale'.
609
Werner Lemberg913a3652006-11-19 09:19:17 +00006102006-11-18 Werner Lemberg <wl@gnu.org>
611
612 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000613 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000614 This patch fixes Savannah bug #18301.
615
616 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
617 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
618 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
619 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
620 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
621 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
622 (FNT_Load_Glyph): Check validity of `glyph_index'.
623
David Turner7bab6ae2006-11-13 11:25:06 +00006242006-11-13 David Turner <david@freetype.org>
625
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000626 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
627 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000628
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000629 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
630 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
631 when building the library to change the default LCD filter to be
632 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000633
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000634 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000635
David Turner8765c712006-11-10 16:49:42 +00006362006-11-10 David Turner <david@freetype.org>
637
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000638 * src/smooth/ftsmooth.c: API change for the LCD
639 filter. The FT_LcdFilter value is an enumeration describing which
640 filter to apply, with new values FT_LCD_FILTER_LIGHT and
641 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
642 algorithm which produces strong color fringes for everything
643 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000644
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000645 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
646 second parameter to an enum type.
647
648 * src/base/ftlcdfil.c (USE_LEGACY): Define.
649 (_ft_lcd_filter): Rename to...
650 (_ft_lcd_filter_fir): This.
651 Update parameters.
652 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
653 (FT_Library_Set_LcdFilter): Update parameters.
654 Handle new filter modes.
655
656 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
657 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
658 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
659 callback and update other fields.
660
661 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
662 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
663 Other minor improvements.
664
665 * src/autofit/aflatin.c: Various tiny improvements that drastically
666 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
667 (af_latin_hints_compute_edges): Fix typo.
668 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000669
David Turner4e9cc3c2006-11-09 16:31:52 +00006702006-11-09 David Turner <david@freetype.org>
671
Werner Lemberg49c77a82006-11-09 21:51:57 +0000672 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
673 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000674
Werner Lemberg5e430892006-11-07 09:35:03 +00006752006-11-07 Zhe Su <james.su@gmail.com>
676
677 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
678 also.
679
Werner Lemberg111b5ae2006-11-03 09:40:12 +00006802006-11-03 Werner Lemberg <wl@gnu.org>
681
682 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
683
David Turner40604742006-11-02 16:37:35 +00006842006-11-02 David Turner <david@freetype.org>
685
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000686 Add a few tweaks to better handle serif fonts.
687 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000688
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000689 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
690 segments that are less than 1.5 pixels high. This gets rid of
691 *many* corner cases with serifs.
692 (af_latin_align_linked_edge): Add logging message.
693 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
694 Add logging messages.
695 Handle AF_EDGE_FLAG flag specially.
696
697 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
698 _af_debug_disable_blue_hints, and _af_debug_hints variables.
699
700 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
701 Update external declarations.
702 (af_corner_orientation, af_corner_is_flat): Replaced by...
703
704 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
705 ft_corner_is_flat): These declarations.
706
707 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
708 Comment out. Replaced by...
709
710 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
711 These functions. Update all callers.
712 (FT_Add64) [!FT_LONG64]: Simplify.
713
714 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
715 (af_direction_compute): Add a missing FT_ABS call. This bug caused
716 production of garbage by missing lots of segments.
717
718 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
719
720 * src/autofit/afloader.c (af_loader_init, af_loader_done)
721 [AF_DEBUG]: Set _af_debug_hints.
722
723
724 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
725 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
726 and ft_corner_orientation.
727
728
729 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000730
Werner Lemberge88c5262006-10-24 05:46:26 +00007312006-10-24 Werner Lemberg <wl@gnu.org>
732
733 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
734
735 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
736 as argument.
737
David Turnera1861392006-10-23 16:00:59 +00007382006-10-23 Zhe Su <zsu@novell.com>
739
Werner Lemberg715e96e2006-10-24 05:28:45 +0000740 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
741 better deal with broken Asian fonts with strange glyphs, having
742 self-intersections and other peculiarities. The used algorithm is
743 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000744
David Turnere140f142006-10-23 08:56:57 +00007452006-10-23 David Turner <david@freetype.org>
746
Werner Lemberg715e96e2006-10-24 05:28:45 +0000747 Speed up the CFF font loader. With some large CFF fonts,
748 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000749
Werner Lemberg715e96e2006-10-24 05:28:45 +0000750 * src/cff/cffload.c (cff_get_offset): Removed.
751 (cff_new_index): Inline functionality of `cff_get_offset'.
752 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
753 (cff_charset_done): Call `cff_charset_free_cids'.
754 (cff_charset_load): Call `cff_charset_compute_cids'.
755 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
756
757 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
758 with FT_NEXT_XXX.
759
760
761 Speed up the Postscript hinter, with more than 100% speed increase
762 on my machine.
763
764 * src/pshinter/pshalgo.c (psh_corner_is_flat,
765 psh_corner_orientation): New functions.
766 (psh_glyph_compute_inflections): Merge loops for efficiency.
767 Use `psh_corner_orientation'.
768 (psh_glyph_init): Use `psh_corner_is_flat'.
769 (psh_hint_table_find_strong_point): Renamed to...
770 (psh_hint_table_find_strong_points): This.
771 Rewrite, adding argument to handle all points at once.
772 Update all callers.
773 (PSH_MAX_STRONG_INTERNAL): New macro.
774 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000775
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00007762006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
777
778 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000779 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000780
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00007812006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
782
783 * docs/INSTALL.CROSS: New document file for cross-building.
784
785 * builds/unix/configure.raw: Preliminary cross-building support.
786 Find native C compiler and pass it by CC_BUILD, and
787 find suffix for native executable and pass it by EXEEXT_BUILD.
788 Also suffix for target executable is passed by EXEEXT.
789
Werner Lembergb9e6d692006-10-15 08:58:40 +0000790 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
791 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000792 CC_BUILD and EXEEXT_BUILD.
793
Werner Lembergb9e6d692006-10-15 08:58:40 +0000794 * builds/exports.mk (APINAMES_EXE): Change the extension for
795 apinames from the suffix for target (E) to that for building host
796 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000797
Werner Lemberg82a07e92006-10-12 06:20:44 +00007982006-10-12 Werner Lemberg <wl@gnu.org>
799
800 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
801 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
802 which reference those files.
803
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00008042006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
805
Werner Lembergb9e6d692006-10-15 08:58:40 +0000806 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
807 embedded in freetype2.pc and freetype-config. Use it to record
808 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000809
810 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
811
812 * builds/unix/freetype-config.in: Ditto.
813
Werner Lemberg28e17d92006-10-11 17:27:47 +00008142006-10-11 Werner Lemberg <wl@gnu.org>
815
816 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
817 development.
818
Jens Claudius336d2292006-10-03 08:53:37 +00008192006-10-03 Jens Claudius <jens.claudius@yahoo.com>
820
821 * include/freetype/config/ftstdlib.h: Cast away volatileness from
822 argument to ft_setjmp.
823
824 * include/freetype/internal/ftvalid.h: Add comment that
825 ft_validator_run must not be used.
826
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008272006-10-01 Werner Lemberg <wl@gnu.org>
828
829 * src/base/ftbase.c: Undo change from 2006-09-30.
830
831 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
832
8332006-09-30 David Turner <david@freetype.org>
834
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000835 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
836 s/unpatented_hinting/ignore_unpatented_hinter/.
837 Update all callers.
838
839 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
840 auto-hinting shall be used or not.
841
842 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000843
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008442006-09-30 Werner Lemberg <wl@gnu.org>
845
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000846 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
847 in use).
848
849 * src/base/ftbase.c: Include `ftlcdfil.c'.
850
Werner Lemberg9b15ea32006-09-29 18:22:11 +00008512006-09-29 Werner Lemberg <wl@gnu.org>
852
853 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
854 overlapping segments. Bug reported by Stefan Koch.
855
David Turnerad830712006-09-27 16:20:59 +00008562006-09-28 David Turner <david@freetype.org>
857
Werner Lemberg2c002e12006-09-29 21:31:53 +0000858 Fix a bug in the automatic unpatented hinting support which prevents
859 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000860
Werner Lemberg2c002e12006-09-29 21:31:53 +0000861 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
862 s/force_autohint/unpatented_hinting/. Update all callers.
863
864 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
865
866 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000867
David Turner8a317cf2006-09-27 07:52:48 +00008682006-09-27 David Turner <david@freetype.org>
869
Werner Lemberg2c002e12006-09-29 21:31:53 +0000870 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000871
David Turner8a317cf2006-09-27 07:52:48 +0000872
David Turnere140f142006-10-23 08:56:57 +0000873 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000874 In a default build, the function `FT_Library_SetLcdFilter' returns
875 `FT_Err_Unimplemented_Feature'; you need to #define
876 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
877 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000878
Werner Lemberg2c002e12006-09-29 21:31:53 +0000879 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000880
Werner Lemberg2c002e12006-09-29 21:31:53 +0000881 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
882 typedef.
883 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
884 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000885
Werner Lemberg2c002e12006-09-29 21:31:53 +0000886 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
887 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000888
Werner Lemberg2c002e12006-09-29 21:31:53 +0000889 Handle subpixel rendering.
890 Simplify function.
891 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
892 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
893
894 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
895 pointing to <freetype/ftlcdfil.h>.
896
897 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
898 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
899
900 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000901
Werner Lemberge20df4a2006-09-27 06:29:21 +00009022006-09-26 David Bustin
903
904 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
905 correctly. Reported as Savannah bug #17843.
906
David Turner6f8c6222006-09-26 15:42:44 +00009072006-09-26 David Turner <david@freetype.org>
908
Werner Lemberg110246c2006-09-26 21:55:44 +0000909 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
910 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
911 horizontal and vertical hinting for the purpose of debugging the
912 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000913
Werner Lemberg110246c2006-09-26 21:55:44 +0000914 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
915 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000916
Werner Lemberg110246c2006-09-26 21:55:44 +0000917 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
918
919 * include/freetype/config/ftoption.h, devel/ftoption.h
920 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
921 we want to compile LCD-optimized rendering code (à la ClearType) or
922 not. The macro *must* be disabled in default builds of the library
923 for patent reasons.
924
925 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
926 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
927 isn't defined at compile time. This only changes the content of the
928 rendered glyph to match the one of normal gray-level rendering,
929 hence clients should not need to be modified.
930
931 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000932
Werner Lemberg745ff2c2006-09-19 05:48:02 +00009332006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
934
935 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
936 LWFN fails and both are available.
937
David Turnerf3050052006-09-11 12:00:32 +00009382006-09-11 David Turner <david@freetype.org>
939
Werner Lembergf9644552006-09-12 13:48:10 +0000940 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
941 report their English names through an Apple Roman
942 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000943
Werner Lembergf9644552006-09-12 13:48:10 +0000944 If the font uses another name entry with language_id == English, it
945 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000946
Werner Lembergf9644552006-09-12 13:48:10 +0000947 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
948 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000949
Werner Lemberg36d2eab2006-09-05 19:24:34 +00009502006-09-05 Werner Lemberg <wl@gnu.org>
951
952 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000953 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000954 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
955 `HAN NOM B.ttf').
956
957 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
958
David Turner772e55d2006-09-05 09:45:15 +00009592006-09-05 David Turner <david@freetype.org>
960
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000961 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000962
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000963 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
964 (TRaster): Remove `count_ex' and `count_ey'.
965 (gray_find_cell): Remove 2nd and 3rd argument.
966 (gray_alloc_cell): Merged with `gray_find_cell'.
967 (gray_record_cell): Simplify.
968 (gray_set_cell): Rewrite.
969 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
970 (gray_render_span): Don't use FT_MEM_SET for small values.
971 (gray_dump_cells) [DEBUG_GRAYS]: New function.
972 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
973 bitmap scanline.
974 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000975
David Turneraa557a92006-09-04 16:42:44 +00009762006-09-04 David Turner <david@freetype.org>
977
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000978 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
979 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000980
Werner Lemberg2d8629b2006-09-03 06:18:45 +00009812006-09-03 Werner Lemberg <wl@gnu.org>
982
983 * devel/ftoption.h: Synchronize with
984 include/freetype/config/ftoption.h.
985
986 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
987 variable declaration.
988 (gray_convert_glyph): Fix compiler warnings.
989
David Turner6d79f212006-09-01 14:09:35 +00009902006-09-01 David Turner <david@freetype.org>
991
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000992 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
993 to recognize a few fonts that require the automatic unpatented
994 loader.
David Turnerbd502952006-09-01 19:05:24 +0000995
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000996 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
997 rasterizer. The speed improvement is between 15% and 25%, depending
998 on the font data.
999
1000 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1001 (TCell): Redefine.
1002 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1003 (gray_init_cells): Updated.
1004 (gray_find_cell, gray_alloc_cell): New functions.
1005 (gray_record_cell): Rewritten to use `gray_find_cell' and
1006 `gray_alloc_cell'.
1007 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1008 QSORT_THRESHOLD):
1009 Removed.
1010 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1011 gray_dump_cells): Removed.
1012 (gray_sweep): Rewritten.
1013 (gray_convert_glyph): Rewrite code which used one of the sorting
1014 functions.
1015 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001016
Werner Lembergd898aed2006-08-29 09:50:34 +000010172006-08-29 Dr. Werner Fink <werner@suse.de>
1018
1019 * configure: Make it possible to handle configure options which
1020 have strings containing spaces.
1021
10222006-08-27 David Turner <david@freetype.org>
1023
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001024 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1025 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1026 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1027
1028 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1029 src/truetype/truetype.c, src/truetype/ttdriver.c,
1030 src/truetype/ttgload.c, src/truetype/ttgload.h,
1031 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1032 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1033 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1034
1035 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1036 member `force_autohint'.
1037
1038 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1039
1040 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1041 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001042
Jens Claudiusa787f452006-08-27 11:26:18 +000010432006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1044
1045 Fix miscellaneous compiler warnings.
1046
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001047 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1048 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001049
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001050 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1051 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1052 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001053
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001054 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1055 volatileness of argument to ft_longjmp. Spotted by Werner
1056 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001057
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001058 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1059 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001060
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001061 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1062 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001063
Werner Lembergc4c35b72006-08-27 08:03:46 +000010642006-08-27 Werner Lemberg <wl@gnu.org>
1065
1066 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1067 Reported by Jens.
1068
Jens Claudius088e44e2006-08-22 14:24:30 +000010692006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001070
Jens Claudius088e44e2006-08-22 14:24:30 +00001071 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001072 about addresses of volatile objects passed as function arguments as
1073 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001074
Werner Lembergc4c35b72006-08-27 08:03:46 +00001075 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1076 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001077
1078 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1079 argument `table' a pointer to a volatile object.
1080
1081 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1082 argument `table' a pointer to a volatile object.
1083
Jens Claudius2652bd52006-08-18 17:20:37 +000010842006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1085
1086 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1087 variable `_sfnt' as volatile since it must keep its value across
1088 a call to ft_setjmp.
1089 (gxv_validate): Same for local variables `memory' and `valid'.
1090 (classic_kern_validate): Same for local variables `memory',
1091 `ckern', and `valid'.
1092
1093 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1094 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1095 `jstf', and 'valid'.
1096
1097 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1098 local variable `cmap'.
1099
David Turner9fbfc6a2006-08-16 09:11:31 +000011002006-08-16 David Turner <david@freetype.org>
1101
Werner Lemberg12342992006-08-19 11:18:09 +00001102 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1103 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001104
Werner Lemberg12342992006-08-19 11:18:09 +00001105 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1106 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001107
David Turner33f5f242006-08-16 16:50:55 +00001108
Werner Lemberg12342992006-08-19 11:18:09 +00001109 Improvements to native TrueType hinting. This is a first try,
1110 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1111
1112 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1113 `extra_points2'.
1114
1115 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1116 `orus'.
1117
1118 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1119 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1120 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1121 handle `extra_points2'.
1122
1123 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1124 Remove compiler warning.
1125 (cur_to_arg): Remove macro.
1126 (TT_Hint_Glyph): Updated.
1127 (TT_Process_Simple_Glyph): Handle `orus'.
1128
1129 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1130 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1131 (LOC_Ins_IUP): Renamed to...
1132 (IUP_WorkerRec): This.
1133 Add `orus' member.
1134 (Shift): Renamed to...
1135 (_iup_worker_shift): This.
1136 Updated.
1137 (Interp): Renamed to...
1138 (_iup_worker_interpolate): This.
1139 Updated to handle `orus'.
1140 (Ins_IUP): Updated.
1141
1142 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1143 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001144
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000011452006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1146
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001147 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001148 build ftvalid in ft2demos. This has been inadvertedly changed
1149 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001150
11512006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1152
Werner Lemberg12342992006-08-19 11:18:09 +00001153 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1154 Jens:
1155 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001156
Werner Lemberg12342992006-08-19 11:18:09 +00001157 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1158 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001159
1160 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1161
Jens Claudius9950adc2006-08-13 12:14:36 +000011622006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1163
Werner Lemberg12342992006-08-19 11:18:09 +00001164 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1165 T1_TOKEN_TYPE_KEY.
1166 (T1_FieldRec): Add `dict'.
1167 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1168 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1169 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001170
Werner Lemberg12342992006-08-19 11:18:09 +00001171 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1172 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001173
1174 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1175
1176 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001177 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1178 not T1_TOKEN_TYPE_ANY.
1179 (ps_parser_load_field): Make sure a token that should be a string or
1180 name is really a string or name.
1181 Avoid memory leak if a keyword has been already encountered and its
1182 value is overwritten.
1183 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1184 T1_FIELD_XXX.
1185 (parse_dict): Ignore keywords that occur in the wrong dictionary
1186 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001187
Werner Lemberg12342992006-08-19 11:18:09 +00001188 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1189 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001190
Werner Lemberg12342992006-08-19 11:18:09 +00001191 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1192 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001193
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000011942006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1195
1196 Move creation of field `buildchar' of T1_DecoderRec out of
1197 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1198 of it.
1199
1200 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1201 and `T1_Compute_Max_Advance'.
1202
1203 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1204 Remove field `face', add `len_buildchar'.
1205
1206 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1207 field `buildchar'.
1208
1209 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1210 finisher for T1_Decoder.
1211 (cid_slot_load_glyph): Do not ignore failure when initializing the
1212 T1_Decoder.
1213
1214 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1215 Updated.
1216 (t1_decoder_init): Remove initialization of fields `buildchar' and
1217 `len_buildchar'.
1218 (t1_decoder_done): Remove deallocation of field `buildchar'.
1219
1220 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1221 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1222 T1_Decoder.
1223 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1224 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1225 case of error.
1226
1227 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1228 `buildchar' of T1_FaceRec.
1229
1230 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1231 `buildchar' of T1_FaceRec.
1232
Werner Lemberg1a380e02006-07-14 18:28:08 +000012332006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1234
1235 * freetype2/include/freetype/internal/psaux.h: New macros
1236 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1237 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1238 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1239 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1240 (T1_DecoderRec): New fields `buildchar' and `face'.
1241 (IS_PS_TOKEN): New macro.
1242
1243 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1244 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1245
1246 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1247 `default_design_vector' and `num_default_design_vector'.
1248
1249 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1250 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1251 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1252
1253 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1254 `token' argument to be NULL if we want only to count the number of
1255 tokens.
1256 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1257 want to skip the array.
1258 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1259 want to skip the array.
1260
1261 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1262 support for (partially commented out) othersubrs 19-25, 27, and 28.
1263 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1264 (t1_decoder_done): Release new field `buildchar'.
1265
1266 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1267 functions.
1268 (t1_keywords): Register them.
1269 (t1_allocate_blend): Updated.
1270 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1271 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1272 (parse_dict): Remove `keyword_flags' argument.
1273 Use new macro IS_PS_TOKEN.
1274 Changed function so that later PostScript definitions override
1275 earlier ones.
1276 (t1_init_loader): Initialize new field `keywords_encountered'.
1277 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1278 `len_buildchar'.
1279 Remove `keywords_flags'.
1280
1281 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1282 `keywords_encountered'.
1283 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1284
1285 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1286 New entries for parsing /NDV, /CDV, and /DesignVector.
1287
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000012882006-07-07 Werner Lemberg <wl@gnu.org>
1289
1290 Add many checks to protect against malformed PCF files.
1291
1292 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1293 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1294
1295 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1296 data and check that tables don't overlap (using a simple
1297 bubblesort).
1298 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1299 New macros which give the size of data structures in the data
1300 stream.
1301 (pcf_get_properties): Use rough estimates to get array size limits.
1302 Assign `face->nprops' and `face->properties' earlier so that a call
1303 to PCF_Face_Done can do the clean-up in case of error.
1304 Protect against invalid string offsets.
1305 (pcf_get_metrics): Clean up code.
1306 Adjust tracing message levels.
1307 Use rough estimate to get array size limit.
1308 (pcf_get_bitmaps): Clean up code.
1309 Adjust tracing message levels.
1310 Use rough estimates to get offset limits.
1311 (pcf_get_encodings): Adjust tracing message level.
1312 (pcf_get_accel): Clean up code.
1313
Werner Lemberg8eb05252006-06-27 06:20:01 +000013142006-06-26 Werner Lemberg <wl@gnu.org>
1315
1316 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1317 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1318
Werner Lemberg24703f82006-06-26 19:12:51 +000013192006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1320
1321 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1322 (t1_decoder_parse_charstrings): Operator with
1323 opcode 15 pops its two arguments.
1324 Handle the case where the pops of an othersubr may be part of a
1325 subroutine.
1326 Handle unknown othersubrs gracefully: count their operands and let
1327 the following pop operators push the operands as the results onto
1328 the Type1 stack.
1329 Improve handling of setcurrentpoint opcode.
1330
Werner Lembergc011f4c2006-06-26 09:40:00 +000013312006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1332
1333 The Type 1 parser now skips over top-level procedures as required
1334 for a `Simplified Parser'. This makes the parser more robust as it
1335 doesn't poke around in PostScript code. Additionally, it makes the
1336 FontDirectory hackery in src/type1/t1load.c unnecessary.
1337
1338 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1339 (skip_literal_string): Add FT_Error as return value.
1340 Handle escapes better.
1341 (skip_string): Add FT_Error as return value.
1342 Don't set `parser->error' but return error code directly.
1343 (skip_procedure): New function.
1344 (ps_parser_skip_PS_token): Handle procedures.
1345 Update code.
1346 (ps_parser_to_token): Update code.
1347 (ps_parser_load_field_table): Handle bbox entries also.
1348
1349 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1350 Add commented-out code for synthetic fonts.
1351
Werner Lemberga2da05c2006-06-25 06:27:27 +000013522006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1353
1354 Fix two hinting bugs as reported in
1355 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1356
1357 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1358 `first_point' member.
1359
1360 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1361 `first_point'.
1362 (TT_Process_Composite_Glyph): Always untouch points.
1363
1364 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1365 `first_point' and `last_point' in case of composite glyphs.
1366 (Ins_IUP): Fix computation of `end_point'.
1367
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000013682006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1369
Werner Lembergef3d2c22006-06-25 06:07:14 +00001370 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1371 Mac. The original patch was written by David Sachitano and Lawrence
1372 Coopet, and modified by Sean McBride for MPW compatibility. Only
1373 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001374
Werner Lembergef3d2c22006-06-25 06:07:14 +00001375 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1376 Mac OS X platforms.
1377 (OS_INLINE): Undefine before definition.
1378 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1379 FontAssociation table in FOND resource.
1380 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1381 and fontSize at each entry of FontAssociation table in FOND
1382 resource.
1383 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1384 ffStylOff of FamilyRecord header of FOND resource, the header,
1385 fontSize, fontID at each entry of FontAssociation table, and
1386 StyleMapping table.
1387 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001388
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000013892006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1390
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001391 Public API of TrueTypeGX, OpenType, and classic kern table validator
1392 should return `FT_Err_Unimplemented_Feature' if validation service
1393 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001394 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001395 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1396
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001397 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1398 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1399 unavailable.
1400 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1401 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001402
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001403 * src/base/ftotval.c (FT_OpenType_Validate): Return
1404 FT_Err_Unimplemented_Feature if OpenType validation service is
1405 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001406
Werner Lembergb10e45a2006-06-08 07:32:56 +000014072006-06-08 Werner Lemberg <wl@gnu.org>
1408
1409 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1410 errors.
1411
David Turner5f1f7502006-06-07 05:11:50 +000014122006-06-07 David Turner <david@freetype.org>
1413
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001414 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1415 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1416 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001417
David Turner457b4a82006-06-06 08:14:14 +000014182006-06-06 David Turner <david@freetype.org>
1419
Werner Lemberg4836f952006-06-06 12:54:08 +00001420 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001421
Werner Lemberg4836f952006-06-06 12:54:08 +00001422 We change `ps_unicodes_init' so that it also takes a
1423 `free_glyph_name' callback to release the glyph names returned by
1424 `get_glyph_name'
1425
1426 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1427 Renamed to ...
1428 (PS_GetGlyphNameFunc): This.
1429 (PS_FreeGlyphNameFunc): New typedef.
1430 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1431
1432 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1433 argument.
1434 (cff_sid_free_glyph_name): New function.
1435 (cff_cmap_unicode_init): Updated.
1436
1437 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1438
1439 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1440 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001441
1442
David Turner09717352006-06-04 14:33:08 +000014432006-06-04 David Turner <david@freetype.org>
1444
Werner Lembergd724f202006-06-04 15:17:41 +00001445 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1446 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001447 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001448
Werner Lembergd724f202006-06-04 15:17:41 +00001449 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1450 of `face->num_glyphs' which missed the last glyph, due to
1451 the offset-by-1 computation, since the PFR format doesn't
1452 guarantee that glyph index 0 corresponds to the `missing
1453 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001454
Werner Lemberg33779662006-05-26 06:30:05 +000014552006-05-25 Werner Lemberg <wl@gnu.org>
1456
1457 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1458 `-no-undefined'. Reported by Christian Biesinger.
1459
Werner Lemberg24773d62006-05-20 08:53:13 +000014602006-05-19 Brian Weed <bw@imaginengine.com>
1461
1462 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1463 have debug information, and debug libraries use `C7 compatible'
1464 debug info.
1465
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000014662006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1467
Werner Lemberga6523a62006-05-20 08:47:01 +00001468 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001469 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001470
Werner Lemberga6523a62006-05-20 08:47:01 +00001471 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1472 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001473
1474 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001475 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001476
14772006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1478
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001479 * build/unix/configure.raw: Add a fallback to disable Carbon
1480 dependency, if configured with no options on Mac OS X.
1481
14822006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1483
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001484 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001485 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001486 the second part of Savannah bug #16590.
1487
Werner Lemberg545c4e52006-05-17 22:55:04 +000014882006-05-18 Werner Lemberg <wl@gnu.org>
1489
1490 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1491 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1492
David Turnerdc3ff312006-05-17 12:59:35 +000014932006-05-17 David Turner <david@freetype.org>
1494
Werner Lemberg545c4e52006-05-17 22:55:04 +00001495 This is a major patch used to drastically improve the performance of
1496 loading glyphs. This both speeds up loading the glyph vectors
1497 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001498
Werner Lemberg545c4e52006-05-17 22:55:04 +00001499 We now use inline assembler code with GCC to implement `FT_MulFix',
1500 which is probably the most important function related to the
1501 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001502
Werner Lemberg545c4e52006-05-17 22:55:04 +00001503 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001504
1505
Werner Lemberg545c4e52006-05-17 22:55:04 +00001506 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1507 `cursor' and `limit'.
1508
1509 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1510 New functions.
1511 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1512 [TEST]: Remove.
1513
1514 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1515 code.
1516
1517 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1518 `FT_ZERO'
1519 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1520 (af_glyph_hints_reload: Rewrite recognition of weak points.
1521
1522 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1523 constant values out of the loops.
1524
1525 * src/autofit/aftypes.h: Updated.
1526
1527 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1528
1529 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1530 product to get orientation.
1531
1532 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1533 (FT_Stream_OpenGzip): Use it to handle small files directly in
1534 memory.
1535
1536 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1537 Improve performance.
1538
1539 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1540 `limit'.
1541
1542 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1543 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1544 exceedingly large values of number of contours. Speed up by
1545 reducing the number of loops.
1546
1547 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1548
1549
1550 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1551 used to detect rogue clients from 4 to 16. This is to prevent some
1552 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1553 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001554
Werner Lembergde2d90a2006-05-17 08:54:30 +000015552007-05-17 Werner Lemberg <wl@gnu.org>
1556
1557 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001558 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001559
15602006-05-16 Werner Lemberg <wl@gnu.org>
1561
1562 * docs/PROBLEMS: Updated icl issues.
1563
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001564----------------------------------------------------------------------------
1565
Werner Lemberg42b63b22007-01-21 21:01:33 +00001566Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001567David Turner, Robert Wilhelm, and Werner Lemberg.
1568
1569This file is part of the FreeType project, and may only be used, modified,
1570and distributed under the terms of the FreeType project license,
1571LICENSE.TXT. By continuing to use, modify, or distribute this file you
1572indicate that you have read the license and understand and accept it
1573fully.
1574
1575
1576Local Variables:
1577version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001578coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001579End: