blob: 429c6d766193a57957dd6b5e9da29364fca61152 [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
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000062007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7
8 * builds/unix/ftconfig.in: disable Carbon framework dependency on
9 64bit ABI on Mac OS X 10.4.x (ppc & i386), found by Sean McBride.
10 * builds/vms/ftconfig.h: Ditto.
11 * include/freetype/config/ftconfig.h: Ditto.
12
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000132007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
14
Werner Lemberg14ffe092007-03-22 06:12:43 +000015 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
16 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000017 proposed by Sean McBride:
18 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
19
202007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
21
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000022 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
23 setjmp, proposed by Sean McBride:
24 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
25
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000262007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
27
Werner Lembergc9f6c662007-03-21 13:30:14 +000028 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
29 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
30 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000031
David Turner74c34eb2007-03-18 07:19:31 +0000322007-03-18 David Turner <david@freetype.org>
33
Werner Lembergc9f6c662007-03-21 13:30:14 +000034 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
35 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000036
Werner Lembergc9f6c662007-03-21 13:30:14 +000037 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000038
David Turner89020d92007-03-17 17:48:57 +0000392007-03-17 David Turner <david@freetype.org>
40
Werner Lembergc9f6c662007-03-21 13:30:14 +000041 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
42 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000043
Werner Lemberg25d592a2007-03-09 07:59:35 +0000442007-03-09 Werner Lemberg <wl@gnu.org>
45
46 * Version 2.3.2 released.
47 =========================
48
49
50 Tag sources with `VER-2-3-2'.
51
52 * builds/win32/visualc/index.html,
53 builds/win32/visualc/freetype.dsp,
54 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
55 s/231/232/.
56
David Turner3a51afa2007-03-08 10:50:38 +0000572007-03-08 David Turner <david@freetype.org>
58
Werner Lemberg25d592a2007-03-09 07:59:35 +000059 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000060
Werner Lemberg25d592a2007-03-09 07:59:35 +000061 * builds/unix/configure.raw (version_info): Set to 9:13:3.
62
63 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
64
65 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000066
Werner Lemberg1e259de2007-03-08 15:39:21 +000067 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
68 function to work properly, over-writing user-provided buffers in
69 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000070
David Turner121cad52007-03-08 16:43:50 +000071
Werner Lemberg3d92f082007-03-06 11:59:24 +0000722007-03-05 Werner Lemberg <wl@gnu.org>
73
74 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
75 macro for `strstr'.
76
77 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
78 `trick_names', as suggested by Ivan Nincic.
79
David Turner085bc6e2007-03-05 17:40:03 +0000802007-03-05 David Turner <david@freetype.org>
81
Werner Lembergd112cf02007-03-06 12:06:56 +000082 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
83 case FT_Init_FreeType fails for some reason. Problem reported by
84 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000085
Werner Lembergd112cf02007-03-06 12:06:56 +000086 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
87 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
88 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
89 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000090
Werner Lembergd112cf02007-03-06 12:06:56 +000091 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
92 signed values, not unsigned ones. Problem reported by Johannes
93 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000094
David Turner601aefe2007-02-21 16:47:49 +0000952007-02-21 David Turner <david@freetype.org>
96
Werner Lembergde5e6862007-02-25 21:06:43 +000097 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
98 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000099
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001002007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
101
102 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
103 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
104 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
105
Werner Lemberga0915172007-02-16 08:12:50 +00001062007-02-16 Werner Lemberg <wl@gnu.org>
107
108 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
109 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
110
David Turner2c4500e2007-02-14 15:08:47 +00001112007-02-14 David Turner <david@freetype.org>
112
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000113 It seems that the following changes fix most of the known
114 interpreter problems with my fonts, but more testing is needed,
115 though.
116
117 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
118 (TT_MulFix14): Rewrite.
119 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
120 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000121
Werner Lembergc6a14082007-02-12 22:08:15 +00001222007-02-12 Werner Lemberg <wl@gnu.org>
123
124 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
125 warnings.
126
127 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
128 (bdf_interpret_style): Ditto.
129
David Turnerc0f9c4a2007-02-12 14:55:03 +00001302007-02-12 David Turner <david@freetype.org>
131
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000132 Simplify projection and dual-projection code interface.
133
Werner Lemberg406d25f2007-02-12 22:01:18 +0000134 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
135 FT_Vector' as argument type.
136 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
137 Updated.
138 (CUR_fast_project, CUR_fast_dualproj): New macros.
139 (Project, Dual_Project, Project_x, Project_y): Updated.
140 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
141 macros.
142
143
144 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
145 adjustments for the non-light auto-hinted modes. Gets rid of
146 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000147
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000148 * src/autofit/aflatin.c (af_latin_hints_link_segments,
149 af_latin_hints_compute_edges): Slight optimization of the segment
150 linker and better handling of serif segments to get rid of broken
151 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000152
David Turnerc0f9c4a2007-02-12 14:55:03 +0000153
Werner Lemberg442bfb82007-02-12 21:44:10 +0000154 Introduce new string functions and the corresponding macros to get
155 rid of various uses of strcpy and other `evil' functions, as well as
156 to simplify a few things.
157
158 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
159 ft_mem_strcpyn): New declarations.
160 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
161 macros.
162 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
163 functions.
164
165 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
166 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
167 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
168 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
169 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
170 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
171 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
172 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000173
Werner Lemberg406d25f2007-02-12 22:01:18 +0000174 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
175
Werner Lemberg582067d2007-02-11 15:03:05 +00001762007-02-11 Werner Lemberg <wl@gnu.org>
177
178 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
179 non-spacing glyphs.
180
Werner Lemberg8f474532007-02-07 08:31:01 +00001812007-02-07 Tom Parker <palfrey@tevp.net>
182
183 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
184 pointer.
185
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001862007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
187
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000188 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
189 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000190 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000191 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
192 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
193 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
194 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000195
196 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
197 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000198 * builds/mac/ftmac.c: Ditto.
199
2002007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
201
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000202 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000203 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000204 #include <ftmac.c>.
205
2062007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
207
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000208 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
209 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
210 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
211 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
212 FT_GetFilePath_From_Mac_ATS_Name.
213 * builds/mac/ftmac.c: Ditto.
214
2152007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
216
Werner Lembergdcbb7082007-02-08 08:54:09 +0000217 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000218 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
219 for passing to FT_New_Face_From_FSSpec.
220
2212007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
222
Werner Lembergdcbb7082007-02-08 08:54:09 +0000223 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000224 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000225
226 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
227 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000228 * builds/mac/ftmac.c (OS_INLINE): Ditto.
229
Werner Lemberg313d7772007-02-01 08:10:45 +00002302007-02-01 Werner Lemberg <wl@gnu.org>
231
232 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
233 Explain why applications shouldn't use it. Found by Alexei.
234
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002352007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000236
237 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
238 message.
239
240 * src/gxvalid/gxvmort1.c
241 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
242 message.
243
Werner Lemberg53935932007-01-31 08:53:02 +00002442007-01-31 Werner Lemberg <wl@gnu.org>
245
246
247 * Version 2.3.1 released.
248 =========================
249
250
251 Tag sources with `VER-2-3-1-FINAL'.
252
253 * builds/win32/visualc/freetype.dsp,
254 builds/win32/visualc/freetype.vcproj: s/230/231/.
255 * builds/win32/visualc/index.html: s/221/231/.
256
257 * vms_make.com: Add `ftgasp'.
258
David Turnera7ee6082007-01-30 10:33:53 +00002592007-01-30 David Turner <david@freetype.org>
260
Werner Lemberg53935932007-01-31 08:53:02 +0000261 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000262
Werner Lemberg53935932007-01-31 08:53:02 +0000263 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000264
Werner Lemberg25d592a2007-03-09 07:59:35 +0000265 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000266 s/2.3.0/2.3.1/.
267
268 * builds/unix/configure.raw (version_info): Set to 9:12:3.
269
270
271 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
272 (af_loader_load_g): Disable the warper (i.e., the light hinting
273 improvements) to make a 2.3.1 bugfix release before introducing a
274 new feature. This should give us more time to tune and improve the
275 warper for the next release.
276
277 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000278
David Turnerd91eebd2007-01-26 15:05:41 +00002792007-01-25 David Turner <david@freetype.org>
280
Werner Lembergbf241762007-01-26 16:08:49 +0000281 For light auto-hinting, improve glyph advance widths and resurrect
282 normal/full hinting to its normal quality.
283
284 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
285 and `xmax_delta'.
286 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
287 and `xmax_delta'.
288
289 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
290 preprocessor conditional with if-clause, handling both light and
291 normal mode.
292
293 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
294 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000295
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002962007-01-25 Werner Lemberg <wl@gnu.org>
297
298 * docs/release: Updated -- Savannah uses a new uploading scheme.
299
David Turnera42567b2007-01-25 12:23:37 +00003002007-01-25 David Turner <david@freetype.org>
301
Werner Lembergd7855662007-01-25 13:53:56 +0000302 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000303
Werner Lembergd7855662007-01-25 13:53:56 +0000304 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
305 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
306 functions.
David Turnera42567b2007-01-25 12:23:37 +0000307
Werner Lembergd7855662007-01-25 13:53:56 +0000308 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000309
Werner Lembergb1be9e82007-01-25 11:50:00 +00003102007-01-25 Werner Lemberg <wl@gnu.org>
311
312 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000313 correctly in a sanity check. Since this function is only used to
314 load local and global functions, any charstring that called the last
315 local/global function would fail otherwise. This fixes Savannah bug
316 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000317
318 * docs/CHANGES: Document it.
319
David Turnerb6de8d12007-01-23 15:51:50 +00003202007-01-23 David Turner <david@freetype.org>
321
Werner Lembergb1be9e82007-01-25 11:50:00 +0000322 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
323 prevented compilation when disabling both the unpatented and the
324 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000325
Werner Lembergb1be9e82007-01-25 11:50:00 +0000326
327 Fix and enable the warper to improve `light' hinting mode. This is
328 not necessarily a final version, but it seems to work well.
329
330 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
331 Disable code.
332 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
333 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
334
335 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
336 (af_warper_compute_line_best): Fix array size of `scores'.
337 (af_warper_compute): Better handling of border cases.
338 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
339 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000340
Werner Lemberg011d1112007-01-21 09:36:00 +00003412007-01-21 Werner Lemberg <wl@gnu.org>
342
Werner Lemberg42b63b22007-01-21 21:01:33 +0000343 * ChangeLog: Split off older entries into...
344 * ChangeLog.22: This new file.
345
3462007-01-21 Werner Lemberg <wl@gnu.org>
347
Werner Lemberg555258f2007-01-21 09:46:37 +0000348 * docs/CHANGES: Document SHZ fix.
349
3502007-01-21 George Williams <gww@silcom.com>
351
352 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
353 points.
354
3552007-01-21 Werner Lemberg <wl@gnu.org>
356
Werner Lemberg011d1112007-01-21 09:36:00 +0000357 * src/sfnt/ttmtx.c (tt_face_get_metrics)
358 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
359
Werner Lemberg87a5a432007-01-17 12:44:39 +00003602007-01-17 Werner Lemberg <wl@gnu.org>
361
Werner Lembergb8003292007-01-17 12:56:25 +0000362
363 * Version 2.3.0 released.
364 =========================
365
366
367 Tag sources with `VER-2-3-0-FINAL'.
368
3692007-01-17 Werner Lemberg <wl@gnu.org>
370
Werner Lemberg87a5a432007-01-17 12:44:39 +0000371 * docs/release: Updated.
372
David Turner22122722007-01-16 20:06:44 +00003732007-01-16 David Turner <david@freetype.org>
374
Werner Lemberg87a5a432007-01-17 12:44:39 +0000375 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
376 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
377 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
378 warnings.
David Turner22122722007-01-16 20:06:44 +0000379
Werner Lemberg267e1d72007-01-15 07:48:09 +00003802007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
381
382 * builds/amiga/makefile, builds/amiga/makefile.os4,
383 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
384
385 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
386
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003872007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
388
389 Fix various compiler warnings.
390
391 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
392 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
393 s/index/strike_index/.
394 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
395
396 * src/gxvalid/gxvmorx5.c
397 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
398
399 * src/truetype/ttinterp.c (Compute_Point_Displacement),
400 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
401 uninitialized variables.
402
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004032007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
404
405 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
406
Werner Lemberg281c1482007-01-13 22:50:51 +00004072007-01-13 Werner Lemberg <wl@gnu.org>
408
409 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
410 versions up to 0x3FF without complaining.
411
Werner Lembergac250b22007-01-13 14:01:36 +00004122007-01-13 Derek Clegg <dclegg@apple.com>
413
414 Add FT_Get_PS_Font_Info interface to CFF driver.
415
416 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
417 (CFF_FontRec): Add `font_info' field.
418
419 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
420 (cff_font_done): Free font->font_info if necessary.
421
422 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
423 (cff_service_ps_info): Register cff_ps_get_font_info.
424
Werner Lemberg23df31a2007-01-13 08:45:00 +00004252007-01-13 Werner Lemberg <wl@gnu.org>
426
427 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
428 with C++ compiler.
429
430 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
431 af_glyph_hints_dump_edges): Ditto.
432
433 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
434 `modules.cfg').
435
436 * src/sfnt/ttsbit0.h: Remove.
437
438 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
439
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004402007-01-12 David Turner <david@freetype.org>
441
442 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
443 bug in the bitmap emboldener if the pitch of the source bitmap is
444 much larger than its width.
445
446 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
447 compilation warning.
448
Werner Lemberg6d96d312007-01-12 10:30:19 +00004492007-01-12 Werner Lemberg <wl@gnu.org>
450
451 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
452 `automake' CVS module from sources.redhat.com.
453
Werner Lemberg17432b52007-01-12 09:28:44 +00004542007-01-11 Werner Lemberg <wl@gnu.org>
455
456 * src/type1/t1load.c (is_space): Removed.
457 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
458 (parse_charstrings): Use IS_PS_TOKEN.
459
460
461 * autogen.sh: Avoid bash specific syntax.
462
David Turner038ace22007-01-11 15:00:59 +00004632007-01-11 David Turner <david@freetype.org>
464
Werner Lemberg17432b52007-01-12 09:28:44 +0000465 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000466
Werner Lemberg17432b52007-01-12 09:28:44 +0000467 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000468
Werner Lemberg17432b52007-01-12 09:28:44 +0000469 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
470 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000471 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000472
Werner Lemberg17432b52007-01-12 09:28:44 +0000473 * autogen.sh: Small fix to get it working on Mac OS X properly:
474 The issue is that GNU libtool is called `glibtool' on this platform,
475 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000476
David Turner2628ea92007-01-10 13:15:56 +00004772007-01-10 David Turner <david@freetype.org>
478
Werner Lemberg17432b52007-01-12 09:28:44 +0000479 * all-sources: Tag all sources with VER-2-3-0-RC1 and
480 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000481
Werner Lemberg17432b52007-01-12 09:28:44 +0000482 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
483 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
484 version number to 2.3.0.
485
486 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
487 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000488
489 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000490 include/freetype/ftlcdfil.h: Update reference documentation with
491 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000492
Werner Lemberg17432b52007-01-12 09:28:44 +0000493 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
494 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000495
Werner Lembergbf02d392007-01-10 07:07:37 +00004962007-01-10 Derek Clegg <dclegg@apple.com>
497
498 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
499 values.
500
David Turnerf48b60e2007-01-08 15:15:32 +00005012007-01-08 David Turner <david@freetype.org>
502
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000503 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000504
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000505 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
506 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000507 corresponding to a given character pixel size.
508
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000509 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
510 `gasp' table, in order to avoid potential problems with later
511 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000512
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000513 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
514 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000515
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000516 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
517 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
518 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
519 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000520
Werner Lemberge6b6f372007-01-07 00:06:47 +00005212007-01-07 Werner Lemberg <wl@gnu.org>
522
Werner Lembergb8004d22007-01-07 09:13:38 +0000523 * src/cid/cidparse.c (cid_parser_new): Improve error message for
524 Type 11 fonts.
525 Scan for `/sfnts' token.
526
5272007-01-07 Werner Lemberg <wl@gnu.org>
528
529 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000530
Werner Lembergbe5f7972007-01-06 07:51:48 +00005312007-01-06 Werner Lemberg <wl@gnu.org>
532
533 * src/cff/cffload.c (cff_index_init): Remove unused variable.
534 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
535
David Turnera8cf42b2007-01-04 16:46:46 +00005362007-01-04 David Turner <david@freetype.org>
537
Werner Lembergf6294392007-01-06 07:47:45 +0000538 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
539 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000540
Werner Lembergf6294392007-01-06 07:47:45 +0000541
542 Do not allocate interpreter-specific tables in memory if we are not
543 going to load glyphs with the bytecode interpreter anyway.
544
545 * src/truetype/ttgload.c (tt_loader_init): Load execution context
546 only if glyph is hinted.
547 Updated.
548 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
549 and `cvs_ready'.
550 Add `tt_size_ready_bytecode' declaration.
551 * src/truetype/ttobjs.c (tt_size_done_bytecode,
552 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
553 (tt_size_init): Move most code into `tt_size_init_bytecode'.
554 (tt_size_done): Move most code into `tt_size_done_bytecode'.
555 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000556
David Turner91a34022007-01-05 14:47:08 +0000557
Werner Lembergf6294392007-01-06 07:47:45 +0000558 Don't extract the metrics table from the SFNT font file. Instead,
559 reparse it on each glyph load. The runtime difference is not
560 noticeable, and it can save a lot of heap memory when memory-mapped
561 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000562
Werner Lembergf6294392007-01-06 07:47:45 +0000563 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
564 `horz_metrics_offset' and `vert_metrics_ofset'.
565 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
566 Updated.
567
568
569 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
570
571
572 Do not load the CFF index offsets into memory, since this wastes a
573 *lot* of heap memory with large Asian CFF fonts. There is no
574 significant performance loss.
575
576 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
577 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
578 `data_size'.
579 (CFF_CharsetRec): Add field `num_glyphs'.
580
581 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
582 cff_charset_cid_to_gindex): New functions.
583 (cff_new_index): Renamed to...
584 (cff_index_init): This. Update all callers.
585 Updated -- some code has been moved to `cff_index_load_offsets'.
586 (cff_done_index): Renamed to...
587 (cff_index_done): This. Update all callers.
588 (cff_index_get_pointers, cff_index_access_element): Updated to use
589 stream offsets.
590 (cff_charset_compute_cids): Set `num_glyphs' field.
591 (cff_encoding_load): Updated.
592
593 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000594
5952007-01-04 David Turner <david@freetype.org>
596
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000597 * docs/INSTALL.UNIX: Simplify some parts, add reference to
598 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000599
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000600 * README.CVS: Add common problem description and solution
601 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000602
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000603 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000604
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000605 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000606
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000607 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000608
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000609 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
610 (TWorker): This.
611 Remove `count_table' and `memory'.
612 Make `grays' a pointer.
613 (TRaster): New structure.
614 (count_table): New static array.
615 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
616 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
617 ft_black_set_mode, ft_black_render): Updated.
618 (ft_black_init): Don't initialize `count_table'.
619 (ft_black_reset): Use the render pool. This saves about 6KB of
620 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000621
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000622 * src/smooth/ftgrays.c (TRaster): Replaced with...
623 (TWorker): This.
624 Remove `memory'.
625 (TRaster): New structure.
626
627 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
628 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
629 gray_render_span, gray_raster_render): Updated.
630 (gray_raster_reset): Use the render pool. This saves about 6KB of
631 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000632
David Turner8a6c44e2007-01-04 17:03:11 +0000633 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
634 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000635 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
636 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
637 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000638
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000639 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
640 Remove a typo that results in no hinting and a memory leak with some
641 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000642
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000643 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000644 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000645 CFF_Faces in it. We need to close all faces before destroying the
646 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000647
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006482007-01-02 Werner Lemberg <wl@gnu.org>
649
650 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
651 Remove compiler warning.
652
David Turner9207e002007-01-02 16:58:13 +00006532007-01-02 David Turner <david@freetype.org>
654
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000655 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000656
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006572006-12-31 Masatake YAMATO <jet@gyve.org>
658
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000659 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
660 function.
661 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000662 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000663 `gxv_kern_subtable_fmt0_pairs_validate'.
664
David Turner115b4422006-12-22 11:37:05 +00006652006-12-22 David Turner <david@freetype.org>
666
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000667 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
668 warnings.
David Turner115b4422006-12-22 11:37:05 +0000669
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000670 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
671 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000672
Werner Lemberg4755bf72006-12-16 08:58:44 +00006732006-12-16 Anders Kaseorg <anders@kaseorg.com>
674
675 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
676 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
677
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006782006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
679
Werner Lemberg9b774e22007-01-16 06:11:27 +0000680 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000681 sync with the modification by Jens Claudius on 2006-08-22; cf.
682 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 +0000683
6842006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
685
686 * src/base/ftmac.c: Specialized for Mac OS X only.
687 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
688 * builds/unix/configure.raw: Ditto. When explicit switches for
689 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
690 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
691
6922006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
693
694 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
695 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
696 instead of src/base/ftmac.c
697 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
698 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
699 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
700 that cannot be built at present.
701
7022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
703
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000704 * src/base/ftobjs.c: Improvement of resource fork handler for
705 POSIX, cf.
706 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000707 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
708 format or .dfont, to simulate the face index number counted by ftmac.c.
709 (IsMacResource): Return the number of scalable faces correctly.
710
Werner Lembergec5b4502006-12-10 07:51:38 +00007112006-12-10 Werner Lemberg <wl@gnu.org>
712
713 * builds/toplevel.mk (version): Protect against `distclean' target.
714
Werner Lembergb26b3142006-12-09 20:01:43 +00007152006-12-09 Werner Lemberg <wl@gnu.org>
716
717 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
718 or `type'.
719
720 * builds/freetype.mk (version): Extracted from freetype.h, using
721 GNU make's built-in string functions.
722 (refdoc): Use $(version) instead of static version number.
723
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007242006-12-08 Werner Lemberg <wl@gnu.org>
725
726 * builds/toplevel.mk (dist): Extract version number from freetype.h.
727
Werner Lemberg15c29502006-12-09 07:29:54 +00007282006-12-08 Vladimir Volovich <vvv@vsu.ru>
729
730 * src/tools/apinames (State): Remove final comma in structure -- xlc
731 v5 under AIX 4.3 doesn't like this.
732
David Turnerdbf3b432006-12-07 21:18:09 +00007332006-12-07 David Turner <david@freetype.org>
734
Werner Lemberg256a3512006-12-08 06:49:33 +0000735 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
736 to the spacing of auto-fitted glyphs. This only impacts rare
737 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000738
Werner Lemberg11171312006-12-03 09:43:40 +00007392006-12-03 Werner Lemberg <wl@gnu.org>
740
741 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
742
Werner Lemberg960ba592006-12-01 08:20:47 +00007432006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000744
Werner Lemberg960ba592006-12-01 08:20:47 +0000745 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
746 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
747 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000748
David Turner80658e52006-11-28 08:09:20 +0000749
Werner Lemberg960ba592006-12-01 08:20:47 +0000750 * include/freetype/ftxf86.h: Fix and extend comment so that it
751 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000752
Werner Lemberg960ba592006-12-01 08:20:47 +0000753 * include/freetype/ftchapters.h: Add `font_format' section.
754
755
756 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
757 to TOC in index page.
758
7592006-11-28 David Turner <david@freetype.org>
760
761 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
762 trying to render into a zero-width/height bitmap, not an error code.
763
764 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
765
766 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
767 ones instead.
768
769 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
770 variable.
David Turner80658e52006-11-28 08:09:20 +0000771
Werner Lemberg8636c292006-11-26 22:28:13 +00007722006-11-26 Pierre Hanser <hanser@club-internet.fr>
773
774 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
775
Werner Lemberg960ba592006-12-01 08:20:47 +00007762006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000777
Werner Lemberg960ba592006-12-01 08:20:47 +0000778 * src/autofit/afhints.c (af_glyph_hints_dump_points,
779 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
780 Add stubs to link the `ftgrid' test program when debugging is
781 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000782
Werner Lemberg960ba592006-12-01 08:20:47 +00007832006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000784
785 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000786 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
787
788 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
789 Emit more sensible information.
790
791 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
792
793 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
794 rounding of blue values.
795 (af_latin_hints_compute_segments): Hint segment heights.
796 (af_latin_hints_link_segments): Reduce `len_score' value.
797 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
798 value and use `height' member for comparisons.
799 (af_latin_hint_edges): Extend logging message.
800 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000801
Werner Lemberg91959bf2006-11-22 10:36:55 +00008022006-11-22 Werner Lemberg <wl@gnu.org>
803
804 Fix Savannah bug #15553.
805
806 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
807 program after a change from mono to grayscaling (and vice versa).
808 Use correct constant for comparison to get `exec->grayscale'.
809
Werner Lemberg913a3652006-11-19 09:19:17 +00008102006-11-18 Werner Lemberg <wl@gnu.org>
811
812 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000813 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000814 This patch fixes Savannah bug #18301.
815
816 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
817 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
818 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
819 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
820 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
821 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
822 (FNT_Load_Glyph): Check validity of `glyph_index'.
823
David Turner7bab6ae2006-11-13 11:25:06 +00008242006-11-13 David Turner <david@freetype.org>
825
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000826 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
827 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000828
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000829 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
830 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
831 when building the library to change the default LCD filter to be
832 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000833
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000834 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000835
David Turner8765c712006-11-10 16:49:42 +00008362006-11-10 David Turner <david@freetype.org>
837
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000838 * src/smooth/ftsmooth.c: API change for the LCD
839 filter. The FT_LcdFilter value is an enumeration describing which
840 filter to apply, with new values FT_LCD_FILTER_LIGHT and
841 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
842 algorithm which produces strong color fringes for everything
843 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000844
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000845 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
846 second parameter to an enum type.
847
848 * src/base/ftlcdfil.c (USE_LEGACY): Define.
849 (_ft_lcd_filter): Rename to...
850 (_ft_lcd_filter_fir): This.
851 Update parameters.
852 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
853 (FT_Library_Set_LcdFilter): Update parameters.
854 Handle new filter modes.
855
856 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
857 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
858 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
859 callback and update other fields.
860
861 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
862 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
863 Other minor improvements.
864
865 * src/autofit/aflatin.c: Various tiny improvements that drastically
866 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
867 (af_latin_hints_compute_edges): Fix typo.
868 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000869
David Turner4e9cc3c2006-11-09 16:31:52 +00008702006-11-09 David Turner <david@freetype.org>
871
Werner Lemberg49c77a82006-11-09 21:51:57 +0000872 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
873 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000874
Werner Lemberg5e430892006-11-07 09:35:03 +00008752006-11-07 Zhe Su <james.su@gmail.com>
876
877 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
878 also.
879
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008802006-11-03 Werner Lemberg <wl@gnu.org>
881
882 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
883
David Turner40604742006-11-02 16:37:35 +00008842006-11-02 David Turner <david@freetype.org>
885
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000886 Add a few tweaks to better handle serif fonts.
887 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000888
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000889 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
890 segments that are less than 1.5 pixels high. This gets rid of
891 *many* corner cases with serifs.
892 (af_latin_align_linked_edge): Add logging message.
893 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
894 Add logging messages.
895 Handle AF_EDGE_FLAG flag specially.
896
897 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
898 _af_debug_disable_blue_hints, and _af_debug_hints variables.
899
900 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
901 Update external declarations.
902 (af_corner_orientation, af_corner_is_flat): Replaced by...
903
904 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
905 ft_corner_is_flat): These declarations.
906
907 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
908 Comment out. Replaced by...
909
910 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
911 These functions. Update all callers.
912 (FT_Add64) [!FT_LONG64]: Simplify.
913
914 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
915 (af_direction_compute): Add a missing FT_ABS call. This bug caused
916 production of garbage by missing lots of segments.
917
918 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
919
920 * src/autofit/afloader.c (af_loader_init, af_loader_done)
921 [AF_DEBUG]: Set _af_debug_hints.
922
923
924 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
925 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
926 and ft_corner_orientation.
927
928
929 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000930
Werner Lemberge88c5262006-10-24 05:46:26 +00009312006-10-24 Werner Lemberg <wl@gnu.org>
932
933 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
934
935 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
936 as argument.
937
David Turnera1861392006-10-23 16:00:59 +00009382006-10-23 Zhe Su <zsu@novell.com>
939
Werner Lemberg715e96e2006-10-24 05:28:45 +0000940 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
941 better deal with broken Asian fonts with strange glyphs, having
942 self-intersections and other peculiarities. The used algorithm is
943 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000944
David Turnere140f142006-10-23 08:56:57 +00009452006-10-23 David Turner <david@freetype.org>
946
Werner Lemberg715e96e2006-10-24 05:28:45 +0000947 Speed up the CFF font loader. With some large CFF fonts,
948 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000949
Werner Lemberg715e96e2006-10-24 05:28:45 +0000950 * src/cff/cffload.c (cff_get_offset): Removed.
951 (cff_new_index): Inline functionality of `cff_get_offset'.
952 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
953 (cff_charset_done): Call `cff_charset_free_cids'.
954 (cff_charset_load): Call `cff_charset_compute_cids'.
955 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
956
957 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
958 with FT_NEXT_XXX.
959
960
961 Speed up the Postscript hinter, with more than 100% speed increase
962 on my machine.
963
964 * src/pshinter/pshalgo.c (psh_corner_is_flat,
965 psh_corner_orientation): New functions.
966 (psh_glyph_compute_inflections): Merge loops for efficiency.
967 Use `psh_corner_orientation'.
968 (psh_glyph_init): Use `psh_corner_is_flat'.
969 (psh_hint_table_find_strong_point): Renamed to...
970 (psh_hint_table_find_strong_points): This.
971 Rewrite, adding argument to handle all points at once.
972 Update all callers.
973 (PSH_MAX_STRONG_INTERNAL): New macro.
974 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000975
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009762006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
977
978 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000979 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000980
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009812006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
982
983 * docs/INSTALL.CROSS: New document file for cross-building.
984
985 * builds/unix/configure.raw: Preliminary cross-building support.
986 Find native C compiler and pass it by CC_BUILD, and
987 find suffix for native executable and pass it by EXEEXT_BUILD.
988 Also suffix for target executable is passed by EXEEXT.
989
Werner Lembergb9e6d692006-10-15 08:58:40 +0000990 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
991 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000992 CC_BUILD and EXEEXT_BUILD.
993
Werner Lembergb9e6d692006-10-15 08:58:40 +0000994 * builds/exports.mk (APINAMES_EXE): Change the extension for
995 apinames from the suffix for target (E) to that for building host
996 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000997
Werner Lemberg82a07e92006-10-12 06:20:44 +00009982006-10-12 Werner Lemberg <wl@gnu.org>
999
1000 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1001 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1002 which reference those files.
1003
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010042006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1005
Werner Lembergb9e6d692006-10-15 08:58:40 +00001006 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1007 embedded in freetype2.pc and freetype-config. Use it to record
1008 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001009
1010 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1011
1012 * builds/unix/freetype-config.in: Ditto.
1013
Werner Lemberg28e17d92006-10-11 17:27:47 +000010142006-10-11 Werner Lemberg <wl@gnu.org>
1015
1016 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1017 development.
1018
Jens Claudius336d2292006-10-03 08:53:37 +000010192006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1020
1021 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1022 argument to ft_setjmp.
1023
1024 * include/freetype/internal/ftvalid.h: Add comment that
1025 ft_validator_run must not be used.
1026
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010272006-10-01 Werner Lemberg <wl@gnu.org>
1028
1029 * src/base/ftbase.c: Undo change from 2006-09-30.
1030
1031 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1032
10332006-09-30 David Turner <david@freetype.org>
1034
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001035 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1036 s/unpatented_hinting/ignore_unpatented_hinter/.
1037 Update all callers.
1038
1039 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1040 auto-hinting shall be used or not.
1041
1042 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001043
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010442006-09-30 Werner Lemberg <wl@gnu.org>
1045
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001046 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1047 in use).
1048
1049 * src/base/ftbase.c: Include `ftlcdfil.c'.
1050
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010512006-09-29 Werner Lemberg <wl@gnu.org>
1052
1053 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1054 overlapping segments. Bug reported by Stefan Koch.
1055
David Turnerad830712006-09-27 16:20:59 +000010562006-09-28 David Turner <david@freetype.org>
1057
Werner Lemberg2c002e12006-09-29 21:31:53 +00001058 Fix a bug in the automatic unpatented hinting support which prevents
1059 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001060
Werner Lemberg2c002e12006-09-29 21:31:53 +00001061 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1062 s/force_autohint/unpatented_hinting/. Update all callers.
1063
1064 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1065
1066 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001067
David Turner8a317cf2006-09-27 07:52:48 +000010682006-09-27 David Turner <david@freetype.org>
1069
Werner Lemberg2c002e12006-09-29 21:31:53 +00001070 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001071
David Turner8a317cf2006-09-27 07:52:48 +00001072
David Turnere140f142006-10-23 08:56:57 +00001073 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001074 In a default build, the function `FT_Library_SetLcdFilter' returns
1075 `FT_Err_Unimplemented_Feature'; you need to #define
1076 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1077 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001078
Werner Lemberg2c002e12006-09-29 21:31:53 +00001079 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001080
Werner Lemberg2c002e12006-09-29 21:31:53 +00001081 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1082 typedef.
1083 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1084 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001085
Werner Lemberg2c002e12006-09-29 21:31:53 +00001086 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1087 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001088
Werner Lemberg2c002e12006-09-29 21:31:53 +00001089 Handle subpixel rendering.
1090 Simplify function.
1091 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1092 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1093
1094 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1095 pointing to <freetype/ftlcdfil.h>.
1096
1097 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1098 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1099
1100 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001101
Werner Lemberge20df4a2006-09-27 06:29:21 +000011022006-09-26 David Bustin
1103
1104 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1105 correctly. Reported as Savannah bug #17843.
1106
David Turner6f8c6222006-09-26 15:42:44 +000011072006-09-26 David Turner <david@freetype.org>
1108
Werner Lemberg110246c2006-09-26 21:55:44 +00001109 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1110 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1111 horizontal and vertical hinting for the purpose of debugging the
1112 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001113
Werner Lemberg110246c2006-09-26 21:55:44 +00001114 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1115 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001116
Werner Lemberg110246c2006-09-26 21:55:44 +00001117 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1118
1119 * include/freetype/config/ftoption.h, devel/ftoption.h
1120 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1121 we want to compile LCD-optimized rendering code la ClearType) or
1122 not. The macro *must* be disabled in default builds of the library
1123 for patent reasons.
1124
1125 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1126 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1127 isn't defined at compile time. This only changes the content of the
1128 rendered glyph to match the one of normal gray-level rendering,
1129 hence clients should not need to be modified.
1130
1131 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001132
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011332006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1134
1135 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1136 LWFN fails and both are available.
1137
David Turnerf3050052006-09-11 12:00:32 +000011382006-09-11 David Turner <david@freetype.org>
1139
Werner Lembergf9644552006-09-12 13:48:10 +00001140 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1141 report their English names through an Apple Roman
1142 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001143
Werner Lembergf9644552006-09-12 13:48:10 +00001144 If the font uses another name entry with language_id == English, it
1145 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001146
Werner Lembergf9644552006-09-12 13:48:10 +00001147 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1148 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001149
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011502006-09-05 Werner Lemberg <wl@gnu.org>
1151
1152 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001153 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001154 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1155 `HAN NOM B.ttf').
1156
1157 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1158
David Turner772e55d2006-09-05 09:45:15 +000011592006-09-05 David Turner <david@freetype.org>
1160
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001161 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001162
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001163 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1164 (TRaster): Remove `count_ex' and `count_ey'.
1165 (gray_find_cell): Remove 2nd and 3rd argument.
1166 (gray_alloc_cell): Merged with `gray_find_cell'.
1167 (gray_record_cell): Simplify.
1168 (gray_set_cell): Rewrite.
1169 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1170 (gray_render_span): Don't use FT_MEM_SET for small values.
1171 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1172 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1173 bitmap scanline.
1174 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001175
David Turneraa557a92006-09-04 16:42:44 +000011762006-09-04 David Turner <david@freetype.org>
1177
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001178 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1179 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001180
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011812006-09-03 Werner Lemberg <wl@gnu.org>
1182
1183 * devel/ftoption.h: Synchronize with
1184 include/freetype/config/ftoption.h.
1185
1186 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1187 variable declaration.
1188 (gray_convert_glyph): Fix compiler warnings.
1189
David Turner6d79f212006-09-01 14:09:35 +000011902006-09-01 David Turner <david@freetype.org>
1191
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001192 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1193 to recognize a few fonts that require the automatic unpatented
1194 loader.
David Turnerbd502952006-09-01 19:05:24 +00001195
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001196 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1197 rasterizer. The speed improvement is between 15% and 25%, depending
1198 on the font data.
1199
1200 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1201 (TCell): Redefine.
1202 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1203 (gray_init_cells): Updated.
1204 (gray_find_cell, gray_alloc_cell): New functions.
1205 (gray_record_cell): Rewritten to use `gray_find_cell' and
1206 `gray_alloc_cell'.
1207 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1208 QSORT_THRESHOLD):
1209 Removed.
1210 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1211 gray_dump_cells): Removed.
1212 (gray_sweep): Rewritten.
1213 (gray_convert_glyph): Rewrite code which used one of the sorting
1214 functions.
1215 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001216
Werner Lembergd898aed2006-08-29 09:50:34 +000012172006-08-29 Dr. Werner Fink <werner@suse.de>
1218
1219 * configure: Make it possible to handle configure options which
1220 have strings containing spaces.
1221
12222006-08-27 David Turner <david@freetype.org>
1223
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001224 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1225 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1226 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1227
1228 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1229 src/truetype/truetype.c, src/truetype/ttdriver.c,
1230 src/truetype/ttgload.c, src/truetype/ttgload.h,
1231 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1232 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1233 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1234
1235 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1236 member `force_autohint'.
1237
1238 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1239
1240 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1241 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001242
Jens Claudiusa787f452006-08-27 11:26:18 +000012432006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1244
1245 Fix miscellaneous compiler warnings.
1246
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001247 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1248 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001249
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001250 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1251 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1252 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001253
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001254 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1255 volatileness of argument to ft_longjmp. Spotted by Werner
1256 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001257
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001258 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1259 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001260
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001261 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1262 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001263
Werner Lembergc4c35b72006-08-27 08:03:46 +000012642006-08-27 Werner Lemberg <wl@gnu.org>
1265
1266 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1267 Reported by Jens.
1268
Jens Claudius088e44e2006-08-22 14:24:30 +000012692006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001270
Jens Claudius088e44e2006-08-22 14:24:30 +00001271 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001272 about addresses of volatile objects passed as function arguments as
1273 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001274
Werner Lembergc4c35b72006-08-27 08:03:46 +00001275 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1276 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001277
1278 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1279 argument `table' a pointer to a volatile object.
1280
1281 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1282 argument `table' a pointer to a volatile object.
1283
Jens Claudius2652bd52006-08-18 17:20:37 +000012842006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1285
1286 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1287 variable `_sfnt' as volatile since it must keep its value across
1288 a call to ft_setjmp.
1289 (gxv_validate): Same for local variables `memory' and `valid'.
1290 (classic_kern_validate): Same for local variables `memory',
1291 `ckern', and `valid'.
1292
1293 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1294 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1295 `jstf', and 'valid'.
1296
1297 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1298 local variable `cmap'.
1299
David Turner9fbfc6a2006-08-16 09:11:31 +000013002006-08-16 David Turner <david@freetype.org>
1301
Werner Lemberg12342992006-08-19 11:18:09 +00001302 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1303 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001304
Werner Lemberg12342992006-08-19 11:18:09 +00001305 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1306 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001307
David Turner33f5f242006-08-16 16:50:55 +00001308
Werner Lemberg12342992006-08-19 11:18:09 +00001309 Improvements to native TrueType hinting. This is a first try,
1310 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1311
1312 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1313 `extra_points2'.
1314
1315 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1316 `orus'.
1317
1318 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1319 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1320 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1321 handle `extra_points2'.
1322
1323 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1324 Remove compiler warning.
1325 (cur_to_arg): Remove macro.
1326 (TT_Hint_Glyph): Updated.
1327 (TT_Process_Simple_Glyph): Handle `orus'.
1328
1329 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1330 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1331 (LOC_Ins_IUP): Renamed to...
1332 (IUP_WorkerRec): This.
1333 Add `orus' member.
1334 (Shift): Renamed to...
1335 (_iup_worker_shift): This.
1336 Updated.
1337 (Interp): Renamed to...
1338 (_iup_worker_interpolate): This.
1339 Updated to handle `orus'.
1340 (Ins_IUP): Updated.
1341
1342 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1343 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001344
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013452006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1346
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001347 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001348 build ftvalid in ft2demos. This has been inadvertedly changed
1349 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001350
13512006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1352
Werner Lemberg12342992006-08-19 11:18:09 +00001353 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1354 Jens:
1355 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001356
Werner Lemberg12342992006-08-19 11:18:09 +00001357 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1358 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001359
1360 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1361
Jens Claudius9950adc2006-08-13 12:14:36 +000013622006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1363
Werner Lemberg12342992006-08-19 11:18:09 +00001364 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1365 T1_TOKEN_TYPE_KEY.
1366 (T1_FieldRec): Add `dict'.
1367 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1368 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1369 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001370
Werner Lemberg12342992006-08-19 11:18:09 +00001371 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1372 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001373
1374 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1375
1376 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001377 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1378 not T1_TOKEN_TYPE_ANY.
1379 (ps_parser_load_field): Make sure a token that should be a string or
1380 name is really a string or name.
1381 Avoid memory leak if a keyword has been already encountered and its
1382 value is overwritten.
1383 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1384 T1_FIELD_XXX.
1385 (parse_dict): Ignore keywords that occur in the wrong dictionary
1386 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001387
Werner Lemberg12342992006-08-19 11:18:09 +00001388 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1389 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001390
Werner Lemberg12342992006-08-19 11:18:09 +00001391 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1392 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001393
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013942006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1395
1396 Move creation of field `buildchar' of T1_DecoderRec out of
1397 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1398 of it.
1399
1400 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1401 and `T1_Compute_Max_Advance'.
1402
1403 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1404 Remove field `face', add `len_buildchar'.
1405
1406 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1407 field `buildchar'.
1408
1409 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1410 finisher for T1_Decoder.
1411 (cid_slot_load_glyph): Do not ignore failure when initializing the
1412 T1_Decoder.
1413
1414 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1415 Updated.
1416 (t1_decoder_init): Remove initialization of fields `buildchar' and
1417 `len_buildchar'.
1418 (t1_decoder_done): Remove deallocation of field `buildchar'.
1419
1420 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1421 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1422 T1_Decoder.
1423 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1424 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1425 case of error.
1426
1427 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1428 `buildchar' of T1_FaceRec.
1429
1430 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1431 `buildchar' of T1_FaceRec.
1432
Werner Lemberg1a380e02006-07-14 18:28:08 +000014332006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1434
1435 * freetype2/include/freetype/internal/psaux.h: New macros
1436 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1437 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1438 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1439 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1440 (T1_DecoderRec): New fields `buildchar' and `face'.
1441 (IS_PS_TOKEN): New macro.
1442
1443 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1444 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1445
1446 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1447 `default_design_vector' and `num_default_design_vector'.
1448
1449 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1450 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1451 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1452
1453 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1454 `token' argument to be NULL if we want only to count the number of
1455 tokens.
1456 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1457 want to skip the array.
1458 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1459 want to skip the array.
1460
1461 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1462 support for (partially commented out) othersubrs 19-25, 27, and 28.
1463 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1464 (t1_decoder_done): Release new field `buildchar'.
1465
1466 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1467 functions.
1468 (t1_keywords): Register them.
1469 (t1_allocate_blend): Updated.
1470 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1471 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1472 (parse_dict): Remove `keyword_flags' argument.
1473 Use new macro IS_PS_TOKEN.
1474 Changed function so that later PostScript definitions override
1475 earlier ones.
1476 (t1_init_loader): Initialize new field `keywords_encountered'.
1477 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1478 `len_buildchar'.
1479 Remove `keywords_flags'.
1480
1481 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1482 `keywords_encountered'.
1483 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1484
1485 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1486 New entries for parsing /NDV, /CDV, and /DesignVector.
1487
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014882006-07-07 Werner Lemberg <wl@gnu.org>
1489
1490 Add many checks to protect against malformed PCF files.
1491
1492 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1493 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1494
1495 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1496 data and check that tables don't overlap (using a simple
1497 bubblesort).
1498 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1499 New macros which give the size of data structures in the data
1500 stream.
1501 (pcf_get_properties): Use rough estimates to get array size limits.
1502 Assign `face->nprops' and `face->properties' earlier so that a call
1503 to PCF_Face_Done can do the clean-up in case of error.
1504 Protect against invalid string offsets.
1505 (pcf_get_metrics): Clean up code.
1506 Adjust tracing message levels.
1507 Use rough estimate to get array size limit.
1508 (pcf_get_bitmaps): Clean up code.
1509 Adjust tracing message levels.
1510 Use rough estimates to get offset limits.
1511 (pcf_get_encodings): Adjust tracing message level.
1512 (pcf_get_accel): Clean up code.
1513
Werner Lemberg8eb05252006-06-27 06:20:01 +000015142006-06-26 Werner Lemberg <wl@gnu.org>
1515
1516 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1517 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1518
Werner Lemberg24703f82006-06-26 19:12:51 +000015192006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1520
1521 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1522 (t1_decoder_parse_charstrings): Operator with
1523 opcode 15 pops its two arguments.
1524 Handle the case where the pops of an othersubr may be part of a
1525 subroutine.
1526 Handle unknown othersubrs gracefully: count their operands and let
1527 the following pop operators push the operands as the results onto
1528 the Type1 stack.
1529 Improve handling of setcurrentpoint opcode.
1530
Werner Lembergc011f4c2006-06-26 09:40:00 +000015312006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1532
1533 The Type 1 parser now skips over top-level procedures as required
1534 for a `Simplified Parser'. This makes the parser more robust as it
1535 doesn't poke around in PostScript code. Additionally, it makes the
1536 FontDirectory hackery in src/type1/t1load.c unnecessary.
1537
1538 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1539 (skip_literal_string): Add FT_Error as return value.
1540 Handle escapes better.
1541 (skip_string): Add FT_Error as return value.
1542 Don't set `parser->error' but return error code directly.
1543 (skip_procedure): New function.
1544 (ps_parser_skip_PS_token): Handle procedures.
1545 Update code.
1546 (ps_parser_to_token): Update code.
1547 (ps_parser_load_field_table): Handle bbox entries also.
1548
1549 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1550 Add commented-out code for synthetic fonts.
1551
Werner Lemberga2da05c2006-06-25 06:27:27 +000015522006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1553
1554 Fix two hinting bugs as reported in
1555 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1556
1557 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1558 `first_point' member.
1559
1560 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1561 `first_point'.
1562 (TT_Process_Composite_Glyph): Always untouch points.
1563
1564 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1565 `first_point' and `last_point' in case of composite glyphs.
1566 (Ins_IUP): Fix computation of `end_point'.
1567
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015682006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1569
Werner Lembergef3d2c22006-06-25 06:07:14 +00001570 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1571 Mac. The original patch was written by David Sachitano and Lawrence
1572 Coopet, and modified by Sean McBride for MPW compatibility. Only
1573 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001574
Werner Lembergef3d2c22006-06-25 06:07:14 +00001575 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1576 Mac OS X platforms.
1577 (OS_INLINE): Undefine before definition.
1578 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1579 FontAssociation table in FOND resource.
1580 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1581 and fontSize at each entry of FontAssociation table in FOND
1582 resource.
1583 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1584 ffStylOff of FamilyRecord header of FOND resource, the header,
1585 fontSize, fontID at each entry of FontAssociation table, and
1586 StyleMapping table.
1587 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001588
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015892006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1590
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001591 Public API of TrueTypeGX, OpenType, and classic kern table validator
1592 should return `FT_Err_Unimplemented_Feature' if validation service
1593 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001594 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001595 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1596
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001597 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1598 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1599 unavailable.
1600 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1601 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001602
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001603 * src/base/ftotval.c (FT_OpenType_Validate): Return
1604 FT_Err_Unimplemented_Feature if OpenType validation service is
1605 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001606
Werner Lembergb10e45a2006-06-08 07:32:56 +000016072006-06-08 Werner Lemberg <wl@gnu.org>
1608
1609 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1610 errors.
1611
David Turner5f1f7502006-06-07 05:11:50 +000016122006-06-07 David Turner <david@freetype.org>
1613
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001614 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1615 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1616 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001617
David Turner457b4a82006-06-06 08:14:14 +000016182006-06-06 David Turner <david@freetype.org>
1619
Werner Lemberg4836f952006-06-06 12:54:08 +00001620 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001621
Werner Lemberg4836f952006-06-06 12:54:08 +00001622 We change `ps_unicodes_init' so that it also takes a
1623 `free_glyph_name' callback to release the glyph names returned by
1624 `get_glyph_name'
1625
1626 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1627 Renamed to ...
1628 (PS_GetGlyphNameFunc): This.
1629 (PS_FreeGlyphNameFunc): New typedef.
1630 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1631
1632 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1633 argument.
1634 (cff_sid_free_glyph_name): New function.
1635 (cff_cmap_unicode_init): Updated.
1636
1637 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1638
1639 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1640 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001641
1642
David Turner09717352006-06-04 14:33:08 +000016432006-06-04 David Turner <david@freetype.org>
1644
Werner Lembergd724f202006-06-04 15:17:41 +00001645 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1646 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001647 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001648
Werner Lembergd724f202006-06-04 15:17:41 +00001649 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1650 of `face->num_glyphs' which missed the last glyph, due to
1651 the offset-by-1 computation, since the PFR format doesn't
1652 guarantee that glyph index 0 corresponds to the `missing
1653 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001654
Werner Lemberg33779662006-05-26 06:30:05 +000016552006-05-25 Werner Lemberg <wl@gnu.org>
1656
1657 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1658 `-no-undefined'. Reported by Christian Biesinger.
1659
Werner Lemberg24773d62006-05-20 08:53:13 +000016602006-05-19 Brian Weed <bw@imaginengine.com>
1661
1662 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1663 have debug information, and debug libraries use `C7 compatible'
1664 debug info.
1665
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016662006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1667
Werner Lemberga6523a62006-05-20 08:47:01 +00001668 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001669 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001670
Werner Lemberga6523a62006-05-20 08:47:01 +00001671 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1672 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001673
1674 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001675 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001676
16772006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1678
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001679 * build/unix/configure.raw: Add a fallback to disable Carbon
1680 dependency, if configured with no options on Mac OS X.
1681
16822006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1683
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001684 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001685 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001686 the second part of Savannah bug #16590.
1687
Werner Lemberg545c4e52006-05-17 22:55:04 +000016882006-05-18 Werner Lemberg <wl@gnu.org>
1689
1690 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1691 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1692
David Turnerdc3ff312006-05-17 12:59:35 +000016932006-05-17 David Turner <david@freetype.org>
1694
Werner Lemberg545c4e52006-05-17 22:55:04 +00001695 This is a major patch used to drastically improve the performance of
1696 loading glyphs. This both speeds up loading the glyph vectors
1697 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001698
Werner Lemberg545c4e52006-05-17 22:55:04 +00001699 We now use inline assembler code with GCC to implement `FT_MulFix',
1700 which is probably the most important function related to the
1701 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001702
Werner Lemberg545c4e52006-05-17 22:55:04 +00001703 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001704
1705
Werner Lemberg545c4e52006-05-17 22:55:04 +00001706 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1707 `cursor' and `limit'.
1708
1709 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1710 New functions.
1711 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1712 [TEST]: Remove.
1713
1714 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1715 code.
1716
1717 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1718 `FT_ZERO'
1719 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1720 (af_glyph_hints_reload: Rewrite recognition of weak points.
1721
1722 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1723 constant values out of the loops.
1724
1725 * src/autofit/aftypes.h: Updated.
1726
1727 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1728
1729 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1730 product to get orientation.
1731
1732 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1733 (FT_Stream_OpenGzip): Use it to handle small files directly in
1734 memory.
1735
1736 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1737 Improve performance.
1738
1739 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1740 `limit'.
1741
1742 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1743 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1744 exceedingly large values of number of contours. Speed up by
1745 reducing the number of loops.
1746
1747 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1748
1749
1750 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1751 used to detect rogue clients from 4 to 16. This is to prevent some
1752 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1753 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001754
Werner Lembergde2d90a2006-05-17 08:54:30 +000017552007-05-17 Werner Lemberg <wl@gnu.org>
1756
1757 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001758 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001759
17602006-05-16 Werner Lemberg <wl@gnu.org>
1761
1762 * docs/PROBLEMS: Updated icl issues.
1763
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001764----------------------------------------------------------------------------
1765
Werner Lemberg42b63b22007-01-21 21:01:33 +00001766Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001767David Turner, Robert Wilhelm, and Werner Lemberg.
1768
1769This file is part of the FreeType project, and may only be used, modified,
1770and distributed under the terms of the FreeType project license,
1771LICENSE.TXT. By continuing to use, modify, or distribute this file you
1772indicate that you have read the license and understand and accept it
1773fully.
1774
1775
1776Local Variables:
1777version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001778coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001779End: