blob: 95568a3f73f03fdca0c403cf9336df2426e923be [file] [log] [blame]
David Turner3b242d32007-03-26 12:03:04 +000012007-03-26 David Turner <david@freetype.org>
2
3 * src/truetype/ttinterp.c: last fix for the MD instruction bytecode and
4 remove the FIX_BYTECODE macros from the sources. Woot, this looks good.
5
David Turnerf58caa02007-03-26 12:39:25 +00006 * src/autofit/aflatin.c (af_latin_metrics_init_blues): fix blues computations
7 in order to ignore 1-point contours. These are never rasterized and in certain
8 fonts correspond to mark-attach points that are very far from the glyph's
9 real outline, ruining the computation.
10
David Turner23553d62007-03-26 13:37:17 +000011 * src/autofit/afloader.c (af_loader_load_g): in the case of monospaced fonts,
12 always set "rsb_delta" and "lsb_delta" to 0. Otherwise code that uses them
13 will most certainly ruin the fixed advance property.
14
15 * docs/CHANGES, docs/VERSION, include/freetype/freetype.h,
16 builds/unix/configure.raw, README, Jamfile: update documentation and bump version
17 number to 2.3.3
18
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000192007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
20
21 * builds/unix/ftconfig.in: disable Carbon framework dependency on
22 64bit ABI on Mac OS X 10.4.x (ppc & i386), found by Sean McBride.
23 * builds/vms/ftconfig.h: Ditto.
24 * include/freetype/config/ftconfig.h: Ditto.
25
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000262007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
27
Werner Lemberg14ffe092007-03-22 06:12:43 +000028 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
29 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000030 proposed by Sean McBride:
31 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
32
332007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
34
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000035 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
36 setjmp, proposed by Sean McBride:
37 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
38
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000392007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
40
Werner Lembergc9f6c662007-03-21 13:30:14 +000041 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
42 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
43 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000044
David Turner74c34eb2007-03-18 07:19:31 +0000452007-03-18 David Turner <david@freetype.org>
46
Werner Lembergc9f6c662007-03-21 13:30:14 +000047 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
48 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000049
Werner Lembergc9f6c662007-03-21 13:30:14 +000050 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000051
David Turner89020d92007-03-17 17:48:57 +0000522007-03-17 David Turner <david@freetype.org>
53
Werner Lembergc9f6c662007-03-21 13:30:14 +000054 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
55 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000056
Werner Lemberg25d592a2007-03-09 07:59:35 +0000572007-03-09 Werner Lemberg <wl@gnu.org>
58
59 * Version 2.3.2 released.
60 =========================
61
62
63 Tag sources with `VER-2-3-2'.
64
65 * builds/win32/visualc/index.html,
66 builds/win32/visualc/freetype.dsp,
67 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
68 s/231/232/.
69
David Turner3a51afa2007-03-08 10:50:38 +0000702007-03-08 David Turner <david@freetype.org>
71
Werner Lemberg25d592a2007-03-09 07:59:35 +000072 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000073
Werner Lemberg25d592a2007-03-09 07:59:35 +000074 * builds/unix/configure.raw (version_info): Set to 9:13:3.
75
76 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
77
78 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000079
Werner Lemberg1e259de2007-03-08 15:39:21 +000080 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
81 function to work properly, over-writing user-provided buffers in
82 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000083
David Turner121cad52007-03-08 16:43:50 +000084
Werner Lemberg3d92f082007-03-06 11:59:24 +0000852007-03-05 Werner Lemberg <wl@gnu.org>
86
87 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
88 macro for `strstr'.
89
90 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
91 `trick_names', as suggested by Ivan Nincic.
92
David Turner085bc6e2007-03-05 17:40:03 +0000932007-03-05 David Turner <david@freetype.org>
94
Werner Lembergd112cf02007-03-06 12:06:56 +000095 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
96 case FT_Init_FreeType fails for some reason. Problem reported by
97 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000098
Werner Lembergd112cf02007-03-06 12:06:56 +000099 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
100 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
101 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
102 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000103
Werner Lembergd112cf02007-03-06 12:06:56 +0000104 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
105 signed values, not unsigned ones. Problem reported by Johannes
106 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000107
David Turner601aefe2007-02-21 16:47:49 +00001082007-02-21 David Turner <david@freetype.org>
109
Werner Lembergde5e6862007-02-25 21:06:43 +0000110 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
111 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000112
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001132007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
114
115 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
116 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
117 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
118
Werner Lemberga0915172007-02-16 08:12:50 +00001192007-02-16 Werner Lemberg <wl@gnu.org>
120
121 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
122 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
123
David Turner2c4500e2007-02-14 15:08:47 +00001242007-02-14 David Turner <david@freetype.org>
125
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000126 It seems that the following changes fix most of the known
127 interpreter problems with my fonts, but more testing is needed,
128 though.
129
130 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
131 (TT_MulFix14): Rewrite.
132 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
133 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000134
Werner Lembergc6a14082007-02-12 22:08:15 +00001352007-02-12 Werner Lemberg <wl@gnu.org>
136
137 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
138 warnings.
139
140 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
141 (bdf_interpret_style): Ditto.
142
David Turnerc0f9c4a2007-02-12 14:55:03 +00001432007-02-12 David Turner <david@freetype.org>
144
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000145 Simplify projection and dual-projection code interface.
146
Werner Lemberg406d25f2007-02-12 22:01:18 +0000147 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
148 FT_Vector' as argument type.
149 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
150 Updated.
151 (CUR_fast_project, CUR_fast_dualproj): New macros.
152 (Project, Dual_Project, Project_x, Project_y): Updated.
153 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
154 macros.
155
156
157 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
158 adjustments for the non-light auto-hinted modes. Gets rid of
159 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000160
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000161 * src/autofit/aflatin.c (af_latin_hints_link_segments,
162 af_latin_hints_compute_edges): Slight optimization of the segment
163 linker and better handling of serif segments to get rid of broken
164 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000165
David Turnerc0f9c4a2007-02-12 14:55:03 +0000166
Werner Lemberg442bfb82007-02-12 21:44:10 +0000167 Introduce new string functions and the corresponding macros to get
168 rid of various uses of strcpy and other `evil' functions, as well as
169 to simplify a few things.
170
171 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
172 ft_mem_strcpyn): New declarations.
173 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
174 macros.
175 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
176 functions.
177
178 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
179 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
180 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
181 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
182 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
183 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
184 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
185 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000186
Werner Lemberg406d25f2007-02-12 22:01:18 +0000187 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
188
Werner Lemberg582067d2007-02-11 15:03:05 +00001892007-02-11 Werner Lemberg <wl@gnu.org>
190
191 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
192 non-spacing glyphs.
193
Werner Lemberg8f474532007-02-07 08:31:01 +00001942007-02-07 Tom Parker <palfrey@tevp.net>
195
196 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
197 pointer.
198
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001992007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
200
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000201 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
202 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000203 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000204 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
205 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
206 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
207 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000208
209 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
210 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000211 * builds/mac/ftmac.c: Ditto.
212
2132007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
214
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000215 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000216 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000217 #include <ftmac.c>.
218
2192007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
220
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000221 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
222 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
223 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
224 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
225 FT_GetFilePath_From_Mac_ATS_Name.
226 * builds/mac/ftmac.c: Ditto.
227
2282007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
229
Werner Lembergdcbb7082007-02-08 08:54:09 +0000230 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000231 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
232 for passing to FT_New_Face_From_FSSpec.
233
2342007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
235
Werner Lembergdcbb7082007-02-08 08:54:09 +0000236 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000237 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000238
239 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
240 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000241 * builds/mac/ftmac.c (OS_INLINE): Ditto.
242
Werner Lemberg313d7772007-02-01 08:10:45 +00002432007-02-01 Werner Lemberg <wl@gnu.org>
244
245 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
246 Explain why applications shouldn't use it. Found by Alexei.
247
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002482007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000249
250 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
251 message.
252
253 * src/gxvalid/gxvmort1.c
254 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
255 message.
256
Werner Lemberg53935932007-01-31 08:53:02 +00002572007-01-31 Werner Lemberg <wl@gnu.org>
258
259
260 * Version 2.3.1 released.
261 =========================
262
263
264 Tag sources with `VER-2-3-1-FINAL'.
265
266 * builds/win32/visualc/freetype.dsp,
267 builds/win32/visualc/freetype.vcproj: s/230/231/.
268 * builds/win32/visualc/index.html: s/221/231/.
269
270 * vms_make.com: Add `ftgasp'.
271
David Turnera7ee6082007-01-30 10:33:53 +00002722007-01-30 David Turner <david@freetype.org>
273
Werner Lemberg53935932007-01-31 08:53:02 +0000274 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000275
Werner Lemberg53935932007-01-31 08:53:02 +0000276 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000277
Werner Lemberg25d592a2007-03-09 07:59:35 +0000278 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000279 s/2.3.0/2.3.1/.
280
281 * builds/unix/configure.raw (version_info): Set to 9:12:3.
282
283
284 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
285 (af_loader_load_g): Disable the warper (i.e., the light hinting
286 improvements) to make a 2.3.1 bugfix release before introducing a
287 new feature. This should give us more time to tune and improve the
288 warper for the next release.
289
290 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000291
David Turnerd91eebd2007-01-26 15:05:41 +00002922007-01-25 David Turner <david@freetype.org>
293
Werner Lembergbf241762007-01-26 16:08:49 +0000294 For light auto-hinting, improve glyph advance widths and resurrect
295 normal/full hinting to its normal quality.
296
297 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
298 and `xmax_delta'.
299 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
300 and `xmax_delta'.
301
302 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
303 preprocessor conditional with if-clause, handling both light and
304 normal mode.
305
306 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
307 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000308
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003092007-01-25 Werner Lemberg <wl@gnu.org>
310
311 * docs/release: Updated -- Savannah uses a new uploading scheme.
312
David Turnera42567b2007-01-25 12:23:37 +00003132007-01-25 David Turner <david@freetype.org>
314
Werner Lembergd7855662007-01-25 13:53:56 +0000315 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000316
Werner Lembergd7855662007-01-25 13:53:56 +0000317 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
318 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
319 functions.
David Turnera42567b2007-01-25 12:23:37 +0000320
Werner Lembergd7855662007-01-25 13:53:56 +0000321 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000322
Werner Lembergb1be9e82007-01-25 11:50:00 +00003232007-01-25 Werner Lemberg <wl@gnu.org>
324
325 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000326 correctly in a sanity check. Since this function is only used to
327 load local and global functions, any charstring that called the last
328 local/global function would fail otherwise. This fixes Savannah bug
329 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000330
331 * docs/CHANGES: Document it.
332
David Turnerb6de8d12007-01-23 15:51:50 +00003332007-01-23 David Turner <david@freetype.org>
334
Werner Lembergb1be9e82007-01-25 11:50:00 +0000335 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
336 prevented compilation when disabling both the unpatented and the
337 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000338
Werner Lembergb1be9e82007-01-25 11:50:00 +0000339
340 Fix and enable the warper to improve `light' hinting mode. This is
341 not necessarily a final version, but it seems to work well.
342
343 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
344 Disable code.
345 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
346 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
347
348 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
349 (af_warper_compute_line_best): Fix array size of `scores'.
350 (af_warper_compute): Better handling of border cases.
351 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
352 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000353
Werner Lemberg011d1112007-01-21 09:36:00 +00003542007-01-21 Werner Lemberg <wl@gnu.org>
355
Werner Lemberg42b63b22007-01-21 21:01:33 +0000356 * ChangeLog: Split off older entries into...
357 * ChangeLog.22: This new file.
358
3592007-01-21 Werner Lemberg <wl@gnu.org>
360
Werner Lemberg555258f2007-01-21 09:46:37 +0000361 * docs/CHANGES: Document SHZ fix.
362
3632007-01-21 George Williams <gww@silcom.com>
364
365 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
366 points.
367
3682007-01-21 Werner Lemberg <wl@gnu.org>
369
Werner Lemberg011d1112007-01-21 09:36:00 +0000370 * src/sfnt/ttmtx.c (tt_face_get_metrics)
371 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
372
Werner Lemberg87a5a432007-01-17 12:44:39 +00003732007-01-17 Werner Lemberg <wl@gnu.org>
374
Werner Lembergb8003292007-01-17 12:56:25 +0000375
376 * Version 2.3.0 released.
377 =========================
378
379
380 Tag sources with `VER-2-3-0-FINAL'.
381
3822007-01-17 Werner Lemberg <wl@gnu.org>
383
Werner Lemberg87a5a432007-01-17 12:44:39 +0000384 * docs/release: Updated.
385
David Turner22122722007-01-16 20:06:44 +00003862007-01-16 David Turner <david@freetype.org>
387
Werner Lemberg87a5a432007-01-17 12:44:39 +0000388 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
389 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
390 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
391 warnings.
David Turner22122722007-01-16 20:06:44 +0000392
Werner Lemberg267e1d72007-01-15 07:48:09 +00003932007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
394
395 * builds/amiga/makefile, builds/amiga/makefile.os4,
396 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
397
398 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
399
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004002007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
401
402 Fix various compiler warnings.
403
404 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
405 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
406 s/index/strike_index/.
407 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
408
409 * src/gxvalid/gxvmorx5.c
410 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
411
412 * src/truetype/ttinterp.c (Compute_Point_Displacement),
413 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
414 uninitialized variables.
415
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004162007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
417
418 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
419
Werner Lemberg281c1482007-01-13 22:50:51 +00004202007-01-13 Werner Lemberg <wl@gnu.org>
421
422 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
423 versions up to 0x3FF without complaining.
424
Werner Lembergac250b22007-01-13 14:01:36 +00004252007-01-13 Derek Clegg <dclegg@apple.com>
426
427 Add FT_Get_PS_Font_Info interface to CFF driver.
428
429 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
430 (CFF_FontRec): Add `font_info' field.
431
432 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
433 (cff_font_done): Free font->font_info if necessary.
434
435 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
436 (cff_service_ps_info): Register cff_ps_get_font_info.
437
Werner Lemberg23df31a2007-01-13 08:45:00 +00004382007-01-13 Werner Lemberg <wl@gnu.org>
439
440 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
441 with C++ compiler.
442
443 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
444 af_glyph_hints_dump_edges): Ditto.
445
446 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
447 `modules.cfg').
448
449 * src/sfnt/ttsbit0.h: Remove.
450
451 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
452
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004532007-01-12 David Turner <david@freetype.org>
454
455 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
456 bug in the bitmap emboldener if the pitch of the source bitmap is
457 much larger than its width.
458
459 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
460 compilation warning.
461
Werner Lemberg6d96d312007-01-12 10:30:19 +00004622007-01-12 Werner Lemberg <wl@gnu.org>
463
464 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
465 `automake' CVS module from sources.redhat.com.
466
Werner Lemberg17432b52007-01-12 09:28:44 +00004672007-01-11 Werner Lemberg <wl@gnu.org>
468
469 * src/type1/t1load.c (is_space): Removed.
470 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
471 (parse_charstrings): Use IS_PS_TOKEN.
472
473
474 * autogen.sh: Avoid bash specific syntax.
475
David Turner038ace22007-01-11 15:00:59 +00004762007-01-11 David Turner <david@freetype.org>
477
Werner Lemberg17432b52007-01-12 09:28:44 +0000478 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000479
Werner Lemberg17432b52007-01-12 09:28:44 +0000480 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000481
Werner Lemberg17432b52007-01-12 09:28:44 +0000482 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
483 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000484 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000485
Werner Lemberg17432b52007-01-12 09:28:44 +0000486 * autogen.sh: Small fix to get it working on Mac OS X properly:
487 The issue is that GNU libtool is called `glibtool' on this platform,
488 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000489
David Turner2628ea92007-01-10 13:15:56 +00004902007-01-10 David Turner <david@freetype.org>
491
Werner Lemberg17432b52007-01-12 09:28:44 +0000492 * all-sources: Tag all sources with VER-2-3-0-RC1 and
493 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000494
Werner Lemberg17432b52007-01-12 09:28:44 +0000495 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
496 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
497 version number to 2.3.0.
498
499 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
500 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000501
502 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000503 include/freetype/ftlcdfil.h: Update reference documentation with
504 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000505
Werner Lemberg17432b52007-01-12 09:28:44 +0000506 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
507 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000508
Werner Lembergbf02d392007-01-10 07:07:37 +00005092007-01-10 Derek Clegg <dclegg@apple.com>
510
511 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
512 values.
513
David Turnerf48b60e2007-01-08 15:15:32 +00005142007-01-08 David Turner <david@freetype.org>
515
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000516 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000517
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000518 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
519 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000520 corresponding to a given character pixel size.
521
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000522 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
523 `gasp' table, in order to avoid potential problems with later
524 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000525
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000526 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
527 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000528
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000529 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
530 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
531 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
532 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000533
Werner Lemberge6b6f372007-01-07 00:06:47 +00005342007-01-07 Werner Lemberg <wl@gnu.org>
535
Werner Lembergb8004d22007-01-07 09:13:38 +0000536 * src/cid/cidparse.c (cid_parser_new): Improve error message for
537 Type 11 fonts.
538 Scan for `/sfnts' token.
539
5402007-01-07 Werner Lemberg <wl@gnu.org>
541
542 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000543
Werner Lembergbe5f7972007-01-06 07:51:48 +00005442007-01-06 Werner Lemberg <wl@gnu.org>
545
546 * src/cff/cffload.c (cff_index_init): Remove unused variable.
547 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
548
David Turnera8cf42b2007-01-04 16:46:46 +00005492007-01-04 David Turner <david@freetype.org>
550
Werner Lembergf6294392007-01-06 07:47:45 +0000551 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
552 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000553
Werner Lembergf6294392007-01-06 07:47:45 +0000554
555 Do not allocate interpreter-specific tables in memory if we are not
556 going to load glyphs with the bytecode interpreter anyway.
557
558 * src/truetype/ttgload.c (tt_loader_init): Load execution context
559 only if glyph is hinted.
560 Updated.
561 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
562 and `cvs_ready'.
563 Add `tt_size_ready_bytecode' declaration.
564 * src/truetype/ttobjs.c (tt_size_done_bytecode,
565 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
566 (tt_size_init): Move most code into `tt_size_init_bytecode'.
567 (tt_size_done): Move most code into `tt_size_done_bytecode'.
568 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000569
David Turner91a34022007-01-05 14:47:08 +0000570
Werner Lembergf6294392007-01-06 07:47:45 +0000571 Don't extract the metrics table from the SFNT font file. Instead,
572 reparse it on each glyph load. The runtime difference is not
573 noticeable, and it can save a lot of heap memory when memory-mapped
574 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000575
Werner Lembergf6294392007-01-06 07:47:45 +0000576 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
577 `horz_metrics_offset' and `vert_metrics_ofset'.
578 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
579 Updated.
580
581
582 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
583
584
585 Do not load the CFF index offsets into memory, since this wastes a
586 *lot* of heap memory with large Asian CFF fonts. There is no
587 significant performance loss.
588
589 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
590 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
591 `data_size'.
592 (CFF_CharsetRec): Add field `num_glyphs'.
593
594 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
595 cff_charset_cid_to_gindex): New functions.
596 (cff_new_index): Renamed to...
597 (cff_index_init): This. Update all callers.
598 Updated -- some code has been moved to `cff_index_load_offsets'.
599 (cff_done_index): Renamed to...
600 (cff_index_done): This. Update all callers.
601 (cff_index_get_pointers, cff_index_access_element): Updated to use
602 stream offsets.
603 (cff_charset_compute_cids): Set `num_glyphs' field.
604 (cff_encoding_load): Updated.
605
606 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000607
6082007-01-04 David Turner <david@freetype.org>
609
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000610 * docs/INSTALL.UNIX: Simplify some parts, add reference to
611 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000612
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000613 * README.CVS: Add common problem description and solution
614 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000615
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000616 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000617
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000618 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000619
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000620 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000621
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000622 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
623 (TWorker): This.
624 Remove `count_table' and `memory'.
625 Make `grays' a pointer.
626 (TRaster): New structure.
627 (count_table): New static array.
628 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
629 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
630 ft_black_set_mode, ft_black_render): Updated.
631 (ft_black_init): Don't initialize `count_table'.
632 (ft_black_reset): Use the render pool. This saves about 6KB of
633 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000634
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000635 * src/smooth/ftgrays.c (TRaster): Replaced with...
636 (TWorker): This.
637 Remove `memory'.
638 (TRaster): New structure.
639
640 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
641 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
642 gray_render_span, gray_raster_render): Updated.
643 (gray_raster_reset): Use the render pool. This saves about 6KB of
644 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000645
David Turner8a6c44e2007-01-04 17:03:11 +0000646 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
647 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000648 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
649 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
650 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000651
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000652 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
653 Remove a typo that results in no hinting and a memory leak with some
654 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000655
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000656 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000657 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000658 CFF_Faces in it. We need to close all faces before destroying the
659 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000660
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006612007-01-02 Werner Lemberg <wl@gnu.org>
662
663 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
664 Remove compiler warning.
665
David Turner9207e002007-01-02 16:58:13 +00006662007-01-02 David Turner <david@freetype.org>
667
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000668 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000669
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006702006-12-31 Masatake YAMATO <jet@gyve.org>
671
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000672 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
673 function.
674 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000675 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000676 `gxv_kern_subtable_fmt0_pairs_validate'.
677
David Turner115b4422006-12-22 11:37:05 +00006782006-12-22 David Turner <david@freetype.org>
679
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000680 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
681 warnings.
David Turner115b4422006-12-22 11:37:05 +0000682
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000683 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
684 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000685
Werner Lemberg4755bf72006-12-16 08:58:44 +00006862006-12-16 Anders Kaseorg <anders@kaseorg.com>
687
688 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
689 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
690
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006912006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
692
Werner Lemberg9b774e22007-01-16 06:11:27 +0000693 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000694 sync with the modification by Jens Claudius on 2006-08-22; cf.
695 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 +0000696
6972006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
698
699 * src/base/ftmac.c: Specialized for Mac OS X only.
700 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
701 * builds/unix/configure.raw: Ditto. When explicit switches for
702 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
703 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
704
7052006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
706
707 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
708 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
709 instead of src/base/ftmac.c
710 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
711 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
712 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
713 that cannot be built at present.
714
7152006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
716
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000717 * src/base/ftobjs.c: Improvement of resource fork handler for
718 POSIX, cf.
719 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000720 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
721 format or .dfont, to simulate the face index number counted by ftmac.c.
722 (IsMacResource): Return the number of scalable faces correctly.
723
Werner Lembergec5b4502006-12-10 07:51:38 +00007242006-12-10 Werner Lemberg <wl@gnu.org>
725
726 * builds/toplevel.mk (version): Protect against `distclean' target.
727
Werner Lembergb26b3142006-12-09 20:01:43 +00007282006-12-09 Werner Lemberg <wl@gnu.org>
729
730 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
731 or `type'.
732
733 * builds/freetype.mk (version): Extracted from freetype.h, using
734 GNU make's built-in string functions.
735 (refdoc): Use $(version) instead of static version number.
736
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007372006-12-08 Werner Lemberg <wl@gnu.org>
738
739 * builds/toplevel.mk (dist): Extract version number from freetype.h.
740
Werner Lemberg15c29502006-12-09 07:29:54 +00007412006-12-08 Vladimir Volovich <vvv@vsu.ru>
742
743 * src/tools/apinames (State): Remove final comma in structure -- xlc
744 v5 under AIX 4.3 doesn't like this.
745
David Turnerdbf3b432006-12-07 21:18:09 +00007462006-12-07 David Turner <david@freetype.org>
747
Werner Lemberg256a3512006-12-08 06:49:33 +0000748 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
749 to the spacing of auto-fitted glyphs. This only impacts rare
750 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000751
Werner Lemberg11171312006-12-03 09:43:40 +00007522006-12-03 Werner Lemberg <wl@gnu.org>
753
754 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
755
Werner Lemberg960ba592006-12-01 08:20:47 +00007562006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000757
Werner Lemberg960ba592006-12-01 08:20:47 +0000758 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
759 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
760 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000761
David Turner80658e52006-11-28 08:09:20 +0000762
Werner Lemberg960ba592006-12-01 08:20:47 +0000763 * include/freetype/ftxf86.h: Fix and extend comment so that it
764 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000765
Werner Lemberg960ba592006-12-01 08:20:47 +0000766 * include/freetype/ftchapters.h: Add `font_format' section.
767
768
769 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
770 to TOC in index page.
771
7722006-11-28 David Turner <david@freetype.org>
773
774 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
775 trying to render into a zero-width/height bitmap, not an error code.
776
777 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
778
779 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
780 ones instead.
781
782 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
783 variable.
David Turner80658e52006-11-28 08:09:20 +0000784
Werner Lemberg8636c292006-11-26 22:28:13 +00007852006-11-26 Pierre Hanser <hanser@club-internet.fr>
786
787 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
788
Werner Lemberg960ba592006-12-01 08:20:47 +00007892006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000790
Werner Lemberg960ba592006-12-01 08:20:47 +0000791 * src/autofit/afhints.c (af_glyph_hints_dump_points,
792 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
793 Add stubs to link the `ftgrid' test program when debugging is
794 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000795
Werner Lemberg960ba592006-12-01 08:20:47 +00007962006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000797
798 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000799 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
800
801 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
802 Emit more sensible information.
803
804 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
805
806 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
807 rounding of blue values.
808 (af_latin_hints_compute_segments): Hint segment heights.
809 (af_latin_hints_link_segments): Reduce `len_score' value.
810 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
811 value and use `height' member for comparisons.
812 (af_latin_hint_edges): Extend logging message.
813 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000814
Werner Lemberg91959bf2006-11-22 10:36:55 +00008152006-11-22 Werner Lemberg <wl@gnu.org>
816
817 Fix Savannah bug #15553.
818
819 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
820 program after a change from mono to grayscaling (and vice versa).
821 Use correct constant for comparison to get `exec->grayscale'.
822
Werner Lemberg913a3652006-11-19 09:19:17 +00008232006-11-18 Werner Lemberg <wl@gnu.org>
824
825 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000826 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000827 This patch fixes Savannah bug #18301.
828
829 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
830 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
831 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
832 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
833 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
834 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
835 (FNT_Load_Glyph): Check validity of `glyph_index'.
836
David Turner7bab6ae2006-11-13 11:25:06 +00008372006-11-13 David Turner <david@freetype.org>
838
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000839 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
840 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000841
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000842 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
843 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
844 when building the library to change the default LCD filter to be
845 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000846
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000847 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000848
David Turner8765c712006-11-10 16:49:42 +00008492006-11-10 David Turner <david@freetype.org>
850
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000851 * src/smooth/ftsmooth.c: API change for the LCD
852 filter. The FT_LcdFilter value is an enumeration describing which
853 filter to apply, with new values FT_LCD_FILTER_LIGHT and
854 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
855 algorithm which produces strong color fringes for everything
856 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000857
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000858 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
859 second parameter to an enum type.
860
861 * src/base/ftlcdfil.c (USE_LEGACY): Define.
862 (_ft_lcd_filter): Rename to...
863 (_ft_lcd_filter_fir): This.
864 Update parameters.
865 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
866 (FT_Library_Set_LcdFilter): Update parameters.
867 Handle new filter modes.
868
869 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
870 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
871 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
872 callback and update other fields.
873
874 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
875 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
876 Other minor improvements.
877
878 * src/autofit/aflatin.c: Various tiny improvements that drastically
879 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
880 (af_latin_hints_compute_edges): Fix typo.
881 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000882
David Turner4e9cc3c2006-11-09 16:31:52 +00008832006-11-09 David Turner <david@freetype.org>
884
Werner Lemberg49c77a82006-11-09 21:51:57 +0000885 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
886 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000887
Werner Lemberg5e430892006-11-07 09:35:03 +00008882006-11-07 Zhe Su <james.su@gmail.com>
889
890 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
891 also.
892
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008932006-11-03 Werner Lemberg <wl@gnu.org>
894
895 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
896
David Turner40604742006-11-02 16:37:35 +00008972006-11-02 David Turner <david@freetype.org>
898
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000899 Add a few tweaks to better handle serif fonts.
900 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000901
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000902 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
903 segments that are less than 1.5 pixels high. This gets rid of
904 *many* corner cases with serifs.
905 (af_latin_align_linked_edge): Add logging message.
906 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
907 Add logging messages.
908 Handle AF_EDGE_FLAG flag specially.
909
910 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
911 _af_debug_disable_blue_hints, and _af_debug_hints variables.
912
913 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
914 Update external declarations.
915 (af_corner_orientation, af_corner_is_flat): Replaced by...
916
917 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
918 ft_corner_is_flat): These declarations.
919
920 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
921 Comment out. Replaced by...
922
923 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
924 These functions. Update all callers.
925 (FT_Add64) [!FT_LONG64]: Simplify.
926
927 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
928 (af_direction_compute): Add a missing FT_ABS call. This bug caused
929 production of garbage by missing lots of segments.
930
931 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
932
933 * src/autofit/afloader.c (af_loader_init, af_loader_done)
934 [AF_DEBUG]: Set _af_debug_hints.
935
936
937 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
938 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
939 and ft_corner_orientation.
940
941
942 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000943
Werner Lemberge88c5262006-10-24 05:46:26 +00009442006-10-24 Werner Lemberg <wl@gnu.org>
945
946 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
947
948 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
949 as argument.
950
David Turnera1861392006-10-23 16:00:59 +00009512006-10-23 Zhe Su <zsu@novell.com>
952
Werner Lemberg715e96e2006-10-24 05:28:45 +0000953 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
954 better deal with broken Asian fonts with strange glyphs, having
955 self-intersections and other peculiarities. The used algorithm is
956 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000957
David Turnere140f142006-10-23 08:56:57 +00009582006-10-23 David Turner <david@freetype.org>
959
Werner Lemberg715e96e2006-10-24 05:28:45 +0000960 Speed up the CFF font loader. With some large CFF fonts,
961 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000962
Werner Lemberg715e96e2006-10-24 05:28:45 +0000963 * src/cff/cffload.c (cff_get_offset): Removed.
964 (cff_new_index): Inline functionality of `cff_get_offset'.
965 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
966 (cff_charset_done): Call `cff_charset_free_cids'.
967 (cff_charset_load): Call `cff_charset_compute_cids'.
968 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
969
970 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
971 with FT_NEXT_XXX.
972
973
974 Speed up the Postscript hinter, with more than 100% speed increase
975 on my machine.
976
977 * src/pshinter/pshalgo.c (psh_corner_is_flat,
978 psh_corner_orientation): New functions.
979 (psh_glyph_compute_inflections): Merge loops for efficiency.
980 Use `psh_corner_orientation'.
981 (psh_glyph_init): Use `psh_corner_is_flat'.
982 (psh_hint_table_find_strong_point): Renamed to...
983 (psh_hint_table_find_strong_points): This.
984 Rewrite, adding argument to handle all points at once.
985 Update all callers.
986 (PSH_MAX_STRONG_INTERNAL): New macro.
987 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000988
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009892006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
990
991 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000992 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000993
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009942006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
995
996 * docs/INSTALL.CROSS: New document file for cross-building.
997
998 * builds/unix/configure.raw: Preliminary cross-building support.
999 Find native C compiler and pass it by CC_BUILD, and
1000 find suffix for native executable and pass it by EXEEXT_BUILD.
1001 Also suffix for target executable is passed by EXEEXT.
1002
Werner Lembergb9e6d692006-10-15 08:58:40 +00001003 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1004 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001005 CC_BUILD and EXEEXT_BUILD.
1006
Werner Lembergb9e6d692006-10-15 08:58:40 +00001007 * builds/exports.mk (APINAMES_EXE): Change the extension for
1008 apinames from the suffix for target (E) to that for building host
1009 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001010
Werner Lemberg82a07e92006-10-12 06:20:44 +000010112006-10-12 Werner Lemberg <wl@gnu.org>
1012
1013 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1014 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1015 which reference those files.
1016
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010172006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1018
Werner Lembergb9e6d692006-10-15 08:58:40 +00001019 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1020 embedded in freetype2.pc and freetype-config. Use it to record
1021 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001022
1023 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1024
1025 * builds/unix/freetype-config.in: Ditto.
1026
Werner Lemberg28e17d92006-10-11 17:27:47 +000010272006-10-11 Werner Lemberg <wl@gnu.org>
1028
1029 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1030 development.
1031
Jens Claudius336d2292006-10-03 08:53:37 +000010322006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1033
1034 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1035 argument to ft_setjmp.
1036
1037 * include/freetype/internal/ftvalid.h: Add comment that
1038 ft_validator_run must not be used.
1039
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010402006-10-01 Werner Lemberg <wl@gnu.org>
1041
1042 * src/base/ftbase.c: Undo change from 2006-09-30.
1043
1044 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1045
10462006-09-30 David Turner <david@freetype.org>
1047
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001048 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1049 s/unpatented_hinting/ignore_unpatented_hinter/.
1050 Update all callers.
1051
1052 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1053 auto-hinting shall be used or not.
1054
1055 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001056
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010572006-09-30 Werner Lemberg <wl@gnu.org>
1058
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001059 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1060 in use).
1061
1062 * src/base/ftbase.c: Include `ftlcdfil.c'.
1063
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010642006-09-29 Werner Lemberg <wl@gnu.org>
1065
1066 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1067 overlapping segments. Bug reported by Stefan Koch.
1068
David Turnerad830712006-09-27 16:20:59 +000010692006-09-28 David Turner <david@freetype.org>
1070
Werner Lemberg2c002e12006-09-29 21:31:53 +00001071 Fix a bug in the automatic unpatented hinting support which prevents
1072 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001073
Werner Lemberg2c002e12006-09-29 21:31:53 +00001074 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1075 s/force_autohint/unpatented_hinting/. Update all callers.
1076
1077 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1078
1079 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001080
David Turner8a317cf2006-09-27 07:52:48 +000010812006-09-27 David Turner <david@freetype.org>
1082
Werner Lemberg2c002e12006-09-29 21:31:53 +00001083 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001084
David Turner8a317cf2006-09-27 07:52:48 +00001085
David Turnere140f142006-10-23 08:56:57 +00001086 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001087 In a default build, the function `FT_Library_SetLcdFilter' returns
1088 `FT_Err_Unimplemented_Feature'; you need to #define
1089 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1090 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001091
Werner Lemberg2c002e12006-09-29 21:31:53 +00001092 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001093
Werner Lemberg2c002e12006-09-29 21:31:53 +00001094 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1095 typedef.
1096 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1097 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001098
Werner Lemberg2c002e12006-09-29 21:31:53 +00001099 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1100 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001101
Werner Lemberg2c002e12006-09-29 21:31:53 +00001102 Handle subpixel rendering.
1103 Simplify function.
1104 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1105 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1106
1107 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1108 pointing to <freetype/ftlcdfil.h>.
1109
1110 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1111 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1112
1113 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001114
Werner Lemberge20df4a2006-09-27 06:29:21 +000011152006-09-26 David Bustin
1116
1117 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1118 correctly. Reported as Savannah bug #17843.
1119
David Turner6f8c6222006-09-26 15:42:44 +000011202006-09-26 David Turner <david@freetype.org>
1121
Werner Lemberg110246c2006-09-26 21:55:44 +00001122 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1123 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1124 horizontal and vertical hinting for the purpose of debugging the
1125 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001126
Werner Lemberg110246c2006-09-26 21:55:44 +00001127 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1128 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001129
Werner Lemberg110246c2006-09-26 21:55:44 +00001130 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1131
1132 * include/freetype/config/ftoption.h, devel/ftoption.h
1133 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1134 we want to compile LCD-optimized rendering code (à la ClearType) or
1135 not. The macro *must* be disabled in default builds of the library
1136 for patent reasons.
1137
1138 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1139 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1140 isn't defined at compile time. This only changes the content of the
1141 rendered glyph to match the one of normal gray-level rendering,
1142 hence clients should not need to be modified.
1143
1144 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001145
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011462006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1147
1148 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1149 LWFN fails and both are available.
1150
David Turnerf3050052006-09-11 12:00:32 +000011512006-09-11 David Turner <david@freetype.org>
1152
Werner Lembergf9644552006-09-12 13:48:10 +00001153 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1154 report their English names through an Apple Roman
1155 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001156
Werner Lembergf9644552006-09-12 13:48:10 +00001157 If the font uses another name entry with language_id == English, it
1158 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001159
Werner Lembergf9644552006-09-12 13:48:10 +00001160 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1161 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001162
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011632006-09-05 Werner Lemberg <wl@gnu.org>
1164
1165 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001166 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001167 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1168 `HAN NOM B.ttf').
1169
1170 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1171
David Turner772e55d2006-09-05 09:45:15 +000011722006-09-05 David Turner <david@freetype.org>
1173
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001174 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001175
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001176 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1177 (TRaster): Remove `count_ex' and `count_ey'.
1178 (gray_find_cell): Remove 2nd and 3rd argument.
1179 (gray_alloc_cell): Merged with `gray_find_cell'.
1180 (gray_record_cell): Simplify.
1181 (gray_set_cell): Rewrite.
1182 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1183 (gray_render_span): Don't use FT_MEM_SET for small values.
1184 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1185 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1186 bitmap scanline.
1187 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001188
David Turneraa557a92006-09-04 16:42:44 +000011892006-09-04 David Turner <david@freetype.org>
1190
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001191 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1192 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001193
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011942006-09-03 Werner Lemberg <wl@gnu.org>
1195
1196 * devel/ftoption.h: Synchronize with
1197 include/freetype/config/ftoption.h.
1198
1199 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1200 variable declaration.
1201 (gray_convert_glyph): Fix compiler warnings.
1202
David Turner6d79f212006-09-01 14:09:35 +000012032006-09-01 David Turner <david@freetype.org>
1204
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001205 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1206 to recognize a few fonts that require the automatic unpatented
1207 loader.
David Turnerbd502952006-09-01 19:05:24 +00001208
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001209 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1210 rasterizer. The speed improvement is between 15% and 25%, depending
1211 on the font data.
1212
1213 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1214 (TCell): Redefine.
1215 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1216 (gray_init_cells): Updated.
1217 (gray_find_cell, gray_alloc_cell): New functions.
1218 (gray_record_cell): Rewritten to use `gray_find_cell' and
1219 `gray_alloc_cell'.
1220 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1221 QSORT_THRESHOLD):
1222 Removed.
1223 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1224 gray_dump_cells): Removed.
1225 (gray_sweep): Rewritten.
1226 (gray_convert_glyph): Rewrite code which used one of the sorting
1227 functions.
1228 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001229
Werner Lembergd898aed2006-08-29 09:50:34 +000012302006-08-29 Dr. Werner Fink <werner@suse.de>
1231
1232 * configure: Make it possible to handle configure options which
1233 have strings containing spaces.
1234
12352006-08-27 David Turner <david@freetype.org>
1236
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001237 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1238 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1239 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1240
1241 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1242 src/truetype/truetype.c, src/truetype/ttdriver.c,
1243 src/truetype/ttgload.c, src/truetype/ttgload.h,
1244 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1245 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1246 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1247
1248 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1249 member `force_autohint'.
1250
1251 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1252
1253 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1254 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001255
Jens Claudiusa787f452006-08-27 11:26:18 +000012562006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1257
1258 Fix miscellaneous compiler warnings.
1259
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001260 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1261 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001262
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001263 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1264 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1265 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001266
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001267 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1268 volatileness of argument to ft_longjmp. Spotted by Werner
1269 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001270
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001271 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1272 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001273
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001274 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1275 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001276
Werner Lembergc4c35b72006-08-27 08:03:46 +000012772006-08-27 Werner Lemberg <wl@gnu.org>
1278
1279 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1280 Reported by Jens.
1281
Jens Claudius088e44e2006-08-22 14:24:30 +000012822006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001283
Jens Claudius088e44e2006-08-22 14:24:30 +00001284 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001285 about addresses of volatile objects passed as function arguments as
1286 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001287
Werner Lembergc4c35b72006-08-27 08:03:46 +00001288 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1289 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001290
1291 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1292 argument `table' a pointer to a volatile object.
1293
1294 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1295 argument `table' a pointer to a volatile object.
1296
Jens Claudius2652bd52006-08-18 17:20:37 +000012972006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1298
1299 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1300 variable `_sfnt' as volatile since it must keep its value across
1301 a call to ft_setjmp.
1302 (gxv_validate): Same for local variables `memory' and `valid'.
1303 (classic_kern_validate): Same for local variables `memory',
1304 `ckern', and `valid'.
1305
1306 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1307 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1308 `jstf', and 'valid'.
1309
1310 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1311 local variable `cmap'.
1312
David Turner9fbfc6a2006-08-16 09:11:31 +000013132006-08-16 David Turner <david@freetype.org>
1314
Werner Lemberg12342992006-08-19 11:18:09 +00001315 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1316 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001317
Werner Lemberg12342992006-08-19 11:18:09 +00001318 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1319 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001320
David Turner33f5f242006-08-16 16:50:55 +00001321
Werner Lemberg12342992006-08-19 11:18:09 +00001322 Improvements to native TrueType hinting. This is a first try,
1323 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1324
1325 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1326 `extra_points2'.
1327
1328 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1329 `orus'.
1330
1331 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1332 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1333 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1334 handle `extra_points2'.
1335
1336 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1337 Remove compiler warning.
1338 (cur_to_arg): Remove macro.
1339 (TT_Hint_Glyph): Updated.
1340 (TT_Process_Simple_Glyph): Handle `orus'.
1341
1342 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1343 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1344 (LOC_Ins_IUP): Renamed to...
1345 (IUP_WorkerRec): This.
1346 Add `orus' member.
1347 (Shift): Renamed to...
1348 (_iup_worker_shift): This.
1349 Updated.
1350 (Interp): Renamed to...
1351 (_iup_worker_interpolate): This.
1352 Updated to handle `orus'.
1353 (Ins_IUP): Updated.
1354
1355 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1356 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001357
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013582006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1359
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001360 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001361 build ftvalid in ft2demos. This has been inadvertedly changed
1362 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001363
13642006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1365
Werner Lemberg12342992006-08-19 11:18:09 +00001366 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1367 Jens:
1368 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001369
Werner Lemberg12342992006-08-19 11:18:09 +00001370 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1371 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001372
1373 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1374
Jens Claudius9950adc2006-08-13 12:14:36 +000013752006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1376
Werner Lemberg12342992006-08-19 11:18:09 +00001377 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1378 T1_TOKEN_TYPE_KEY.
1379 (T1_FieldRec): Add `dict'.
1380 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1381 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1382 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001383
Werner Lemberg12342992006-08-19 11:18:09 +00001384 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1385 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001386
1387 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1388
1389 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001390 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1391 not T1_TOKEN_TYPE_ANY.
1392 (ps_parser_load_field): Make sure a token that should be a string or
1393 name is really a string or name.
1394 Avoid memory leak if a keyword has been already encountered and its
1395 value is overwritten.
1396 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1397 T1_FIELD_XXX.
1398 (parse_dict): Ignore keywords that occur in the wrong dictionary
1399 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001400
Werner Lemberg12342992006-08-19 11:18:09 +00001401 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1402 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001403
Werner Lemberg12342992006-08-19 11:18:09 +00001404 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1405 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001406
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014072006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1408
1409 Move creation of field `buildchar' of T1_DecoderRec out of
1410 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1411 of it.
1412
1413 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1414 and `T1_Compute_Max_Advance'.
1415
1416 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1417 Remove field `face', add `len_buildchar'.
1418
1419 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1420 field `buildchar'.
1421
1422 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1423 finisher for T1_Decoder.
1424 (cid_slot_load_glyph): Do not ignore failure when initializing the
1425 T1_Decoder.
1426
1427 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1428 Updated.
1429 (t1_decoder_init): Remove initialization of fields `buildchar' and
1430 `len_buildchar'.
1431 (t1_decoder_done): Remove deallocation of field `buildchar'.
1432
1433 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1434 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1435 T1_Decoder.
1436 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1437 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1438 case of error.
1439
1440 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1441 `buildchar' of T1_FaceRec.
1442
1443 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1444 `buildchar' of T1_FaceRec.
1445
Werner Lemberg1a380e02006-07-14 18:28:08 +000014462006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1447
1448 * freetype2/include/freetype/internal/psaux.h: New macros
1449 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1450 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1451 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1452 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1453 (T1_DecoderRec): New fields `buildchar' and `face'.
1454 (IS_PS_TOKEN): New macro.
1455
1456 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1457 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1458
1459 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1460 `default_design_vector' and `num_default_design_vector'.
1461
1462 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1463 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1464 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1465
1466 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1467 `token' argument to be NULL if we want only to count the number of
1468 tokens.
1469 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1470 want to skip the array.
1471 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1472 want to skip the array.
1473
1474 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1475 support for (partially commented out) othersubrs 19-25, 27, and 28.
1476 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1477 (t1_decoder_done): Release new field `buildchar'.
1478
1479 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1480 functions.
1481 (t1_keywords): Register them.
1482 (t1_allocate_blend): Updated.
1483 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1484 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1485 (parse_dict): Remove `keyword_flags' argument.
1486 Use new macro IS_PS_TOKEN.
1487 Changed function so that later PostScript definitions override
1488 earlier ones.
1489 (t1_init_loader): Initialize new field `keywords_encountered'.
1490 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1491 `len_buildchar'.
1492 Remove `keywords_flags'.
1493
1494 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1495 `keywords_encountered'.
1496 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1497
1498 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1499 New entries for parsing /NDV, /CDV, and /DesignVector.
1500
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015012006-07-07 Werner Lemberg <wl@gnu.org>
1502
1503 Add many checks to protect against malformed PCF files.
1504
1505 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1506 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1507
1508 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1509 data and check that tables don't overlap (using a simple
1510 bubblesort).
1511 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1512 New macros which give the size of data structures in the data
1513 stream.
1514 (pcf_get_properties): Use rough estimates to get array size limits.
1515 Assign `face->nprops' and `face->properties' earlier so that a call
1516 to PCF_Face_Done can do the clean-up in case of error.
1517 Protect against invalid string offsets.
1518 (pcf_get_metrics): Clean up code.
1519 Adjust tracing message levels.
1520 Use rough estimate to get array size limit.
1521 (pcf_get_bitmaps): Clean up code.
1522 Adjust tracing message levels.
1523 Use rough estimates to get offset limits.
1524 (pcf_get_encodings): Adjust tracing message level.
1525 (pcf_get_accel): Clean up code.
1526
Werner Lemberg8eb05252006-06-27 06:20:01 +000015272006-06-26 Werner Lemberg <wl@gnu.org>
1528
1529 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1530 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1531
Werner Lemberg24703f82006-06-26 19:12:51 +000015322006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1533
1534 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1535 (t1_decoder_parse_charstrings): Operator with
1536 opcode 15 pops its two arguments.
1537 Handle the case where the pops of an othersubr may be part of a
1538 subroutine.
1539 Handle unknown othersubrs gracefully: count their operands and let
1540 the following pop operators push the operands as the results onto
1541 the Type1 stack.
1542 Improve handling of setcurrentpoint opcode.
1543
Werner Lembergc011f4c2006-06-26 09:40:00 +000015442006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1545
1546 The Type 1 parser now skips over top-level procedures as required
1547 for a `Simplified Parser'. This makes the parser more robust as it
1548 doesn't poke around in PostScript code. Additionally, it makes the
1549 FontDirectory hackery in src/type1/t1load.c unnecessary.
1550
1551 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1552 (skip_literal_string): Add FT_Error as return value.
1553 Handle escapes better.
1554 (skip_string): Add FT_Error as return value.
1555 Don't set `parser->error' but return error code directly.
1556 (skip_procedure): New function.
1557 (ps_parser_skip_PS_token): Handle procedures.
1558 Update code.
1559 (ps_parser_to_token): Update code.
1560 (ps_parser_load_field_table): Handle bbox entries also.
1561
1562 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1563 Add commented-out code for synthetic fonts.
1564
Werner Lemberga2da05c2006-06-25 06:27:27 +000015652006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1566
1567 Fix two hinting bugs as reported in
1568 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1569
1570 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1571 `first_point' member.
1572
1573 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1574 `first_point'.
1575 (TT_Process_Composite_Glyph): Always untouch points.
1576
1577 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1578 `first_point' and `last_point' in case of composite glyphs.
1579 (Ins_IUP): Fix computation of `end_point'.
1580
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015812006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1582
Werner Lembergef3d2c22006-06-25 06:07:14 +00001583 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1584 Mac. The original patch was written by David Sachitano and Lawrence
1585 Coopet, and modified by Sean McBride for MPW compatibility. Only
1586 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001587
Werner Lembergef3d2c22006-06-25 06:07:14 +00001588 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1589 Mac OS X platforms.
1590 (OS_INLINE): Undefine before definition.
1591 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1592 FontAssociation table in FOND resource.
1593 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1594 and fontSize at each entry of FontAssociation table in FOND
1595 resource.
1596 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1597 ffStylOff of FamilyRecord header of FOND resource, the header,
1598 fontSize, fontID at each entry of FontAssociation table, and
1599 StyleMapping table.
1600 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001601
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016022006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1603
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001604 Public API of TrueTypeGX, OpenType, and classic kern table validator
1605 should return `FT_Err_Unimplemented_Feature' if validation service
1606 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001607 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001608 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1609
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001610 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1611 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1612 unavailable.
1613 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1614 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001615
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001616 * src/base/ftotval.c (FT_OpenType_Validate): Return
1617 FT_Err_Unimplemented_Feature if OpenType validation service is
1618 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001619
Werner Lembergb10e45a2006-06-08 07:32:56 +000016202006-06-08 Werner Lemberg <wl@gnu.org>
1621
1622 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1623 errors.
1624
David Turner5f1f7502006-06-07 05:11:50 +000016252006-06-07 David Turner <david@freetype.org>
1626
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001627 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1628 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1629 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001630
David Turner457b4a82006-06-06 08:14:14 +000016312006-06-06 David Turner <david@freetype.org>
1632
Werner Lemberg4836f952006-06-06 12:54:08 +00001633 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001634
Werner Lemberg4836f952006-06-06 12:54:08 +00001635 We change `ps_unicodes_init' so that it also takes a
1636 `free_glyph_name' callback to release the glyph names returned by
1637 `get_glyph_name'
1638
1639 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1640 Renamed to ...
1641 (PS_GetGlyphNameFunc): This.
1642 (PS_FreeGlyphNameFunc): New typedef.
1643 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1644
1645 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1646 argument.
1647 (cff_sid_free_glyph_name): New function.
1648 (cff_cmap_unicode_init): Updated.
1649
1650 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1651
1652 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1653 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001654
1655
David Turner09717352006-06-04 14:33:08 +000016562006-06-04 David Turner <david@freetype.org>
1657
Werner Lembergd724f202006-06-04 15:17:41 +00001658 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1659 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001660 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001661
Werner Lembergd724f202006-06-04 15:17:41 +00001662 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1663 of `face->num_glyphs' which missed the last glyph, due to
1664 the offset-by-1 computation, since the PFR format doesn't
1665 guarantee that glyph index 0 corresponds to the `missing
1666 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001667
Werner Lemberg33779662006-05-26 06:30:05 +000016682006-05-25 Werner Lemberg <wl@gnu.org>
1669
1670 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1671 `-no-undefined'. Reported by Christian Biesinger.
1672
Werner Lemberg24773d62006-05-20 08:53:13 +000016732006-05-19 Brian Weed <bw@imaginengine.com>
1674
1675 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1676 have debug information, and debug libraries use `C7 compatible'
1677 debug info.
1678
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016792006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1680
Werner Lemberga6523a62006-05-20 08:47:01 +00001681 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001682 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001683
Werner Lemberga6523a62006-05-20 08:47:01 +00001684 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1685 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001686
1687 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001688 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001689
16902006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1691
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001692 * build/unix/configure.raw: Add a fallback to disable Carbon
1693 dependency, if configured with no options on Mac OS X.
1694
16952006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1696
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001697 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001698 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001699 the second part of Savannah bug #16590.
1700
Werner Lemberg545c4e52006-05-17 22:55:04 +000017012006-05-18 Werner Lemberg <wl@gnu.org>
1702
1703 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1704 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1705
David Turnerdc3ff312006-05-17 12:59:35 +000017062006-05-17 David Turner <david@freetype.org>
1707
Werner Lemberg545c4e52006-05-17 22:55:04 +00001708 This is a major patch used to drastically improve the performance of
1709 loading glyphs. This both speeds up loading the glyph vectors
1710 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001711
Werner Lemberg545c4e52006-05-17 22:55:04 +00001712 We now use inline assembler code with GCC to implement `FT_MulFix',
1713 which is probably the most important function related to the
1714 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001715
Werner Lemberg545c4e52006-05-17 22:55:04 +00001716 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001717
1718
Werner Lemberg545c4e52006-05-17 22:55:04 +00001719 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1720 `cursor' and `limit'.
1721
1722 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1723 New functions.
1724 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1725 [TEST]: Remove.
1726
1727 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1728 code.
1729
1730 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1731 `FT_ZERO'
1732 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1733 (af_glyph_hints_reload: Rewrite recognition of weak points.
1734
1735 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1736 constant values out of the loops.
1737
1738 * src/autofit/aftypes.h: Updated.
1739
1740 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1741
1742 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1743 product to get orientation.
1744
1745 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1746 (FT_Stream_OpenGzip): Use it to handle small files directly in
1747 memory.
1748
1749 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1750 Improve performance.
1751
1752 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1753 `limit'.
1754
1755 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1756 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1757 exceedingly large values of number of contours. Speed up by
1758 reducing the number of loops.
1759
1760 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1761
1762
1763 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1764 used to detect rogue clients from 4 to 16. This is to prevent some
1765 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1766 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001767
Werner Lembergde2d90a2006-05-17 08:54:30 +000017682007-05-17 Werner Lemberg <wl@gnu.org>
1769
1770 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001771 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001772
17732006-05-16 Werner Lemberg <wl@gnu.org>
1774
1775 * docs/PROBLEMS: Updated icl issues.
1776
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001777----------------------------------------------------------------------------
1778
Werner Lemberg42b63b22007-01-21 21:01:33 +00001779Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001780David Turner, Robert Wilhelm, and Werner Lemberg.
1781
1782This file is part of the FreeType project, and may only be used, modified,
1783and distributed under the terms of the FreeType project license,
1784LICENSE.TXT. By continuing to use, modify, or distribute this file you
1785indicate that you have read the license and understand and accept it
1786fully.
1787
1788
1789Local Variables:
1790version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001791coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001792End: