blob: d8ce492ec60bf9d72f3c11124e02a046b569c390 [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000012007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
3 * builds/unix/ftconfig.in: disable Carbon framework dependency on
4 64bit ABI on Mac OS X 10.4.x (ppc & i386), found by Sean McBride.
5 * builds/vms/ftconfig.h: Ditto.
6 * include/freetype/config/ftconfig.h: Ditto.
7
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000082007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
9
Werner Lemberg14ffe092007-03-22 06:12:43 +000010 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
11 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000012 proposed by Sean McBride:
13 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
14
152007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
16
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000017 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
18 setjmp, proposed by Sean McBride:
19 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
20
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000212007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
22
Werner Lembergc9f6c662007-03-21 13:30:14 +000023 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
24 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
25 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000026
David Turner74c34eb2007-03-18 07:19:31 +0000272007-03-18 David Turner <david@freetype.org>
28
Werner Lembergc9f6c662007-03-21 13:30:14 +000029 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
30 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000031
Werner Lembergc9f6c662007-03-21 13:30:14 +000032 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000033
David Turner89020d92007-03-17 17:48:57 +0000342007-03-17 David Turner <david@freetype.org>
35
Werner Lembergc9f6c662007-03-21 13:30:14 +000036 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
37 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000038
Werner Lemberg25d592a2007-03-09 07:59:35 +0000392007-03-09 Werner Lemberg <wl@gnu.org>
40
41 * Version 2.3.2 released.
42 =========================
43
44
45 Tag sources with `VER-2-3-2'.
46
47 * builds/win32/visualc/index.html,
48 builds/win32/visualc/freetype.dsp,
49 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
50 s/231/232/.
51
David Turner3a51afa2007-03-08 10:50:38 +0000522007-03-08 David Turner <david@freetype.org>
53
Werner Lemberg25d592a2007-03-09 07:59:35 +000054 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000055
Werner Lemberg25d592a2007-03-09 07:59:35 +000056 * builds/unix/configure.raw (version_info): Set to 9:13:3.
57
58 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
59
60 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000061
Werner Lemberg1e259de2007-03-08 15:39:21 +000062 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
63 function to work properly, over-writing user-provided buffers in
64 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000065
David Turner121cad52007-03-08 16:43:50 +000066
Werner Lemberg3d92f082007-03-06 11:59:24 +0000672007-03-05 Werner Lemberg <wl@gnu.org>
68
69 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
70 macro for `strstr'.
71
72 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
73 `trick_names', as suggested by Ivan Nincic.
74
David Turner085bc6e2007-03-05 17:40:03 +0000752007-03-05 David Turner <david@freetype.org>
76
Werner Lembergd112cf02007-03-06 12:06:56 +000077 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
78 case FT_Init_FreeType fails for some reason. Problem reported by
79 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000080
Werner Lembergd112cf02007-03-06 12:06:56 +000081 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
82 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
83 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
84 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000085
Werner Lembergd112cf02007-03-06 12:06:56 +000086 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
87 signed values, not unsigned ones. Problem reported by Johannes
88 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000089
David Turner601aefe2007-02-21 16:47:49 +0000902007-02-21 David Turner <david@freetype.org>
91
Werner Lembergde5e6862007-02-25 21:06:43 +000092 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
93 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000094
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000952007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
96
97 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
98 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
99 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
100
Werner Lemberga0915172007-02-16 08:12:50 +00001012007-02-16 Werner Lemberg <wl@gnu.org>
102
103 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
104 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
105
David Turner2c4500e2007-02-14 15:08:47 +00001062007-02-14 David Turner <david@freetype.org>
107
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000108 It seems that the following changes fix most of the known
109 interpreter problems with my fonts, but more testing is needed,
110 though.
111
112 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
113 (TT_MulFix14): Rewrite.
114 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
115 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000116
Werner Lembergc6a14082007-02-12 22:08:15 +00001172007-02-12 Werner Lemberg <wl@gnu.org>
118
119 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
120 warnings.
121
122 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
123 (bdf_interpret_style): Ditto.
124
David Turnerc0f9c4a2007-02-12 14:55:03 +00001252007-02-12 David Turner <david@freetype.org>
126
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000127 Simplify projection and dual-projection code interface.
128
Werner Lemberg406d25f2007-02-12 22:01:18 +0000129 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
130 FT_Vector' as argument type.
131 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
132 Updated.
133 (CUR_fast_project, CUR_fast_dualproj): New macros.
134 (Project, Dual_Project, Project_x, Project_y): Updated.
135 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
136 macros.
137
138
139 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
140 adjustments for the non-light auto-hinted modes. Gets rid of
141 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000142
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000143 * src/autofit/aflatin.c (af_latin_hints_link_segments,
144 af_latin_hints_compute_edges): Slight optimization of the segment
145 linker and better handling of serif segments to get rid of broken
146 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000147
David Turnerc0f9c4a2007-02-12 14:55:03 +0000148
Werner Lemberg442bfb82007-02-12 21:44:10 +0000149 Introduce new string functions and the corresponding macros to get
150 rid of various uses of strcpy and other `evil' functions, as well as
151 to simplify a few things.
152
153 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
154 ft_mem_strcpyn): New declarations.
155 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
156 macros.
157 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
158 functions.
159
160 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
161 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
162 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
163 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
164 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
165 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
166 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
167 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000168
Werner Lemberg406d25f2007-02-12 22:01:18 +0000169 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
170
Werner Lemberg582067d2007-02-11 15:03:05 +00001712007-02-11 Werner Lemberg <wl@gnu.org>
172
173 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
174 non-spacing glyphs.
175
Werner Lemberg8f474532007-02-07 08:31:01 +00001762007-02-07 Tom Parker <palfrey@tevp.net>
177
178 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
179 pointer.
180
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001812007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
182
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000183 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
184 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000185 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000186 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
187 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
188 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
189 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000190
191 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
192 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000193 * builds/mac/ftmac.c: Ditto.
194
1952007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
196
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000197 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000198 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000199 #include <ftmac.c>.
200
2012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
202
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000203 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
204 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
205 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
206 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
207 FT_GetFilePath_From_Mac_ATS_Name.
208 * builds/mac/ftmac.c: Ditto.
209
2102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
211
Werner Lembergdcbb7082007-02-08 08:54:09 +0000212 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000213 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
214 for passing to FT_New_Face_From_FSSpec.
215
2162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
217
Werner Lembergdcbb7082007-02-08 08:54:09 +0000218 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000219 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000220
221 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
222 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000223 * builds/mac/ftmac.c (OS_INLINE): Ditto.
224
Werner Lemberg313d7772007-02-01 08:10:45 +00002252007-02-01 Werner Lemberg <wl@gnu.org>
226
227 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
228 Explain why applications shouldn't use it. Found by Alexei.
229
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002302007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000231
232 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
233 message.
234
235 * src/gxvalid/gxvmort1.c
236 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
237 message.
238
Werner Lemberg53935932007-01-31 08:53:02 +00002392007-01-31 Werner Lemberg <wl@gnu.org>
240
241
242 * Version 2.3.1 released.
243 =========================
244
245
246 Tag sources with `VER-2-3-1-FINAL'.
247
248 * builds/win32/visualc/freetype.dsp,
249 builds/win32/visualc/freetype.vcproj: s/230/231/.
250 * builds/win32/visualc/index.html: s/221/231/.
251
252 * vms_make.com: Add `ftgasp'.
253
David Turnera7ee6082007-01-30 10:33:53 +00002542007-01-30 David Turner <david@freetype.org>
255
Werner Lemberg53935932007-01-31 08:53:02 +0000256 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000257
Werner Lemberg53935932007-01-31 08:53:02 +0000258 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000259
Werner Lemberg25d592a2007-03-09 07:59:35 +0000260 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000261 s/2.3.0/2.3.1/.
262
263 * builds/unix/configure.raw (version_info): Set to 9:12:3.
264
265
266 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
267 (af_loader_load_g): Disable the warper (i.e., the light hinting
268 improvements) to make a 2.3.1 bugfix release before introducing a
269 new feature. This should give us more time to tune and improve the
270 warper for the next release.
271
272 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000273
David Turnerd91eebd2007-01-26 15:05:41 +00002742007-01-25 David Turner <david@freetype.org>
275
Werner Lembergbf241762007-01-26 16:08:49 +0000276 For light auto-hinting, improve glyph advance widths and resurrect
277 normal/full hinting to its normal quality.
278
279 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
280 and `xmax_delta'.
281 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
282 and `xmax_delta'.
283
284 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
285 preprocessor conditional with if-clause, handling both light and
286 normal mode.
287
288 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
289 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000290
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002912007-01-25 Werner Lemberg <wl@gnu.org>
292
293 * docs/release: Updated -- Savannah uses a new uploading scheme.
294
David Turnera42567b2007-01-25 12:23:37 +00002952007-01-25 David Turner <david@freetype.org>
296
Werner Lembergd7855662007-01-25 13:53:56 +0000297 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000298
Werner Lembergd7855662007-01-25 13:53:56 +0000299 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
300 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
301 functions.
David Turnera42567b2007-01-25 12:23:37 +0000302
Werner Lembergd7855662007-01-25 13:53:56 +0000303 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000304
Werner Lembergb1be9e82007-01-25 11:50:00 +00003052007-01-25 Werner Lemberg <wl@gnu.org>
306
307 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000308 correctly in a sanity check. Since this function is only used to
309 load local and global functions, any charstring that called the last
310 local/global function would fail otherwise. This fixes Savannah bug
311 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000312
313 * docs/CHANGES: Document it.
314
David Turnerb6de8d12007-01-23 15:51:50 +00003152007-01-23 David Turner <david@freetype.org>
316
Werner Lembergb1be9e82007-01-25 11:50:00 +0000317 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
318 prevented compilation when disabling both the unpatented and the
319 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000320
Werner Lembergb1be9e82007-01-25 11:50:00 +0000321
322 Fix and enable the warper to improve `light' hinting mode. This is
323 not necessarily a final version, but it seems to work well.
324
325 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
326 Disable code.
327 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
328 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
329
330 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
331 (af_warper_compute_line_best): Fix array size of `scores'.
332 (af_warper_compute): Better handling of border cases.
333 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
334 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000335
Werner Lemberg011d1112007-01-21 09:36:00 +00003362007-01-21 Werner Lemberg <wl@gnu.org>
337
Werner Lemberg42b63b22007-01-21 21:01:33 +0000338 * ChangeLog: Split off older entries into...
339 * ChangeLog.22: This new file.
340
3412007-01-21 Werner Lemberg <wl@gnu.org>
342
Werner Lemberg555258f2007-01-21 09:46:37 +0000343 * docs/CHANGES: Document SHZ fix.
344
3452007-01-21 George Williams <gww@silcom.com>
346
347 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
348 points.
349
3502007-01-21 Werner Lemberg <wl@gnu.org>
351
Werner Lemberg011d1112007-01-21 09:36:00 +0000352 * src/sfnt/ttmtx.c (tt_face_get_metrics)
353 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
354
Werner Lemberg87a5a432007-01-17 12:44:39 +00003552007-01-17 Werner Lemberg <wl@gnu.org>
356
Werner Lembergb8003292007-01-17 12:56:25 +0000357
358 * Version 2.3.0 released.
359 =========================
360
361
362 Tag sources with `VER-2-3-0-FINAL'.
363
3642007-01-17 Werner Lemberg <wl@gnu.org>
365
Werner Lemberg87a5a432007-01-17 12:44:39 +0000366 * docs/release: Updated.
367
David Turner22122722007-01-16 20:06:44 +00003682007-01-16 David Turner <david@freetype.org>
369
Werner Lemberg87a5a432007-01-17 12:44:39 +0000370 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
371 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
372 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
373 warnings.
David Turner22122722007-01-16 20:06:44 +0000374
Werner Lemberg267e1d72007-01-15 07:48:09 +00003752007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
376
377 * builds/amiga/makefile, builds/amiga/makefile.os4,
378 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
379
380 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
381
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003822007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
383
384 Fix various compiler warnings.
385
386 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
387 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
388 s/index/strike_index/.
389 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
390
391 * src/gxvalid/gxvmorx5.c
392 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
393
394 * src/truetype/ttinterp.c (Compute_Point_Displacement),
395 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
396 uninitialized variables.
397
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003982007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
399
400 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
401
Werner Lemberg281c1482007-01-13 22:50:51 +00004022007-01-13 Werner Lemberg <wl@gnu.org>
403
404 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
405 versions up to 0x3FF without complaining.
406
Werner Lembergac250b22007-01-13 14:01:36 +00004072007-01-13 Derek Clegg <dclegg@apple.com>
408
409 Add FT_Get_PS_Font_Info interface to CFF driver.
410
411 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
412 (CFF_FontRec): Add `font_info' field.
413
414 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
415 (cff_font_done): Free font->font_info if necessary.
416
417 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
418 (cff_service_ps_info): Register cff_ps_get_font_info.
419
Werner Lemberg23df31a2007-01-13 08:45:00 +00004202007-01-13 Werner Lemberg <wl@gnu.org>
421
422 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
423 with C++ compiler.
424
425 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
426 af_glyph_hints_dump_edges): Ditto.
427
428 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
429 `modules.cfg').
430
431 * src/sfnt/ttsbit0.h: Remove.
432
433 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
434
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004352007-01-12 David Turner <david@freetype.org>
436
437 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
438 bug in the bitmap emboldener if the pitch of the source bitmap is
439 much larger than its width.
440
441 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
442 compilation warning.
443
Werner Lemberg6d96d312007-01-12 10:30:19 +00004442007-01-12 Werner Lemberg <wl@gnu.org>
445
446 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
447 `automake' CVS module from sources.redhat.com.
448
Werner Lemberg17432b52007-01-12 09:28:44 +00004492007-01-11 Werner Lemberg <wl@gnu.org>
450
451 * src/type1/t1load.c (is_space): Removed.
452 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
453 (parse_charstrings): Use IS_PS_TOKEN.
454
455
456 * autogen.sh: Avoid bash specific syntax.
457
David Turner038ace22007-01-11 15:00:59 +00004582007-01-11 David Turner <david@freetype.org>
459
Werner Lemberg17432b52007-01-12 09:28:44 +0000460 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000461
Werner Lemberg17432b52007-01-12 09:28:44 +0000462 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000463
Werner Lemberg17432b52007-01-12 09:28:44 +0000464 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
465 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000466 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000467
Werner Lemberg17432b52007-01-12 09:28:44 +0000468 * autogen.sh: Small fix to get it working on Mac OS X properly:
469 The issue is that GNU libtool is called `glibtool' on this platform,
470 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000471
David Turner2628ea92007-01-10 13:15:56 +00004722007-01-10 David Turner <david@freetype.org>
473
Werner Lemberg17432b52007-01-12 09:28:44 +0000474 * all-sources: Tag all sources with VER-2-3-0-RC1 and
475 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000476
Werner Lemberg17432b52007-01-12 09:28:44 +0000477 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
478 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
479 version number to 2.3.0.
480
481 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
482 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000483
484 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000485 include/freetype/ftlcdfil.h: Update reference documentation with
486 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000487
Werner Lemberg17432b52007-01-12 09:28:44 +0000488 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
489 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000490
Werner Lembergbf02d392007-01-10 07:07:37 +00004912007-01-10 Derek Clegg <dclegg@apple.com>
492
493 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
494 values.
495
David Turnerf48b60e2007-01-08 15:15:32 +00004962007-01-08 David Turner <david@freetype.org>
497
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000498 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000499
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000500 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
501 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000502 corresponding to a given character pixel size.
503
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000504 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
505 `gasp' table, in order to avoid potential problems with later
506 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000507
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000508 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
509 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000510
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000511 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
512 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
513 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
514 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000515
Werner Lemberge6b6f372007-01-07 00:06:47 +00005162007-01-07 Werner Lemberg <wl@gnu.org>
517
Werner Lembergb8004d22007-01-07 09:13:38 +0000518 * src/cid/cidparse.c (cid_parser_new): Improve error message for
519 Type 11 fonts.
520 Scan for `/sfnts' token.
521
5222007-01-07 Werner Lemberg <wl@gnu.org>
523
524 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000525
Werner Lembergbe5f7972007-01-06 07:51:48 +00005262007-01-06 Werner Lemberg <wl@gnu.org>
527
528 * src/cff/cffload.c (cff_index_init): Remove unused variable.
529 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
530
David Turnera8cf42b2007-01-04 16:46:46 +00005312007-01-04 David Turner <david@freetype.org>
532
Werner Lembergf6294392007-01-06 07:47:45 +0000533 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
534 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000535
Werner Lembergf6294392007-01-06 07:47:45 +0000536
537 Do not allocate interpreter-specific tables in memory if we are not
538 going to load glyphs with the bytecode interpreter anyway.
539
540 * src/truetype/ttgload.c (tt_loader_init): Load execution context
541 only if glyph is hinted.
542 Updated.
543 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
544 and `cvs_ready'.
545 Add `tt_size_ready_bytecode' declaration.
546 * src/truetype/ttobjs.c (tt_size_done_bytecode,
547 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
548 (tt_size_init): Move most code into `tt_size_init_bytecode'.
549 (tt_size_done): Move most code into `tt_size_done_bytecode'.
550 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000551
David Turner91a34022007-01-05 14:47:08 +0000552
Werner Lembergf6294392007-01-06 07:47:45 +0000553 Don't extract the metrics table from the SFNT font file. Instead,
554 reparse it on each glyph load. The runtime difference is not
555 noticeable, and it can save a lot of heap memory when memory-mapped
556 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000557
Werner Lembergf6294392007-01-06 07:47:45 +0000558 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
559 `horz_metrics_offset' and `vert_metrics_ofset'.
560 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
561 Updated.
562
563
564 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
565
566
567 Do not load the CFF index offsets into memory, since this wastes a
568 *lot* of heap memory with large Asian CFF fonts. There is no
569 significant performance loss.
570
571 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
572 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
573 `data_size'.
574 (CFF_CharsetRec): Add field `num_glyphs'.
575
576 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
577 cff_charset_cid_to_gindex): New functions.
578 (cff_new_index): Renamed to...
579 (cff_index_init): This. Update all callers.
580 Updated -- some code has been moved to `cff_index_load_offsets'.
581 (cff_done_index): Renamed to...
582 (cff_index_done): This. Update all callers.
583 (cff_index_get_pointers, cff_index_access_element): Updated to use
584 stream offsets.
585 (cff_charset_compute_cids): Set `num_glyphs' field.
586 (cff_encoding_load): Updated.
587
588 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000589
5902007-01-04 David Turner <david@freetype.org>
591
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000592 * docs/INSTALL.UNIX: Simplify some parts, add reference to
593 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000594
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000595 * README.CVS: Add common problem description and solution
596 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000597
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000598 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000599
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000600 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000601
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000602 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000603
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000604 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
605 (TWorker): This.
606 Remove `count_table' and `memory'.
607 Make `grays' a pointer.
608 (TRaster): New structure.
609 (count_table): New static array.
610 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
611 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
612 ft_black_set_mode, ft_black_render): Updated.
613 (ft_black_init): Don't initialize `count_table'.
614 (ft_black_reset): Use the render pool. This saves about 6KB of
615 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000616
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000617 * src/smooth/ftgrays.c (TRaster): Replaced with...
618 (TWorker): This.
619 Remove `memory'.
620 (TRaster): New structure.
621
622 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
623 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
624 gray_render_span, gray_raster_render): Updated.
625 (gray_raster_reset): Use the render pool. This saves about 6KB of
626 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000627
David Turner8a6c44e2007-01-04 17:03:11 +0000628 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
629 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000630 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
631 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
632 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000633
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000634 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
635 Remove a typo that results in no hinting and a memory leak with some
636 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000637
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000638 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000639 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000640 CFF_Faces in it. We need to close all faces before destroying the
641 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000642
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006432007-01-02 Werner Lemberg <wl@gnu.org>
644
645 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
646 Remove compiler warning.
647
David Turner9207e002007-01-02 16:58:13 +00006482007-01-02 David Turner <david@freetype.org>
649
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000650 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000651
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006522006-12-31 Masatake YAMATO <jet@gyve.org>
653
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000654 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
655 function.
656 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000657 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000658 `gxv_kern_subtable_fmt0_pairs_validate'.
659
David Turner115b4422006-12-22 11:37:05 +00006602006-12-22 David Turner <david@freetype.org>
661
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000662 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
663 warnings.
David Turner115b4422006-12-22 11:37:05 +0000664
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000665 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
666 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000667
Werner Lemberg4755bf72006-12-16 08:58:44 +00006682006-12-16 Anders Kaseorg <anders@kaseorg.com>
669
670 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
671 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
672
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006732006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
674
Werner Lemberg9b774e22007-01-16 06:11:27 +0000675 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000676 sync with the modification by Jens Claudius on 2006-08-22; cf.
677 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 +0000678
6792006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
680
681 * src/base/ftmac.c: Specialized for Mac OS X only.
682 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
683 * builds/unix/configure.raw: Ditto. When explicit switches for
684 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
685 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
686
6872006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
688
689 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
690 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
691 instead of src/base/ftmac.c
692 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
693 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
694 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
695 that cannot be built at present.
696
6972006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
698
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000699 * src/base/ftobjs.c: Improvement of resource fork handler for
700 POSIX, cf.
701 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000702 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
703 format or .dfont, to simulate the face index number counted by ftmac.c.
704 (IsMacResource): Return the number of scalable faces correctly.
705
Werner Lembergec5b4502006-12-10 07:51:38 +00007062006-12-10 Werner Lemberg <wl@gnu.org>
707
708 * builds/toplevel.mk (version): Protect against `distclean' target.
709
Werner Lembergb26b3142006-12-09 20:01:43 +00007102006-12-09 Werner Lemberg <wl@gnu.org>
711
712 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
713 or `type'.
714
715 * builds/freetype.mk (version): Extracted from freetype.h, using
716 GNU make's built-in string functions.
717 (refdoc): Use $(version) instead of static version number.
718
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007192006-12-08 Werner Lemberg <wl@gnu.org>
720
721 * builds/toplevel.mk (dist): Extract version number from freetype.h.
722
Werner Lemberg15c29502006-12-09 07:29:54 +00007232006-12-08 Vladimir Volovich <vvv@vsu.ru>
724
725 * src/tools/apinames (State): Remove final comma in structure -- xlc
726 v5 under AIX 4.3 doesn't like this.
727
David Turnerdbf3b432006-12-07 21:18:09 +00007282006-12-07 David Turner <david@freetype.org>
729
Werner Lemberg256a3512006-12-08 06:49:33 +0000730 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
731 to the spacing of auto-fitted glyphs. This only impacts rare
732 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000733
Werner Lemberg11171312006-12-03 09:43:40 +00007342006-12-03 Werner Lemberg <wl@gnu.org>
735
736 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
737
Werner Lemberg960ba592006-12-01 08:20:47 +00007382006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000739
Werner Lemberg960ba592006-12-01 08:20:47 +0000740 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
741 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
742 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000743
David Turner80658e52006-11-28 08:09:20 +0000744
Werner Lemberg960ba592006-12-01 08:20:47 +0000745 * include/freetype/ftxf86.h: Fix and extend comment so that it
746 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000747
Werner Lemberg960ba592006-12-01 08:20:47 +0000748 * include/freetype/ftchapters.h: Add `font_format' section.
749
750
751 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
752 to TOC in index page.
753
7542006-11-28 David Turner <david@freetype.org>
755
756 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
757 trying to render into a zero-width/height bitmap, not an error code.
758
759 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
760
761 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
762 ones instead.
763
764 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
765 variable.
David Turner80658e52006-11-28 08:09:20 +0000766
Werner Lemberg8636c292006-11-26 22:28:13 +00007672006-11-26 Pierre Hanser <hanser@club-internet.fr>
768
769 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
770
Werner Lemberg960ba592006-12-01 08:20:47 +00007712006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000772
Werner Lemberg960ba592006-12-01 08:20:47 +0000773 * src/autofit/afhints.c (af_glyph_hints_dump_points,
774 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
775 Add stubs to link the `ftgrid' test program when debugging is
776 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000777
Werner Lemberg960ba592006-12-01 08:20:47 +00007782006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000779
780 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000781 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
782
783 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
784 Emit more sensible information.
785
786 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
787
788 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
789 rounding of blue values.
790 (af_latin_hints_compute_segments): Hint segment heights.
791 (af_latin_hints_link_segments): Reduce `len_score' value.
792 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
793 value and use `height' member for comparisons.
794 (af_latin_hint_edges): Extend logging message.
795 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000796
Werner Lemberg91959bf2006-11-22 10:36:55 +00007972006-11-22 Werner Lemberg <wl@gnu.org>
798
799 Fix Savannah bug #15553.
800
801 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
802 program after a change from mono to grayscaling (and vice versa).
803 Use correct constant for comparison to get `exec->grayscale'.
804
Werner Lemberg913a3652006-11-19 09:19:17 +00008052006-11-18 Werner Lemberg <wl@gnu.org>
806
807 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000808 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000809 This patch fixes Savannah bug #18301.
810
811 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
812 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
813 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
814 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
815 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
816 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
817 (FNT_Load_Glyph): Check validity of `glyph_index'.
818
David Turner7bab6ae2006-11-13 11:25:06 +00008192006-11-13 David Turner <david@freetype.org>
820
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000821 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
822 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000823
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000824 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
825 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
826 when building the library to change the default LCD filter to be
827 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000828
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000829 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000830
David Turner8765c712006-11-10 16:49:42 +00008312006-11-10 David Turner <david@freetype.org>
832
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000833 * src/smooth/ftsmooth.c: API change for the LCD
834 filter. The FT_LcdFilter value is an enumeration describing which
835 filter to apply, with new values FT_LCD_FILTER_LIGHT and
836 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
837 algorithm which produces strong color fringes for everything
838 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000839
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000840 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
841 second parameter to an enum type.
842
843 * src/base/ftlcdfil.c (USE_LEGACY): Define.
844 (_ft_lcd_filter): Rename to...
845 (_ft_lcd_filter_fir): This.
846 Update parameters.
847 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
848 (FT_Library_Set_LcdFilter): Update parameters.
849 Handle new filter modes.
850
851 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
852 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
853 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
854 callback and update other fields.
855
856 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
857 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
858 Other minor improvements.
859
860 * src/autofit/aflatin.c: Various tiny improvements that drastically
861 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
862 (af_latin_hints_compute_edges): Fix typo.
863 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000864
David Turner4e9cc3c2006-11-09 16:31:52 +00008652006-11-09 David Turner <david@freetype.org>
866
Werner Lemberg49c77a82006-11-09 21:51:57 +0000867 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
868 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000869
Werner Lemberg5e430892006-11-07 09:35:03 +00008702006-11-07 Zhe Su <james.su@gmail.com>
871
872 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
873 also.
874
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008752006-11-03 Werner Lemberg <wl@gnu.org>
876
877 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
878
David Turner40604742006-11-02 16:37:35 +00008792006-11-02 David Turner <david@freetype.org>
880
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000881 Add a few tweaks to better handle serif fonts.
882 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000883
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000884 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
885 segments that are less than 1.5 pixels high. This gets rid of
886 *many* corner cases with serifs.
887 (af_latin_align_linked_edge): Add logging message.
888 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
889 Add logging messages.
890 Handle AF_EDGE_FLAG flag specially.
891
892 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
893 _af_debug_disable_blue_hints, and _af_debug_hints variables.
894
895 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
896 Update external declarations.
897 (af_corner_orientation, af_corner_is_flat): Replaced by...
898
899 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
900 ft_corner_is_flat): These declarations.
901
902 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
903 Comment out. Replaced by...
904
905 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
906 These functions. Update all callers.
907 (FT_Add64) [!FT_LONG64]: Simplify.
908
909 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
910 (af_direction_compute): Add a missing FT_ABS call. This bug caused
911 production of garbage by missing lots of segments.
912
913 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
914
915 * src/autofit/afloader.c (af_loader_init, af_loader_done)
916 [AF_DEBUG]: Set _af_debug_hints.
917
918
919 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
920 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
921 and ft_corner_orientation.
922
923
924 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000925
Werner Lemberge88c5262006-10-24 05:46:26 +00009262006-10-24 Werner Lemberg <wl@gnu.org>
927
928 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
929
930 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
931 as argument.
932
David Turnera1861392006-10-23 16:00:59 +00009332006-10-23 Zhe Su <zsu@novell.com>
934
Werner Lemberg715e96e2006-10-24 05:28:45 +0000935 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
936 better deal with broken Asian fonts with strange glyphs, having
937 self-intersections and other peculiarities. The used algorithm is
938 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000939
David Turnere140f142006-10-23 08:56:57 +00009402006-10-23 David Turner <david@freetype.org>
941
Werner Lemberg715e96e2006-10-24 05:28:45 +0000942 Speed up the CFF font loader. With some large CFF fonts,
943 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000944
Werner Lemberg715e96e2006-10-24 05:28:45 +0000945 * src/cff/cffload.c (cff_get_offset): Removed.
946 (cff_new_index): Inline functionality of `cff_get_offset'.
947 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
948 (cff_charset_done): Call `cff_charset_free_cids'.
949 (cff_charset_load): Call `cff_charset_compute_cids'.
950 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
951
952 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
953 with FT_NEXT_XXX.
954
955
956 Speed up the Postscript hinter, with more than 100% speed increase
957 on my machine.
958
959 * src/pshinter/pshalgo.c (psh_corner_is_flat,
960 psh_corner_orientation): New functions.
961 (psh_glyph_compute_inflections): Merge loops for efficiency.
962 Use `psh_corner_orientation'.
963 (psh_glyph_init): Use `psh_corner_is_flat'.
964 (psh_hint_table_find_strong_point): Renamed to...
965 (psh_hint_table_find_strong_points): This.
966 Rewrite, adding argument to handle all points at once.
967 Update all callers.
968 (PSH_MAX_STRONG_INTERNAL): New macro.
969 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000970
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009712006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
972
973 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000974 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000975
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009762006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
977
978 * docs/INSTALL.CROSS: New document file for cross-building.
979
980 * builds/unix/configure.raw: Preliminary cross-building support.
981 Find native C compiler and pass it by CC_BUILD, and
982 find suffix for native executable and pass it by EXEEXT_BUILD.
983 Also suffix for target executable is passed by EXEEXT.
984
Werner Lembergb9e6d692006-10-15 08:58:40 +0000985 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
986 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000987 CC_BUILD and EXEEXT_BUILD.
988
Werner Lembergb9e6d692006-10-15 08:58:40 +0000989 * builds/exports.mk (APINAMES_EXE): Change the extension for
990 apinames from the suffix for target (E) to that for building host
991 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000992
Werner Lemberg82a07e92006-10-12 06:20:44 +00009932006-10-12 Werner Lemberg <wl@gnu.org>
994
995 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
996 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
997 which reference those files.
998
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009992006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1000
Werner Lembergb9e6d692006-10-15 08:58:40 +00001001 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1002 embedded in freetype2.pc and freetype-config. Use it to record
1003 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001004
1005 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1006
1007 * builds/unix/freetype-config.in: Ditto.
1008
Werner Lemberg28e17d92006-10-11 17:27:47 +000010092006-10-11 Werner Lemberg <wl@gnu.org>
1010
1011 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1012 development.
1013
Jens Claudius336d2292006-10-03 08:53:37 +000010142006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1015
1016 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1017 argument to ft_setjmp.
1018
1019 * include/freetype/internal/ftvalid.h: Add comment that
1020 ft_validator_run must not be used.
1021
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010222006-10-01 Werner Lemberg <wl@gnu.org>
1023
1024 * src/base/ftbase.c: Undo change from 2006-09-30.
1025
1026 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1027
10282006-09-30 David Turner <david@freetype.org>
1029
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001030 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1031 s/unpatented_hinting/ignore_unpatented_hinter/.
1032 Update all callers.
1033
1034 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1035 auto-hinting shall be used or not.
1036
1037 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001038
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010392006-09-30 Werner Lemberg <wl@gnu.org>
1040
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001041 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1042 in use).
1043
1044 * src/base/ftbase.c: Include `ftlcdfil.c'.
1045
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010462006-09-29 Werner Lemberg <wl@gnu.org>
1047
1048 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1049 overlapping segments. Bug reported by Stefan Koch.
1050
David Turnerad830712006-09-27 16:20:59 +000010512006-09-28 David Turner <david@freetype.org>
1052
Werner Lemberg2c002e12006-09-29 21:31:53 +00001053 Fix a bug in the automatic unpatented hinting support which prevents
1054 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001055
Werner Lemberg2c002e12006-09-29 21:31:53 +00001056 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1057 s/force_autohint/unpatented_hinting/. Update all callers.
1058
1059 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1060
1061 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001062
David Turner8a317cf2006-09-27 07:52:48 +000010632006-09-27 David Turner <david@freetype.org>
1064
Werner Lemberg2c002e12006-09-29 21:31:53 +00001065 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001066
David Turner8a317cf2006-09-27 07:52:48 +00001067
David Turnere140f142006-10-23 08:56:57 +00001068 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001069 In a default build, the function `FT_Library_SetLcdFilter' returns
1070 `FT_Err_Unimplemented_Feature'; you need to #define
1071 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1072 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001073
Werner Lemberg2c002e12006-09-29 21:31:53 +00001074 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001075
Werner Lemberg2c002e12006-09-29 21:31:53 +00001076 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1077 typedef.
1078 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1079 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001080
Werner Lemberg2c002e12006-09-29 21:31:53 +00001081 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1082 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001083
Werner Lemberg2c002e12006-09-29 21:31:53 +00001084 Handle subpixel rendering.
1085 Simplify function.
1086 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1087 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1088
1089 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1090 pointing to <freetype/ftlcdfil.h>.
1091
1092 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1093 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1094
1095 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001096
Werner Lemberge20df4a2006-09-27 06:29:21 +000010972006-09-26 David Bustin
1098
1099 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1100 correctly. Reported as Savannah bug #17843.
1101
David Turner6f8c6222006-09-26 15:42:44 +000011022006-09-26 David Turner <david@freetype.org>
1103
Werner Lemberg110246c2006-09-26 21:55:44 +00001104 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1105 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1106 horizontal and vertical hinting for the purpose of debugging the
1107 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001108
Werner Lemberg110246c2006-09-26 21:55:44 +00001109 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1110 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001111
Werner Lemberg110246c2006-09-26 21:55:44 +00001112 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1113
1114 * include/freetype/config/ftoption.h, devel/ftoption.h
1115 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1116 we want to compile LCD-optimized rendering code la ClearType) or
1117 not. The macro *must* be disabled in default builds of the library
1118 for patent reasons.
1119
1120 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1121 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1122 isn't defined at compile time. This only changes the content of the
1123 rendered glyph to match the one of normal gray-level rendering,
1124 hence clients should not need to be modified.
1125
1126 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001127
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011282006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1129
1130 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1131 LWFN fails and both are available.
1132
David Turnerf3050052006-09-11 12:00:32 +000011332006-09-11 David Turner <david@freetype.org>
1134
Werner Lembergf9644552006-09-12 13:48:10 +00001135 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1136 report their English names through an Apple Roman
1137 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001138
Werner Lembergf9644552006-09-12 13:48:10 +00001139 If the font uses another name entry with language_id == English, it
1140 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001141
Werner Lembergf9644552006-09-12 13:48:10 +00001142 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1143 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001144
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011452006-09-05 Werner Lemberg <wl@gnu.org>
1146
1147 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001148 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001149 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1150 `HAN NOM B.ttf').
1151
1152 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1153
David Turner772e55d2006-09-05 09:45:15 +000011542006-09-05 David Turner <david@freetype.org>
1155
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001156 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001157
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001158 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1159 (TRaster): Remove `count_ex' and `count_ey'.
1160 (gray_find_cell): Remove 2nd and 3rd argument.
1161 (gray_alloc_cell): Merged with `gray_find_cell'.
1162 (gray_record_cell): Simplify.
1163 (gray_set_cell): Rewrite.
1164 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1165 (gray_render_span): Don't use FT_MEM_SET for small values.
1166 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1167 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1168 bitmap scanline.
1169 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001170
David Turneraa557a92006-09-04 16:42:44 +000011712006-09-04 David Turner <david@freetype.org>
1172
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001173 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1174 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001175
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011762006-09-03 Werner Lemberg <wl@gnu.org>
1177
1178 * devel/ftoption.h: Synchronize with
1179 include/freetype/config/ftoption.h.
1180
1181 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1182 variable declaration.
1183 (gray_convert_glyph): Fix compiler warnings.
1184
David Turner6d79f212006-09-01 14:09:35 +000011852006-09-01 David Turner <david@freetype.org>
1186
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001187 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1188 to recognize a few fonts that require the automatic unpatented
1189 loader.
David Turnerbd502952006-09-01 19:05:24 +00001190
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001191 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1192 rasterizer. The speed improvement is between 15% and 25%, depending
1193 on the font data.
1194
1195 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1196 (TCell): Redefine.
1197 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1198 (gray_init_cells): Updated.
1199 (gray_find_cell, gray_alloc_cell): New functions.
1200 (gray_record_cell): Rewritten to use `gray_find_cell' and
1201 `gray_alloc_cell'.
1202 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1203 QSORT_THRESHOLD):
1204 Removed.
1205 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1206 gray_dump_cells): Removed.
1207 (gray_sweep): Rewritten.
1208 (gray_convert_glyph): Rewrite code which used one of the sorting
1209 functions.
1210 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001211
Werner Lembergd898aed2006-08-29 09:50:34 +000012122006-08-29 Dr. Werner Fink <werner@suse.de>
1213
1214 * configure: Make it possible to handle configure options which
1215 have strings containing spaces.
1216
12172006-08-27 David Turner <david@freetype.org>
1218
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001219 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1220 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1221 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1222
1223 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1224 src/truetype/truetype.c, src/truetype/ttdriver.c,
1225 src/truetype/ttgload.c, src/truetype/ttgload.h,
1226 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1227 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1228 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1229
1230 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1231 member `force_autohint'.
1232
1233 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1234
1235 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1236 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001237
Jens Claudiusa787f452006-08-27 11:26:18 +000012382006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1239
1240 Fix miscellaneous compiler warnings.
1241
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001242 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1243 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001244
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001245 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1246 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1247 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001248
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001249 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1250 volatileness of argument to ft_longjmp. Spotted by Werner
1251 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001252
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001253 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1254 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001255
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001256 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1257 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001258
Werner Lembergc4c35b72006-08-27 08:03:46 +000012592006-08-27 Werner Lemberg <wl@gnu.org>
1260
1261 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1262 Reported by Jens.
1263
Jens Claudius088e44e2006-08-22 14:24:30 +000012642006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001265
Jens Claudius088e44e2006-08-22 14:24:30 +00001266 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001267 about addresses of volatile objects passed as function arguments as
1268 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001269
Werner Lembergc4c35b72006-08-27 08:03:46 +00001270 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1271 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001272
1273 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1274 argument `table' a pointer to a volatile object.
1275
1276 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1277 argument `table' a pointer to a volatile object.
1278
Jens Claudius2652bd52006-08-18 17:20:37 +000012792006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1280
1281 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1282 variable `_sfnt' as volatile since it must keep its value across
1283 a call to ft_setjmp.
1284 (gxv_validate): Same for local variables `memory' and `valid'.
1285 (classic_kern_validate): Same for local variables `memory',
1286 `ckern', and `valid'.
1287
1288 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1289 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1290 `jstf', and 'valid'.
1291
1292 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1293 local variable `cmap'.
1294
David Turner9fbfc6a2006-08-16 09:11:31 +000012952006-08-16 David Turner <david@freetype.org>
1296
Werner Lemberg12342992006-08-19 11:18:09 +00001297 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1298 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001299
Werner Lemberg12342992006-08-19 11:18:09 +00001300 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1301 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001302
David Turner33f5f242006-08-16 16:50:55 +00001303
Werner Lemberg12342992006-08-19 11:18:09 +00001304 Improvements to native TrueType hinting. This is a first try,
1305 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1306
1307 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1308 `extra_points2'.
1309
1310 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1311 `orus'.
1312
1313 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1314 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1315 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1316 handle `extra_points2'.
1317
1318 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1319 Remove compiler warning.
1320 (cur_to_arg): Remove macro.
1321 (TT_Hint_Glyph): Updated.
1322 (TT_Process_Simple_Glyph): Handle `orus'.
1323
1324 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1325 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1326 (LOC_Ins_IUP): Renamed to...
1327 (IUP_WorkerRec): This.
1328 Add `orus' member.
1329 (Shift): Renamed to...
1330 (_iup_worker_shift): This.
1331 Updated.
1332 (Interp): Renamed to...
1333 (_iup_worker_interpolate): This.
1334 Updated to handle `orus'.
1335 (Ins_IUP): Updated.
1336
1337 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1338 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001339
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013402006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1341
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001342 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001343 build ftvalid in ft2demos. This has been inadvertedly changed
1344 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001345
13462006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1347
Werner Lemberg12342992006-08-19 11:18:09 +00001348 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1349 Jens:
1350 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001351
Werner Lemberg12342992006-08-19 11:18:09 +00001352 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1353 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001354
1355 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1356
Jens Claudius9950adc2006-08-13 12:14:36 +000013572006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1358
Werner Lemberg12342992006-08-19 11:18:09 +00001359 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1360 T1_TOKEN_TYPE_KEY.
1361 (T1_FieldRec): Add `dict'.
1362 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1363 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1364 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001365
Werner Lemberg12342992006-08-19 11:18:09 +00001366 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1367 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001368
1369 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1370
1371 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001372 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1373 not T1_TOKEN_TYPE_ANY.
1374 (ps_parser_load_field): Make sure a token that should be a string or
1375 name is really a string or name.
1376 Avoid memory leak if a keyword has been already encountered and its
1377 value is overwritten.
1378 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1379 T1_FIELD_XXX.
1380 (parse_dict): Ignore keywords that occur in the wrong dictionary
1381 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001382
Werner Lemberg12342992006-08-19 11:18:09 +00001383 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1384 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001385
Werner Lemberg12342992006-08-19 11:18:09 +00001386 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1387 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001388
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013892006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1390
1391 Move creation of field `buildchar' of T1_DecoderRec out of
1392 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1393 of it.
1394
1395 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1396 and `T1_Compute_Max_Advance'.
1397
1398 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1399 Remove field `face', add `len_buildchar'.
1400
1401 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1402 field `buildchar'.
1403
1404 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1405 finisher for T1_Decoder.
1406 (cid_slot_load_glyph): Do not ignore failure when initializing the
1407 T1_Decoder.
1408
1409 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1410 Updated.
1411 (t1_decoder_init): Remove initialization of fields `buildchar' and
1412 `len_buildchar'.
1413 (t1_decoder_done): Remove deallocation of field `buildchar'.
1414
1415 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1416 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1417 T1_Decoder.
1418 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1419 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1420 case of error.
1421
1422 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1423 `buildchar' of T1_FaceRec.
1424
1425 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1426 `buildchar' of T1_FaceRec.
1427
Werner Lemberg1a380e02006-07-14 18:28:08 +000014282006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1429
1430 * freetype2/include/freetype/internal/psaux.h: New macros
1431 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1432 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1433 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1434 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1435 (T1_DecoderRec): New fields `buildchar' and `face'.
1436 (IS_PS_TOKEN): New macro.
1437
1438 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1439 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1440
1441 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1442 `default_design_vector' and `num_default_design_vector'.
1443
1444 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1445 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1446 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1447
1448 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1449 `token' argument to be NULL if we want only to count the number of
1450 tokens.
1451 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1452 want to skip the array.
1453 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1454 want to skip the array.
1455
1456 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1457 support for (partially commented out) othersubrs 19-25, 27, and 28.
1458 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1459 (t1_decoder_done): Release new field `buildchar'.
1460
1461 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1462 functions.
1463 (t1_keywords): Register them.
1464 (t1_allocate_blend): Updated.
1465 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1466 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1467 (parse_dict): Remove `keyword_flags' argument.
1468 Use new macro IS_PS_TOKEN.
1469 Changed function so that later PostScript definitions override
1470 earlier ones.
1471 (t1_init_loader): Initialize new field `keywords_encountered'.
1472 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1473 `len_buildchar'.
1474 Remove `keywords_flags'.
1475
1476 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1477 `keywords_encountered'.
1478 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1479
1480 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1481 New entries for parsing /NDV, /CDV, and /DesignVector.
1482
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014832006-07-07 Werner Lemberg <wl@gnu.org>
1484
1485 Add many checks to protect against malformed PCF files.
1486
1487 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1488 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1489
1490 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1491 data and check that tables don't overlap (using a simple
1492 bubblesort).
1493 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1494 New macros which give the size of data structures in the data
1495 stream.
1496 (pcf_get_properties): Use rough estimates to get array size limits.
1497 Assign `face->nprops' and `face->properties' earlier so that a call
1498 to PCF_Face_Done can do the clean-up in case of error.
1499 Protect against invalid string offsets.
1500 (pcf_get_metrics): Clean up code.
1501 Adjust tracing message levels.
1502 Use rough estimate to get array size limit.
1503 (pcf_get_bitmaps): Clean up code.
1504 Adjust tracing message levels.
1505 Use rough estimates to get offset limits.
1506 (pcf_get_encodings): Adjust tracing message level.
1507 (pcf_get_accel): Clean up code.
1508
Werner Lemberg8eb05252006-06-27 06:20:01 +000015092006-06-26 Werner Lemberg <wl@gnu.org>
1510
1511 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1512 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1513
Werner Lemberg24703f82006-06-26 19:12:51 +000015142006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1515
1516 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1517 (t1_decoder_parse_charstrings): Operator with
1518 opcode 15 pops its two arguments.
1519 Handle the case where the pops of an othersubr may be part of a
1520 subroutine.
1521 Handle unknown othersubrs gracefully: count their operands and let
1522 the following pop operators push the operands as the results onto
1523 the Type1 stack.
1524 Improve handling of setcurrentpoint opcode.
1525
Werner Lembergc011f4c2006-06-26 09:40:00 +000015262006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1527
1528 The Type 1 parser now skips over top-level procedures as required
1529 for a `Simplified Parser'. This makes the parser more robust as it
1530 doesn't poke around in PostScript code. Additionally, it makes the
1531 FontDirectory hackery in src/type1/t1load.c unnecessary.
1532
1533 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1534 (skip_literal_string): Add FT_Error as return value.
1535 Handle escapes better.
1536 (skip_string): Add FT_Error as return value.
1537 Don't set `parser->error' but return error code directly.
1538 (skip_procedure): New function.
1539 (ps_parser_skip_PS_token): Handle procedures.
1540 Update code.
1541 (ps_parser_to_token): Update code.
1542 (ps_parser_load_field_table): Handle bbox entries also.
1543
1544 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1545 Add commented-out code for synthetic fonts.
1546
Werner Lemberga2da05c2006-06-25 06:27:27 +000015472006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1548
1549 Fix two hinting bugs as reported in
1550 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1551
1552 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1553 `first_point' member.
1554
1555 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1556 `first_point'.
1557 (TT_Process_Composite_Glyph): Always untouch points.
1558
1559 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1560 `first_point' and `last_point' in case of composite glyphs.
1561 (Ins_IUP): Fix computation of `end_point'.
1562
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015632006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1564
Werner Lembergef3d2c22006-06-25 06:07:14 +00001565 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1566 Mac. The original patch was written by David Sachitano and Lawrence
1567 Coopet, and modified by Sean McBride for MPW compatibility. Only
1568 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001569
Werner Lembergef3d2c22006-06-25 06:07:14 +00001570 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1571 Mac OS X platforms.
1572 (OS_INLINE): Undefine before definition.
1573 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1574 FontAssociation table in FOND resource.
1575 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1576 and fontSize at each entry of FontAssociation table in FOND
1577 resource.
1578 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1579 ffStylOff of FamilyRecord header of FOND resource, the header,
1580 fontSize, fontID at each entry of FontAssociation table, and
1581 StyleMapping table.
1582 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001583
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015842006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1585
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001586 Public API of TrueTypeGX, OpenType, and classic kern table validator
1587 should return `FT_Err_Unimplemented_Feature' if validation service
1588 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001589 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001590 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1591
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001592 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1593 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1594 unavailable.
1595 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1596 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001597
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001598 * src/base/ftotval.c (FT_OpenType_Validate): Return
1599 FT_Err_Unimplemented_Feature if OpenType validation service is
1600 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001601
Werner Lembergb10e45a2006-06-08 07:32:56 +000016022006-06-08 Werner Lemberg <wl@gnu.org>
1603
1604 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1605 errors.
1606
David Turner5f1f7502006-06-07 05:11:50 +000016072006-06-07 David Turner <david@freetype.org>
1608
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001609 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1610 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1611 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001612
David Turner457b4a82006-06-06 08:14:14 +000016132006-06-06 David Turner <david@freetype.org>
1614
Werner Lemberg4836f952006-06-06 12:54:08 +00001615 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001616
Werner Lemberg4836f952006-06-06 12:54:08 +00001617 We change `ps_unicodes_init' so that it also takes a
1618 `free_glyph_name' callback to release the glyph names returned by
1619 `get_glyph_name'
1620
1621 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1622 Renamed to ...
1623 (PS_GetGlyphNameFunc): This.
1624 (PS_FreeGlyphNameFunc): New typedef.
1625 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1626
1627 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1628 argument.
1629 (cff_sid_free_glyph_name): New function.
1630 (cff_cmap_unicode_init): Updated.
1631
1632 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1633
1634 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1635 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001636
1637
David Turner09717352006-06-04 14:33:08 +000016382006-06-04 David Turner <david@freetype.org>
1639
Werner Lembergd724f202006-06-04 15:17:41 +00001640 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1641 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001642 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001643
Werner Lembergd724f202006-06-04 15:17:41 +00001644 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1645 of `face->num_glyphs' which missed the last glyph, due to
1646 the offset-by-1 computation, since the PFR format doesn't
1647 guarantee that glyph index 0 corresponds to the `missing
1648 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001649
Werner Lemberg33779662006-05-26 06:30:05 +000016502006-05-25 Werner Lemberg <wl@gnu.org>
1651
1652 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1653 `-no-undefined'. Reported by Christian Biesinger.
1654
Werner Lemberg24773d62006-05-20 08:53:13 +000016552006-05-19 Brian Weed <bw@imaginengine.com>
1656
1657 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1658 have debug information, and debug libraries use `C7 compatible'
1659 debug info.
1660
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016612006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1662
Werner Lemberga6523a62006-05-20 08:47:01 +00001663 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001664 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001665
Werner Lemberga6523a62006-05-20 08:47:01 +00001666 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1667 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001668
1669 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001670 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001671
16722006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1673
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001674 * build/unix/configure.raw: Add a fallback to disable Carbon
1675 dependency, if configured with no options on Mac OS X.
1676
16772006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1678
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001679 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001680 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001681 the second part of Savannah bug #16590.
1682
Werner Lemberg545c4e52006-05-17 22:55:04 +000016832006-05-18 Werner Lemberg <wl@gnu.org>
1684
1685 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1686 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1687
David Turnerdc3ff312006-05-17 12:59:35 +000016882006-05-17 David Turner <david@freetype.org>
1689
Werner Lemberg545c4e52006-05-17 22:55:04 +00001690 This is a major patch used to drastically improve the performance of
1691 loading glyphs. This both speeds up loading the glyph vectors
1692 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001693
Werner Lemberg545c4e52006-05-17 22:55:04 +00001694 We now use inline assembler code with GCC to implement `FT_MulFix',
1695 which is probably the most important function related to the
1696 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001697
Werner Lemberg545c4e52006-05-17 22:55:04 +00001698 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001699
1700
Werner Lemberg545c4e52006-05-17 22:55:04 +00001701 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1702 `cursor' and `limit'.
1703
1704 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1705 New functions.
1706 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1707 [TEST]: Remove.
1708
1709 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1710 code.
1711
1712 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1713 `FT_ZERO'
1714 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1715 (af_glyph_hints_reload: Rewrite recognition of weak points.
1716
1717 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1718 constant values out of the loops.
1719
1720 * src/autofit/aftypes.h: Updated.
1721
1722 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1723
1724 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1725 product to get orientation.
1726
1727 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1728 (FT_Stream_OpenGzip): Use it to handle small files directly in
1729 memory.
1730
1731 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1732 Improve performance.
1733
1734 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1735 `limit'.
1736
1737 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1738 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1739 exceedingly large values of number of contours. Speed up by
1740 reducing the number of loops.
1741
1742 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1743
1744
1745 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1746 used to detect rogue clients from 4 to 16. This is to prevent some
1747 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1748 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001749
Werner Lembergde2d90a2006-05-17 08:54:30 +000017502007-05-17 Werner Lemberg <wl@gnu.org>
1751
1752 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001753 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001754
17552006-05-16 Werner Lemberg <wl@gnu.org>
1756
1757 * docs/PROBLEMS: Updated icl issues.
1758
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001759----------------------------------------------------------------------------
1760
Werner Lemberg42b63b22007-01-21 21:01:33 +00001761Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001762David Turner, Robert Wilhelm, and Werner Lemberg.
1763
1764This file is part of the FreeType project, and may only be used, modified,
1765and distributed under the terms of the FreeType project license,
1766LICENSE.TXT. By continuing to use, modify, or distribute this file you
1767indicate that you have read the license and understand and accept it
1768fully.
1769
1770
1771Local Variables:
1772version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001773coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001774End: