blob: d508f3995b13e0dc4864aea1b60921def57b8d2a [file] [log] [blame]
Werner Lemberga08b2172007-03-28 07:17:17 +000012007-03-28 Werner Lemberg <wl@gnu.org>
2
3 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
4 gracefully.
5 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
6 issue an error for longer names.
7 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
8 number of code points in Unicode.
9
David Turner3b242d32007-03-26 12:03:04 +0000102007-03-26 David Turner <david@freetype.org>
11
Werner Lemberga08b2172007-03-28 07:17:17 +000012 * src/truetype/ttinterp.c: Last fix for the `MD' instruction
13 bytecode and remove the FIX_BYTECODE macros from the sources.
David Turner3b242d32007-03-26 12:03:04 +000014
Werner Lemberga08b2172007-03-28 07:17:17 +000015 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
16 computations in order to ignore 1-point contours. These are never
17 rasterized and correspond in certain fonts mark-attach points that
18 are very far from the glyph's real outline, ruining the computation.
David Turnerf58caa02007-03-26 12:39:25 +000019
Werner Lemberga08b2172007-03-28 07:17:17 +000020 * src/autofit/afloader.c (af_loader_load_g): In the case of
21 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
22 Otherwise code that uses them will most certainly ruin the fixed
23 advance property.
David Turner23553d62007-03-26 13:37:17 +000024
Werner Lemberga08b2172007-03-28 07:17:17 +000025 * docs/CHANGES, docs/VERSION, include/freetype/freetype.h,
26 builds/unix/configure.raw, README, Jamfile: Update documentation and
27 bump version number to 2.3.3.
David Turner23553d62007-03-26 13:37:17 +000028
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000292007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
30
31 * builds/unix/ftconfig.in: disable Carbon framework dependency on
32 64bit ABI on Mac OS X 10.4.x (ppc & i386), found by Sean McBride.
33 * builds/vms/ftconfig.h: Ditto.
34 * include/freetype/config/ftconfig.h: Ditto.
35
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000362007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
37
Werner Lemberg14ffe092007-03-22 06:12:43 +000038 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
39 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000040 proposed by Sean McBride:
41 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
42
432007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
44
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000045 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
46 setjmp, proposed by Sean McBride:
47 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
48
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000492007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
50
Werner Lembergc9f6c662007-03-21 13:30:14 +000051 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
52 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
53 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000054
David Turner74c34eb2007-03-18 07:19:31 +0000552007-03-18 David Turner <david@freetype.org>
56
Werner Lembergc9f6c662007-03-21 13:30:14 +000057 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
58 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000059
Werner Lembergc9f6c662007-03-21 13:30:14 +000060 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000061
David Turner89020d92007-03-17 17:48:57 +0000622007-03-17 David Turner <david@freetype.org>
63
Werner Lembergc9f6c662007-03-21 13:30:14 +000064 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
65 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000066
Werner Lemberg25d592a2007-03-09 07:59:35 +0000672007-03-09 Werner Lemberg <wl@gnu.org>
68
69 * Version 2.3.2 released.
70 =========================
71
72
73 Tag sources with `VER-2-3-2'.
74
75 * builds/win32/visualc/index.html,
76 builds/win32/visualc/freetype.dsp,
77 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
78 s/231/232/.
79
David Turner3a51afa2007-03-08 10:50:38 +0000802007-03-08 David Turner <david@freetype.org>
81
Werner Lemberg25d592a2007-03-09 07:59:35 +000082 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000083
Werner Lemberg25d592a2007-03-09 07:59:35 +000084 * builds/unix/configure.raw (version_info): Set to 9:13:3.
85
86 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
87
88 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000089
Werner Lemberg1e259de2007-03-08 15:39:21 +000090 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
91 function to work properly, over-writing user-provided buffers in
92 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000093
David Turner121cad52007-03-08 16:43:50 +000094
Werner Lemberg3d92f082007-03-06 11:59:24 +0000952007-03-05 Werner Lemberg <wl@gnu.org>
96
97 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
98 macro for `strstr'.
99
100 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
101 `trick_names', as suggested by Ivan Nincic.
102
David Turner085bc6e2007-03-05 17:40:03 +00001032007-03-05 David Turner <david@freetype.org>
104
Werner Lembergd112cf02007-03-06 12:06:56 +0000105 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
106 case FT_Init_FreeType fails for some reason. Problem reported by
107 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000108
Werner Lembergd112cf02007-03-06 12:06:56 +0000109 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
110 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
111 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
112 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000113
Werner Lembergd112cf02007-03-06 12:06:56 +0000114 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
115 signed values, not unsigned ones. Problem reported by Johannes
116 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000117
David Turner601aefe2007-02-21 16:47:49 +00001182007-02-21 David Turner <david@freetype.org>
119
Werner Lembergde5e6862007-02-25 21:06:43 +0000120 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
121 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000122
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001232007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
124
125 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
126 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
127 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
128
Werner Lemberga0915172007-02-16 08:12:50 +00001292007-02-16 Werner Lemberg <wl@gnu.org>
130
131 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
132 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
133
David Turner2c4500e2007-02-14 15:08:47 +00001342007-02-14 David Turner <david@freetype.org>
135
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000136 It seems that the following changes fix most of the known
137 interpreter problems with my fonts, but more testing is needed,
138 though.
139
140 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
141 (TT_MulFix14): Rewrite.
142 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
143 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000144
Werner Lembergc6a14082007-02-12 22:08:15 +00001452007-02-12 Werner Lemberg <wl@gnu.org>
146
147 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
148 warnings.
149
150 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
151 (bdf_interpret_style): Ditto.
152
David Turnerc0f9c4a2007-02-12 14:55:03 +00001532007-02-12 David Turner <david@freetype.org>
154
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000155 Simplify projection and dual-projection code interface.
156
Werner Lemberg406d25f2007-02-12 22:01:18 +0000157 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
158 FT_Vector' as argument type.
159 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
160 Updated.
161 (CUR_fast_project, CUR_fast_dualproj): New macros.
162 (Project, Dual_Project, Project_x, Project_y): Updated.
163 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
164 macros.
165
166
167 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
168 adjustments for the non-light auto-hinted modes. Gets rid of
169 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000170
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000171 * src/autofit/aflatin.c (af_latin_hints_link_segments,
172 af_latin_hints_compute_edges): Slight optimization of the segment
173 linker and better handling of serif segments to get rid of broken
174 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000175
David Turnerc0f9c4a2007-02-12 14:55:03 +0000176
Werner Lemberg442bfb82007-02-12 21:44:10 +0000177 Introduce new string functions and the corresponding macros to get
178 rid of various uses of strcpy and other `evil' functions, as well as
179 to simplify a few things.
180
181 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
182 ft_mem_strcpyn): New declarations.
183 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
184 macros.
185 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
186 functions.
187
188 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
189 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
190 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
191 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
192 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
193 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
194 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
195 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000196
Werner Lemberg406d25f2007-02-12 22:01:18 +0000197 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
198
Werner Lemberg582067d2007-02-11 15:03:05 +00001992007-02-11 Werner Lemberg <wl@gnu.org>
200
201 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
202 non-spacing glyphs.
203
Werner Lemberg8f474532007-02-07 08:31:01 +00002042007-02-07 Tom Parker <palfrey@tevp.net>
205
206 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
207 pointer.
208
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002092007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
210
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000211 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
212 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000213 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000214 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
215 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
216 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
217 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000218
219 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
220 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000221 * builds/mac/ftmac.c: Ditto.
222
2232007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
224
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000225 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000226 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000227 #include <ftmac.c>.
228
2292007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
230
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000231 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
232 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
233 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
234 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
235 FT_GetFilePath_From_Mac_ATS_Name.
236 * builds/mac/ftmac.c: Ditto.
237
2382007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
239
Werner Lembergdcbb7082007-02-08 08:54:09 +0000240 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000241 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
242 for passing to FT_New_Face_From_FSSpec.
243
2442007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
245
Werner Lembergdcbb7082007-02-08 08:54:09 +0000246 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000247 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000248
249 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
250 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000251 * builds/mac/ftmac.c (OS_INLINE): Ditto.
252
Werner Lemberg313d7772007-02-01 08:10:45 +00002532007-02-01 Werner Lemberg <wl@gnu.org>
254
255 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
256 Explain why applications shouldn't use it. Found by Alexei.
257
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002582007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000259
260 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
261 message.
262
263 * src/gxvalid/gxvmort1.c
264 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
265 message.
266
Werner Lemberg53935932007-01-31 08:53:02 +00002672007-01-31 Werner Lemberg <wl@gnu.org>
268
269
270 * Version 2.3.1 released.
271 =========================
272
273
274 Tag sources with `VER-2-3-1-FINAL'.
275
276 * builds/win32/visualc/freetype.dsp,
277 builds/win32/visualc/freetype.vcproj: s/230/231/.
278 * builds/win32/visualc/index.html: s/221/231/.
279
280 * vms_make.com: Add `ftgasp'.
281
David Turnera7ee6082007-01-30 10:33:53 +00002822007-01-30 David Turner <david@freetype.org>
283
Werner Lemberg53935932007-01-31 08:53:02 +0000284 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000285
Werner Lemberg53935932007-01-31 08:53:02 +0000286 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000287
Werner Lemberg25d592a2007-03-09 07:59:35 +0000288 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000289 s/2.3.0/2.3.1/.
290
291 * builds/unix/configure.raw (version_info): Set to 9:12:3.
292
293
294 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
295 (af_loader_load_g): Disable the warper (i.e., the light hinting
296 improvements) to make a 2.3.1 bugfix release before introducing a
297 new feature. This should give us more time to tune and improve the
298 warper for the next release.
299
300 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000301
David Turnerd91eebd2007-01-26 15:05:41 +00003022007-01-25 David Turner <david@freetype.org>
303
Werner Lembergbf241762007-01-26 16:08:49 +0000304 For light auto-hinting, improve glyph advance widths and resurrect
305 normal/full hinting to its normal quality.
306
307 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
308 and `xmax_delta'.
309 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
310 and `xmax_delta'.
311
312 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
313 preprocessor conditional with if-clause, handling both light and
314 normal mode.
315
316 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
317 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000318
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003192007-01-25 Werner Lemberg <wl@gnu.org>
320
321 * docs/release: Updated -- Savannah uses a new uploading scheme.
322
David Turnera42567b2007-01-25 12:23:37 +00003232007-01-25 David Turner <david@freetype.org>
324
Werner Lembergd7855662007-01-25 13:53:56 +0000325 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000326
Werner Lembergd7855662007-01-25 13:53:56 +0000327 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
328 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
329 functions.
David Turnera42567b2007-01-25 12:23:37 +0000330
Werner Lembergd7855662007-01-25 13:53:56 +0000331 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000332
Werner Lembergb1be9e82007-01-25 11:50:00 +00003332007-01-25 Werner Lemberg <wl@gnu.org>
334
335 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000336 correctly in a sanity check. Since this function is only used to
337 load local and global functions, any charstring that called the last
338 local/global function would fail otherwise. This fixes Savannah bug
339 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000340
341 * docs/CHANGES: Document it.
342
David Turnerb6de8d12007-01-23 15:51:50 +00003432007-01-23 David Turner <david@freetype.org>
344
Werner Lembergb1be9e82007-01-25 11:50:00 +0000345 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
346 prevented compilation when disabling both the unpatented and the
347 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000348
Werner Lembergb1be9e82007-01-25 11:50:00 +0000349
350 Fix and enable the warper to improve `light' hinting mode. This is
351 not necessarily a final version, but it seems to work well.
352
353 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
354 Disable code.
355 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
356 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
357
358 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
359 (af_warper_compute_line_best): Fix array size of `scores'.
360 (af_warper_compute): Better handling of border cases.
361 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
362 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000363
Werner Lemberg011d1112007-01-21 09:36:00 +00003642007-01-21 Werner Lemberg <wl@gnu.org>
365
Werner Lemberg42b63b22007-01-21 21:01:33 +0000366 * ChangeLog: Split off older entries into...
367 * ChangeLog.22: This new file.
368
3692007-01-21 Werner Lemberg <wl@gnu.org>
370
Werner Lemberg555258f2007-01-21 09:46:37 +0000371 * docs/CHANGES: Document SHZ fix.
372
3732007-01-21 George Williams <gww@silcom.com>
374
375 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
376 points.
377
3782007-01-21 Werner Lemberg <wl@gnu.org>
379
Werner Lemberg011d1112007-01-21 09:36:00 +0000380 * src/sfnt/ttmtx.c (tt_face_get_metrics)
381 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
382
Werner Lemberg87a5a432007-01-17 12:44:39 +00003832007-01-17 Werner Lemberg <wl@gnu.org>
384
Werner Lembergb8003292007-01-17 12:56:25 +0000385
386 * Version 2.3.0 released.
387 =========================
388
389
390 Tag sources with `VER-2-3-0-FINAL'.
391
3922007-01-17 Werner Lemberg <wl@gnu.org>
393
Werner Lemberg87a5a432007-01-17 12:44:39 +0000394 * docs/release: Updated.
395
David Turner22122722007-01-16 20:06:44 +00003962007-01-16 David Turner <david@freetype.org>
397
Werner Lemberg87a5a432007-01-17 12:44:39 +0000398 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
399 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
400 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
401 warnings.
David Turner22122722007-01-16 20:06:44 +0000402
Werner Lemberg267e1d72007-01-15 07:48:09 +00004032007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
404
405 * builds/amiga/makefile, builds/amiga/makefile.os4,
406 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
407
408 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
409
Werner Lemberg8c4120d2007-01-15 06:42:40 +00004102007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
411
412 Fix various compiler warnings.
413
414 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
415 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
416 s/index/strike_index/.
417 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
418
419 * src/gxvalid/gxvmorx5.c
420 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
421
422 * src/truetype/ttinterp.c (Compute_Point_Displacement),
423 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
424 uninitialized variables.
425
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004262007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
427
428 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
429
Werner Lemberg281c1482007-01-13 22:50:51 +00004302007-01-13 Werner Lemberg <wl@gnu.org>
431
432 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
433 versions up to 0x3FF without complaining.
434
Werner Lembergac250b22007-01-13 14:01:36 +00004352007-01-13 Derek Clegg <dclegg@apple.com>
436
437 Add FT_Get_PS_Font_Info interface to CFF driver.
438
439 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
440 (CFF_FontRec): Add `font_info' field.
441
442 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
443 (cff_font_done): Free font->font_info if necessary.
444
445 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
446 (cff_service_ps_info): Register cff_ps_get_font_info.
447
Werner Lemberg23df31a2007-01-13 08:45:00 +00004482007-01-13 Werner Lemberg <wl@gnu.org>
449
450 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
451 with C++ compiler.
452
453 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
454 af_glyph_hints_dump_edges): Ditto.
455
456 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
457 `modules.cfg').
458
459 * src/sfnt/ttsbit0.h: Remove.
460
461 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
462
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004632007-01-12 David Turner <david@freetype.org>
464
465 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
466 bug in the bitmap emboldener if the pitch of the source bitmap is
467 much larger than its width.
468
469 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
470 compilation warning.
471
Werner Lemberg6d96d312007-01-12 10:30:19 +00004722007-01-12 Werner Lemberg <wl@gnu.org>
473
474 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
475 `automake' CVS module from sources.redhat.com.
476
Werner Lemberg17432b52007-01-12 09:28:44 +00004772007-01-11 Werner Lemberg <wl@gnu.org>
478
479 * src/type1/t1load.c (is_space): Removed.
480 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
481 (parse_charstrings): Use IS_PS_TOKEN.
482
483
484 * autogen.sh: Avoid bash specific syntax.
485
David Turner038ace22007-01-11 15:00:59 +00004862007-01-11 David Turner <david@freetype.org>
487
Werner Lemberg17432b52007-01-12 09:28:44 +0000488 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000489
Werner Lemberg17432b52007-01-12 09:28:44 +0000490 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000491
Werner Lemberg17432b52007-01-12 09:28:44 +0000492 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
493 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000494 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000495
Werner Lemberg17432b52007-01-12 09:28:44 +0000496 * autogen.sh: Small fix to get it working on Mac OS X properly:
497 The issue is that GNU libtool is called `glibtool' on this platform,
498 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000499
David Turner2628ea92007-01-10 13:15:56 +00005002007-01-10 David Turner <david@freetype.org>
501
Werner Lemberg17432b52007-01-12 09:28:44 +0000502 * all-sources: Tag all sources with VER-2-3-0-RC1 and
503 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000504
Werner Lemberg17432b52007-01-12 09:28:44 +0000505 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
506 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
507 version number to 2.3.0.
508
509 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
510 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000511
512 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000513 include/freetype/ftlcdfil.h: Update reference documentation with
514 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000515
Werner Lemberg17432b52007-01-12 09:28:44 +0000516 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
517 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000518
Werner Lembergbf02d392007-01-10 07:07:37 +00005192007-01-10 Derek Clegg <dclegg@apple.com>
520
521 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
522 values.
523
David Turnerf48b60e2007-01-08 15:15:32 +00005242007-01-08 David Turner <david@freetype.org>
525
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000526 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000527
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000528 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
529 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000530 corresponding to a given character pixel size.
531
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000532 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
533 `gasp' table, in order to avoid potential problems with later
534 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000535
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000536 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
537 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000538
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000539 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
540 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
541 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
542 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000543
Werner Lemberge6b6f372007-01-07 00:06:47 +00005442007-01-07 Werner Lemberg <wl@gnu.org>
545
Werner Lembergb8004d22007-01-07 09:13:38 +0000546 * src/cid/cidparse.c (cid_parser_new): Improve error message for
547 Type 11 fonts.
548 Scan for `/sfnts' token.
549
5502007-01-07 Werner Lemberg <wl@gnu.org>
551
552 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000553
Werner Lembergbe5f7972007-01-06 07:51:48 +00005542007-01-06 Werner Lemberg <wl@gnu.org>
555
556 * src/cff/cffload.c (cff_index_init): Remove unused variable.
557 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
558
David Turnera8cf42b2007-01-04 16:46:46 +00005592007-01-04 David Turner <david@freetype.org>
560
Werner Lembergf6294392007-01-06 07:47:45 +0000561 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
562 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000563
Werner Lembergf6294392007-01-06 07:47:45 +0000564
565 Do not allocate interpreter-specific tables in memory if we are not
566 going to load glyphs with the bytecode interpreter anyway.
567
568 * src/truetype/ttgload.c (tt_loader_init): Load execution context
569 only if glyph is hinted.
570 Updated.
571 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
572 and `cvs_ready'.
573 Add `tt_size_ready_bytecode' declaration.
574 * src/truetype/ttobjs.c (tt_size_done_bytecode,
575 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
576 (tt_size_init): Move most code into `tt_size_init_bytecode'.
577 (tt_size_done): Move most code into `tt_size_done_bytecode'.
578 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000579
David Turner91a34022007-01-05 14:47:08 +0000580
Werner Lembergf6294392007-01-06 07:47:45 +0000581 Don't extract the metrics table from the SFNT font file. Instead,
582 reparse it on each glyph load. The runtime difference is not
583 noticeable, and it can save a lot of heap memory when memory-mapped
584 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000585
Werner Lembergf6294392007-01-06 07:47:45 +0000586 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
587 `horz_metrics_offset' and `vert_metrics_ofset'.
588 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
589 Updated.
590
591
592 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
593
594
595 Do not load the CFF index offsets into memory, since this wastes a
596 *lot* of heap memory with large Asian CFF fonts. There is no
597 significant performance loss.
598
599 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
600 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
601 `data_size'.
602 (CFF_CharsetRec): Add field `num_glyphs'.
603
604 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
605 cff_charset_cid_to_gindex): New functions.
606 (cff_new_index): Renamed to...
607 (cff_index_init): This. Update all callers.
608 Updated -- some code has been moved to `cff_index_load_offsets'.
609 (cff_done_index): Renamed to...
610 (cff_index_done): This. Update all callers.
611 (cff_index_get_pointers, cff_index_access_element): Updated to use
612 stream offsets.
613 (cff_charset_compute_cids): Set `num_glyphs' field.
614 (cff_encoding_load): Updated.
615
616 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000617
6182007-01-04 David Turner <david@freetype.org>
619
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000620 * docs/INSTALL.UNIX: Simplify some parts, add reference to
621 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000622
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000623 * README.CVS: Add common problem description and solution
624 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000625
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000626 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000627
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000628 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000629
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000630 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000631
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000632 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
633 (TWorker): This.
634 Remove `count_table' and `memory'.
635 Make `grays' a pointer.
636 (TRaster): New structure.
637 (count_table): New static array.
638 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
639 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
640 ft_black_set_mode, ft_black_render): Updated.
641 (ft_black_init): Don't initialize `count_table'.
642 (ft_black_reset): Use the render pool. This saves about 6KB of
643 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000644
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000645 * src/smooth/ftgrays.c (TRaster): Replaced with...
646 (TWorker): This.
647 Remove `memory'.
648 (TRaster): New structure.
649
650 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
651 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
652 gray_render_span, gray_raster_render): Updated.
653 (gray_raster_reset): Use the render pool. This saves about 6KB of
654 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000655
David Turner8a6c44e2007-01-04 17:03:11 +0000656 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
657 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000658 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
659 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
660 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000661
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000662 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
663 Remove a typo that results in no hinting and a memory leak with some
664 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000665
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000666 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000667 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000668 CFF_Faces in it. We need to close all faces before destroying the
669 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000670
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006712007-01-02 Werner Lemberg <wl@gnu.org>
672
673 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
674 Remove compiler warning.
675
David Turner9207e002007-01-02 16:58:13 +00006762007-01-02 David Turner <david@freetype.org>
677
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000678 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000679
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006802006-12-31 Masatake YAMATO <jet@gyve.org>
681
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000682 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
683 function.
684 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000685 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000686 `gxv_kern_subtable_fmt0_pairs_validate'.
687
David Turner115b4422006-12-22 11:37:05 +00006882006-12-22 David Turner <david@freetype.org>
689
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000690 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
691 warnings.
David Turner115b4422006-12-22 11:37:05 +0000692
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000693 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
694 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000695
Werner Lemberg4755bf72006-12-16 08:58:44 +00006962006-12-16 Anders Kaseorg <anders@kaseorg.com>
697
698 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
699 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
700
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00007012006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
702
Werner Lemberg9b774e22007-01-16 06:11:27 +0000703 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000704 sync with the modification by Jens Claudius on 2006-08-22; cf.
705 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 +0000706
7072006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
708
709 * src/base/ftmac.c: Specialized for Mac OS X only.
710 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
711 * builds/unix/configure.raw: Ditto. When explicit switches for
712 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
713 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
714
7152006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
716
717 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
718 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
719 instead of src/base/ftmac.c
720 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
721 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
722 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
723 that cannot be built at present.
724
7252006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
726
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000727 * src/base/ftobjs.c: Improvement of resource fork handler for
728 POSIX, cf.
729 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000730 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
731 format or .dfont, to simulate the face index number counted by ftmac.c.
732 (IsMacResource): Return the number of scalable faces correctly.
733
Werner Lembergec5b4502006-12-10 07:51:38 +00007342006-12-10 Werner Lemberg <wl@gnu.org>
735
736 * builds/toplevel.mk (version): Protect against `distclean' target.
737
Werner Lembergb26b3142006-12-09 20:01:43 +00007382006-12-09 Werner Lemberg <wl@gnu.org>
739
740 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
741 or `type'.
742
743 * builds/freetype.mk (version): Extracted from freetype.h, using
744 GNU make's built-in string functions.
745 (refdoc): Use $(version) instead of static version number.
746
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007472006-12-08 Werner Lemberg <wl@gnu.org>
748
749 * builds/toplevel.mk (dist): Extract version number from freetype.h.
750
Werner Lemberg15c29502006-12-09 07:29:54 +00007512006-12-08 Vladimir Volovich <vvv@vsu.ru>
752
753 * src/tools/apinames (State): Remove final comma in structure -- xlc
754 v5 under AIX 4.3 doesn't like this.
755
David Turnerdbf3b432006-12-07 21:18:09 +00007562006-12-07 David Turner <david@freetype.org>
757
Werner Lemberg256a3512006-12-08 06:49:33 +0000758 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
759 to the spacing of auto-fitted glyphs. This only impacts rare
760 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000761
Werner Lemberg11171312006-12-03 09:43:40 +00007622006-12-03 Werner Lemberg <wl@gnu.org>
763
764 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
765
Werner Lemberg960ba592006-12-01 08:20:47 +00007662006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000767
Werner Lemberg960ba592006-12-01 08:20:47 +0000768 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
769 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
770 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000771
David Turner80658e52006-11-28 08:09:20 +0000772
Werner Lemberg960ba592006-12-01 08:20:47 +0000773 * include/freetype/ftxf86.h: Fix and extend comment so that it
774 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000775
Werner Lemberg960ba592006-12-01 08:20:47 +0000776 * include/freetype/ftchapters.h: Add `font_format' section.
777
778
779 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
780 to TOC in index page.
781
7822006-11-28 David Turner <david@freetype.org>
783
784 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
785 trying to render into a zero-width/height bitmap, not an error code.
786
787 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
788
789 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
790 ones instead.
791
792 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
793 variable.
David Turner80658e52006-11-28 08:09:20 +0000794
Werner Lemberg8636c292006-11-26 22:28:13 +00007952006-11-26 Pierre Hanser <hanser@club-internet.fr>
796
797 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
798
Werner Lemberg960ba592006-12-01 08:20:47 +00007992006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000800
Werner Lemberg960ba592006-12-01 08:20:47 +0000801 * src/autofit/afhints.c (af_glyph_hints_dump_points,
802 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
803 Add stubs to link the `ftgrid' test program when debugging is
804 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000805
Werner Lemberg960ba592006-12-01 08:20:47 +00008062006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000807
808 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000809 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
810
811 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
812 Emit more sensible information.
813
814 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
815
816 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
817 rounding of blue values.
818 (af_latin_hints_compute_segments): Hint segment heights.
819 (af_latin_hints_link_segments): Reduce `len_score' value.
820 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
821 value and use `height' member for comparisons.
822 (af_latin_hint_edges): Extend logging message.
823 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000824
Werner Lemberg91959bf2006-11-22 10:36:55 +00008252006-11-22 Werner Lemberg <wl@gnu.org>
826
827 Fix Savannah bug #15553.
828
829 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
830 program after a change from mono to grayscaling (and vice versa).
831 Use correct constant for comparison to get `exec->grayscale'.
832
Werner Lemberg913a3652006-11-19 09:19:17 +00008332006-11-18 Werner Lemberg <wl@gnu.org>
834
835 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000836 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000837 This patch fixes Savannah bug #18301.
838
839 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
840 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
841 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
842 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
843 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
844 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
845 (FNT_Load_Glyph): Check validity of `glyph_index'.
846
David Turner7bab6ae2006-11-13 11:25:06 +00008472006-11-13 David Turner <david@freetype.org>
848
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000849 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
850 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000851
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000852 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
853 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
854 when building the library to change the default LCD filter to be
855 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000856
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000857 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000858
David Turner8765c712006-11-10 16:49:42 +00008592006-11-10 David Turner <david@freetype.org>
860
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000861 * src/smooth/ftsmooth.c: API change for the LCD
862 filter. The FT_LcdFilter value is an enumeration describing which
863 filter to apply, with new values FT_LCD_FILTER_LIGHT and
864 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
865 algorithm which produces strong color fringes for everything
866 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000867
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000868 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
869 second parameter to an enum type.
870
871 * src/base/ftlcdfil.c (USE_LEGACY): Define.
872 (_ft_lcd_filter): Rename to...
873 (_ft_lcd_filter_fir): This.
874 Update parameters.
875 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
876 (FT_Library_Set_LcdFilter): Update parameters.
877 Handle new filter modes.
878
879 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
880 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
881 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
882 callback and update other fields.
883
884 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
885 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
886 Other minor improvements.
887
888 * src/autofit/aflatin.c: Various tiny improvements that drastically
889 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
890 (af_latin_hints_compute_edges): Fix typo.
891 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000892
David Turner4e9cc3c2006-11-09 16:31:52 +00008932006-11-09 David Turner <david@freetype.org>
894
Werner Lemberg49c77a82006-11-09 21:51:57 +0000895 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
896 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000897
Werner Lemberg5e430892006-11-07 09:35:03 +00008982006-11-07 Zhe Su <james.su@gmail.com>
899
900 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
901 also.
902
Werner Lemberg111b5ae2006-11-03 09:40:12 +00009032006-11-03 Werner Lemberg <wl@gnu.org>
904
905 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
906
David Turner40604742006-11-02 16:37:35 +00009072006-11-02 David Turner <david@freetype.org>
908
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000909 Add a few tweaks to better handle serif fonts.
910 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000911
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000912 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
913 segments that are less than 1.5 pixels high. This gets rid of
914 *many* corner cases with serifs.
915 (af_latin_align_linked_edge): Add logging message.
916 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
917 Add logging messages.
918 Handle AF_EDGE_FLAG flag specially.
919
920 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
921 _af_debug_disable_blue_hints, and _af_debug_hints variables.
922
923 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
924 Update external declarations.
925 (af_corner_orientation, af_corner_is_flat): Replaced by...
926
927 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
928 ft_corner_is_flat): These declarations.
929
930 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
931 Comment out. Replaced by...
932
933 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
934 These functions. Update all callers.
935 (FT_Add64) [!FT_LONG64]: Simplify.
936
937 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
938 (af_direction_compute): Add a missing FT_ABS call. This bug caused
939 production of garbage by missing lots of segments.
940
941 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
942
943 * src/autofit/afloader.c (af_loader_init, af_loader_done)
944 [AF_DEBUG]: Set _af_debug_hints.
945
946
947 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
948 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
949 and ft_corner_orientation.
950
951
952 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000953
Werner Lemberge88c5262006-10-24 05:46:26 +00009542006-10-24 Werner Lemberg <wl@gnu.org>
955
956 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
957
958 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
959 as argument.
960
David Turnera1861392006-10-23 16:00:59 +00009612006-10-23 Zhe Su <zsu@novell.com>
962
Werner Lemberg715e96e2006-10-24 05:28:45 +0000963 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
964 better deal with broken Asian fonts with strange glyphs, having
965 self-intersections and other peculiarities. The used algorithm is
966 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000967
David Turnere140f142006-10-23 08:56:57 +00009682006-10-23 David Turner <david@freetype.org>
969
Werner Lemberg715e96e2006-10-24 05:28:45 +0000970 Speed up the CFF font loader. With some large CFF fonts,
971 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000972
Werner Lemberg715e96e2006-10-24 05:28:45 +0000973 * src/cff/cffload.c (cff_get_offset): Removed.
974 (cff_new_index): Inline functionality of `cff_get_offset'.
975 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
976 (cff_charset_done): Call `cff_charset_free_cids'.
977 (cff_charset_load): Call `cff_charset_compute_cids'.
978 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
979
980 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
981 with FT_NEXT_XXX.
982
983
984 Speed up the Postscript hinter, with more than 100% speed increase
985 on my machine.
986
987 * src/pshinter/pshalgo.c (psh_corner_is_flat,
988 psh_corner_orientation): New functions.
989 (psh_glyph_compute_inflections): Merge loops for efficiency.
990 Use `psh_corner_orientation'.
991 (psh_glyph_init): Use `psh_corner_is_flat'.
992 (psh_hint_table_find_strong_point): Renamed to...
993 (psh_hint_table_find_strong_points): This.
994 Rewrite, adding argument to handle all points at once.
995 Update all callers.
996 (PSH_MAX_STRONG_INTERNAL): New macro.
997 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000998
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009992006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1000
1001 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001002 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001003
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000010042006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1005
1006 * docs/INSTALL.CROSS: New document file for cross-building.
1007
1008 * builds/unix/configure.raw: Preliminary cross-building support.
1009 Find native C compiler and pass it by CC_BUILD, and
1010 find suffix for native executable and pass it by EXEEXT_BUILD.
1011 Also suffix for target executable is passed by EXEEXT.
1012
Werner Lembergb9e6d692006-10-15 08:58:40 +00001013 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1014 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001015 CC_BUILD and EXEEXT_BUILD.
1016
Werner Lembergb9e6d692006-10-15 08:58:40 +00001017 * builds/exports.mk (APINAMES_EXE): Change the extension for
1018 apinames from the suffix for target (E) to that for building host
1019 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001020
Werner Lemberg82a07e92006-10-12 06:20:44 +000010212006-10-12 Werner Lemberg <wl@gnu.org>
1022
1023 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1024 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1025 which reference those files.
1026
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010272006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1028
Werner Lembergb9e6d692006-10-15 08:58:40 +00001029 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1030 embedded in freetype2.pc and freetype-config. Use it to record
1031 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001032
1033 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1034
1035 * builds/unix/freetype-config.in: Ditto.
1036
Werner Lemberg28e17d92006-10-11 17:27:47 +000010372006-10-11 Werner Lemberg <wl@gnu.org>
1038
1039 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1040 development.
1041
Jens Claudius336d2292006-10-03 08:53:37 +000010422006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1043
1044 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1045 argument to ft_setjmp.
1046
1047 * include/freetype/internal/ftvalid.h: Add comment that
1048 ft_validator_run must not be used.
1049
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010502006-10-01 Werner Lemberg <wl@gnu.org>
1051
1052 * src/base/ftbase.c: Undo change from 2006-09-30.
1053
1054 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1055
10562006-09-30 David Turner <david@freetype.org>
1057
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001058 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1059 s/unpatented_hinting/ignore_unpatented_hinter/.
1060 Update all callers.
1061
1062 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1063 auto-hinting shall be used or not.
1064
1065 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001066
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010672006-09-30 Werner Lemberg <wl@gnu.org>
1068
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001069 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1070 in use).
1071
1072 * src/base/ftbase.c: Include `ftlcdfil.c'.
1073
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010742006-09-29 Werner Lemberg <wl@gnu.org>
1075
1076 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1077 overlapping segments. Bug reported by Stefan Koch.
1078
David Turnerad830712006-09-27 16:20:59 +000010792006-09-28 David Turner <david@freetype.org>
1080
Werner Lemberg2c002e12006-09-29 21:31:53 +00001081 Fix a bug in the automatic unpatented hinting support which prevents
1082 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001083
Werner Lemberg2c002e12006-09-29 21:31:53 +00001084 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1085 s/force_autohint/unpatented_hinting/. Update all callers.
1086
1087 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1088
1089 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001090
David Turner8a317cf2006-09-27 07:52:48 +000010912006-09-27 David Turner <david@freetype.org>
1092
Werner Lemberg2c002e12006-09-29 21:31:53 +00001093 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001094
David Turner8a317cf2006-09-27 07:52:48 +00001095
David Turnere140f142006-10-23 08:56:57 +00001096 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001097 In a default build, the function `FT_Library_SetLcdFilter' returns
1098 `FT_Err_Unimplemented_Feature'; you need to #define
1099 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1100 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001101
Werner Lemberg2c002e12006-09-29 21:31:53 +00001102 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001103
Werner Lemberg2c002e12006-09-29 21:31:53 +00001104 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1105 typedef.
1106 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1107 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001108
Werner Lemberg2c002e12006-09-29 21:31:53 +00001109 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1110 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001111
Werner Lemberg2c002e12006-09-29 21:31:53 +00001112 Handle subpixel rendering.
1113 Simplify function.
1114 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1115 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1116
1117 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1118 pointing to <freetype/ftlcdfil.h>.
1119
1120 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1121 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1122
1123 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001124
Werner Lemberge20df4a2006-09-27 06:29:21 +000011252006-09-26 David Bustin
1126
1127 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1128 correctly. Reported as Savannah bug #17843.
1129
David Turner6f8c6222006-09-26 15:42:44 +000011302006-09-26 David Turner <david@freetype.org>
1131
Werner Lemberg110246c2006-09-26 21:55:44 +00001132 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1133 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1134 horizontal and vertical hinting for the purpose of debugging the
1135 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001136
Werner Lemberg110246c2006-09-26 21:55:44 +00001137 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1138 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001139
Werner Lemberg110246c2006-09-26 21:55:44 +00001140 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1141
1142 * include/freetype/config/ftoption.h, devel/ftoption.h
1143 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1144 we want to compile LCD-optimized rendering code (à la ClearType) or
1145 not. The macro *must* be disabled in default builds of the library
1146 for patent reasons.
1147
1148 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1149 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1150 isn't defined at compile time. This only changes the content of the
1151 rendered glyph to match the one of normal gray-level rendering,
1152 hence clients should not need to be modified.
1153
1154 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001155
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011562006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1157
1158 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1159 LWFN fails and both are available.
1160
David Turnerf3050052006-09-11 12:00:32 +000011612006-09-11 David Turner <david@freetype.org>
1162
Werner Lembergf9644552006-09-12 13:48:10 +00001163 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1164 report their English names through an Apple Roman
1165 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001166
Werner Lembergf9644552006-09-12 13:48:10 +00001167 If the font uses another name entry with language_id == English, it
1168 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001169
Werner Lembergf9644552006-09-12 13:48:10 +00001170 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1171 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001172
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011732006-09-05 Werner Lemberg <wl@gnu.org>
1174
1175 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001176 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001177 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1178 `HAN NOM B.ttf').
1179
1180 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1181
David Turner772e55d2006-09-05 09:45:15 +000011822006-09-05 David Turner <david@freetype.org>
1183
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001184 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001185
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001186 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1187 (TRaster): Remove `count_ex' and `count_ey'.
1188 (gray_find_cell): Remove 2nd and 3rd argument.
1189 (gray_alloc_cell): Merged with `gray_find_cell'.
1190 (gray_record_cell): Simplify.
1191 (gray_set_cell): Rewrite.
1192 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1193 (gray_render_span): Don't use FT_MEM_SET for small values.
1194 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1195 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1196 bitmap scanline.
1197 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001198
David Turneraa557a92006-09-04 16:42:44 +000011992006-09-04 David Turner <david@freetype.org>
1200
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001201 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1202 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001203
Werner Lemberg2d8629b2006-09-03 06:18:45 +000012042006-09-03 Werner Lemberg <wl@gnu.org>
1205
1206 * devel/ftoption.h: Synchronize with
1207 include/freetype/config/ftoption.h.
1208
1209 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1210 variable declaration.
1211 (gray_convert_glyph): Fix compiler warnings.
1212
David Turner6d79f212006-09-01 14:09:35 +000012132006-09-01 David Turner <david@freetype.org>
1214
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001215 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1216 to recognize a few fonts that require the automatic unpatented
1217 loader.
David Turnerbd502952006-09-01 19:05:24 +00001218
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001219 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1220 rasterizer. The speed improvement is between 15% and 25%, depending
1221 on the font data.
1222
1223 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1224 (TCell): Redefine.
1225 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1226 (gray_init_cells): Updated.
1227 (gray_find_cell, gray_alloc_cell): New functions.
1228 (gray_record_cell): Rewritten to use `gray_find_cell' and
1229 `gray_alloc_cell'.
1230 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1231 QSORT_THRESHOLD):
1232 Removed.
1233 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1234 gray_dump_cells): Removed.
1235 (gray_sweep): Rewritten.
1236 (gray_convert_glyph): Rewrite code which used one of the sorting
1237 functions.
1238 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001239
Werner Lembergd898aed2006-08-29 09:50:34 +000012402006-08-29 Dr. Werner Fink <werner@suse.de>
1241
1242 * configure: Make it possible to handle configure options which
1243 have strings containing spaces.
1244
12452006-08-27 David Turner <david@freetype.org>
1246
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001247 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1248 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1249 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1250
1251 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1252 src/truetype/truetype.c, src/truetype/ttdriver.c,
1253 src/truetype/ttgload.c, src/truetype/ttgload.h,
1254 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1255 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1256 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1257
1258 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1259 member `force_autohint'.
1260
1261 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1262
1263 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1264 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001265
Jens Claudiusa787f452006-08-27 11:26:18 +000012662006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1267
1268 Fix miscellaneous compiler warnings.
1269
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001270 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1271 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001272
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001273 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1274 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1275 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001276
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001277 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1278 volatileness of argument to ft_longjmp. Spotted by Werner
1279 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001280
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001281 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1282 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001283
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001284 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1285 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001286
Werner Lembergc4c35b72006-08-27 08:03:46 +000012872006-08-27 Werner Lemberg <wl@gnu.org>
1288
1289 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1290 Reported by Jens.
1291
Jens Claudius088e44e2006-08-22 14:24:30 +000012922006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001293
Jens Claudius088e44e2006-08-22 14:24:30 +00001294 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001295 about addresses of volatile objects passed as function arguments as
1296 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001297
Werner Lembergc4c35b72006-08-27 08:03:46 +00001298 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1299 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001300
1301 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1302 argument `table' a pointer to a volatile object.
1303
1304 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1305 argument `table' a pointer to a volatile object.
1306
Jens Claudius2652bd52006-08-18 17:20:37 +000013072006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1308
1309 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1310 variable `_sfnt' as volatile since it must keep its value across
1311 a call to ft_setjmp.
1312 (gxv_validate): Same for local variables `memory' and `valid'.
1313 (classic_kern_validate): Same for local variables `memory',
1314 `ckern', and `valid'.
1315
1316 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1317 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1318 `jstf', and 'valid'.
1319
1320 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1321 local variable `cmap'.
1322
David Turner9fbfc6a2006-08-16 09:11:31 +000013232006-08-16 David Turner <david@freetype.org>
1324
Werner Lemberg12342992006-08-19 11:18:09 +00001325 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1326 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001327
Werner Lemberg12342992006-08-19 11:18:09 +00001328 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1329 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001330
David Turner33f5f242006-08-16 16:50:55 +00001331
Werner Lemberg12342992006-08-19 11:18:09 +00001332 Improvements to native TrueType hinting. This is a first try,
1333 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1334
1335 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1336 `extra_points2'.
1337
1338 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1339 `orus'.
1340
1341 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1342 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1343 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1344 handle `extra_points2'.
1345
1346 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1347 Remove compiler warning.
1348 (cur_to_arg): Remove macro.
1349 (TT_Hint_Glyph): Updated.
1350 (TT_Process_Simple_Glyph): Handle `orus'.
1351
1352 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1353 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1354 (LOC_Ins_IUP): Renamed to...
1355 (IUP_WorkerRec): This.
1356 Add `orus' member.
1357 (Shift): Renamed to...
1358 (_iup_worker_shift): This.
1359 Updated.
1360 (Interp): Renamed to...
1361 (_iup_worker_interpolate): This.
1362 Updated to handle `orus'.
1363 (Ins_IUP): Updated.
1364
1365 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1366 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001367
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013682006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1369
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001370 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001371 build ftvalid in ft2demos. This has been inadvertedly changed
1372 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001373
13742006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1375
Werner Lemberg12342992006-08-19 11:18:09 +00001376 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1377 Jens:
1378 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001379
Werner Lemberg12342992006-08-19 11:18:09 +00001380 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1381 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001382
1383 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1384
Jens Claudius9950adc2006-08-13 12:14:36 +000013852006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1386
Werner Lemberg12342992006-08-19 11:18:09 +00001387 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1388 T1_TOKEN_TYPE_KEY.
1389 (T1_FieldRec): Add `dict'.
1390 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1391 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1392 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001393
Werner Lemberg12342992006-08-19 11:18:09 +00001394 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1395 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001396
1397 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1398
1399 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001400 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1401 not T1_TOKEN_TYPE_ANY.
1402 (ps_parser_load_field): Make sure a token that should be a string or
1403 name is really a string or name.
1404 Avoid memory leak if a keyword has been already encountered and its
1405 value is overwritten.
1406 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1407 T1_FIELD_XXX.
1408 (parse_dict): Ignore keywords that occur in the wrong dictionary
1409 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001410
Werner Lemberg12342992006-08-19 11:18:09 +00001411 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1412 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001413
Werner Lemberg12342992006-08-19 11:18:09 +00001414 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1415 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001416
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000014172006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1418
1419 Move creation of field `buildchar' of T1_DecoderRec out of
1420 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1421 of it.
1422
1423 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1424 and `T1_Compute_Max_Advance'.
1425
1426 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1427 Remove field `face', add `len_buildchar'.
1428
1429 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1430 field `buildchar'.
1431
1432 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1433 finisher for T1_Decoder.
1434 (cid_slot_load_glyph): Do not ignore failure when initializing the
1435 T1_Decoder.
1436
1437 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1438 Updated.
1439 (t1_decoder_init): Remove initialization of fields `buildchar' and
1440 `len_buildchar'.
1441 (t1_decoder_done): Remove deallocation of field `buildchar'.
1442
1443 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1444 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1445 T1_Decoder.
1446 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1447 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1448 case of error.
1449
1450 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1451 `buildchar' of T1_FaceRec.
1452
1453 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1454 `buildchar' of T1_FaceRec.
1455
Werner Lemberg1a380e02006-07-14 18:28:08 +000014562006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1457
1458 * freetype2/include/freetype/internal/psaux.h: New macros
1459 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1460 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1461 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1462 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1463 (T1_DecoderRec): New fields `buildchar' and `face'.
1464 (IS_PS_TOKEN): New macro.
1465
1466 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1467 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1468
1469 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1470 `default_design_vector' and `num_default_design_vector'.
1471
1472 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1473 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1474 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1475
1476 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1477 `token' argument to be NULL if we want only to count the number of
1478 tokens.
1479 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1480 want to skip the array.
1481 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1482 want to skip the array.
1483
1484 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1485 support for (partially commented out) othersubrs 19-25, 27, and 28.
1486 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1487 (t1_decoder_done): Release new field `buildchar'.
1488
1489 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1490 functions.
1491 (t1_keywords): Register them.
1492 (t1_allocate_blend): Updated.
1493 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1494 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1495 (parse_dict): Remove `keyword_flags' argument.
1496 Use new macro IS_PS_TOKEN.
1497 Changed function so that later PostScript definitions override
1498 earlier ones.
1499 (t1_init_loader): Initialize new field `keywords_encountered'.
1500 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1501 `len_buildchar'.
1502 Remove `keywords_flags'.
1503
1504 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1505 `keywords_encountered'.
1506 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1507
1508 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1509 New entries for parsing /NDV, /CDV, and /DesignVector.
1510
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000015112006-07-07 Werner Lemberg <wl@gnu.org>
1512
1513 Add many checks to protect against malformed PCF files.
1514
1515 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1516 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1517
1518 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1519 data and check that tables don't overlap (using a simple
1520 bubblesort).
1521 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1522 New macros which give the size of data structures in the data
1523 stream.
1524 (pcf_get_properties): Use rough estimates to get array size limits.
1525 Assign `face->nprops' and `face->properties' earlier so that a call
1526 to PCF_Face_Done can do the clean-up in case of error.
1527 Protect against invalid string offsets.
1528 (pcf_get_metrics): Clean up code.
1529 Adjust tracing message levels.
1530 Use rough estimate to get array size limit.
1531 (pcf_get_bitmaps): Clean up code.
1532 Adjust tracing message levels.
1533 Use rough estimates to get offset limits.
1534 (pcf_get_encodings): Adjust tracing message level.
1535 (pcf_get_accel): Clean up code.
1536
Werner Lemberg8eb05252006-06-27 06:20:01 +000015372006-06-26 Werner Lemberg <wl@gnu.org>
1538
1539 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1540 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1541
Werner Lemberg24703f82006-06-26 19:12:51 +000015422006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1543
1544 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1545 (t1_decoder_parse_charstrings): Operator with
1546 opcode 15 pops its two arguments.
1547 Handle the case where the pops of an othersubr may be part of a
1548 subroutine.
1549 Handle unknown othersubrs gracefully: count their operands and let
1550 the following pop operators push the operands as the results onto
1551 the Type1 stack.
1552 Improve handling of setcurrentpoint opcode.
1553
Werner Lembergc011f4c2006-06-26 09:40:00 +000015542006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1555
1556 The Type 1 parser now skips over top-level procedures as required
1557 for a `Simplified Parser'. This makes the parser more robust as it
1558 doesn't poke around in PostScript code. Additionally, it makes the
1559 FontDirectory hackery in src/type1/t1load.c unnecessary.
1560
1561 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1562 (skip_literal_string): Add FT_Error as return value.
1563 Handle escapes better.
1564 (skip_string): Add FT_Error as return value.
1565 Don't set `parser->error' but return error code directly.
1566 (skip_procedure): New function.
1567 (ps_parser_skip_PS_token): Handle procedures.
1568 Update code.
1569 (ps_parser_to_token): Update code.
1570 (ps_parser_load_field_table): Handle bbox entries also.
1571
1572 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1573 Add commented-out code for synthetic fonts.
1574
Werner Lemberga2da05c2006-06-25 06:27:27 +000015752006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1576
1577 Fix two hinting bugs as reported in
1578 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1579
1580 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1581 `first_point' member.
1582
1583 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1584 `first_point'.
1585 (TT_Process_Composite_Glyph): Always untouch points.
1586
1587 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1588 `first_point' and `last_point' in case of composite glyphs.
1589 (Ins_IUP): Fix computation of `end_point'.
1590
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015912006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1592
Werner Lembergef3d2c22006-06-25 06:07:14 +00001593 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1594 Mac. The original patch was written by David Sachitano and Lawrence
1595 Coopet, and modified by Sean McBride for MPW compatibility. Only
1596 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001597
Werner Lembergef3d2c22006-06-25 06:07:14 +00001598 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1599 Mac OS X platforms.
1600 (OS_INLINE): Undefine before definition.
1601 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1602 FontAssociation table in FOND resource.
1603 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1604 and fontSize at each entry of FontAssociation table in FOND
1605 resource.
1606 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1607 ffStylOff of FamilyRecord header of FOND resource, the header,
1608 fontSize, fontID at each entry of FontAssociation table, and
1609 StyleMapping table.
1610 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001611
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000016122006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1613
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001614 Public API of TrueTypeGX, OpenType, and classic kern table validator
1615 should return `FT_Err_Unimplemented_Feature' if validation service
1616 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001617 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001618 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1619
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001620 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1621 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1622 unavailable.
1623 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1624 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001625
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001626 * src/base/ftotval.c (FT_OpenType_Validate): Return
1627 FT_Err_Unimplemented_Feature if OpenType validation service is
1628 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001629
Werner Lembergb10e45a2006-06-08 07:32:56 +000016302006-06-08 Werner Lemberg <wl@gnu.org>
1631
1632 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1633 errors.
1634
David Turner5f1f7502006-06-07 05:11:50 +000016352006-06-07 David Turner <david@freetype.org>
1636
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001637 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1638 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1639 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001640
David Turner457b4a82006-06-06 08:14:14 +000016412006-06-06 David Turner <david@freetype.org>
1642
Werner Lemberg4836f952006-06-06 12:54:08 +00001643 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001644
Werner Lemberg4836f952006-06-06 12:54:08 +00001645 We change `ps_unicodes_init' so that it also takes a
1646 `free_glyph_name' callback to release the glyph names returned by
1647 `get_glyph_name'
1648
1649 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1650 Renamed to ...
1651 (PS_GetGlyphNameFunc): This.
1652 (PS_FreeGlyphNameFunc): New typedef.
1653 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1654
1655 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1656 argument.
1657 (cff_sid_free_glyph_name): New function.
1658 (cff_cmap_unicode_init): Updated.
1659
1660 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1661
1662 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1663 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001664
1665
David Turner09717352006-06-04 14:33:08 +000016662006-06-04 David Turner <david@freetype.org>
1667
Werner Lembergd724f202006-06-04 15:17:41 +00001668 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1669 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001670 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001671
Werner Lembergd724f202006-06-04 15:17:41 +00001672 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1673 of `face->num_glyphs' which missed the last glyph, due to
1674 the offset-by-1 computation, since the PFR format doesn't
1675 guarantee that glyph index 0 corresponds to the `missing
1676 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001677
Werner Lemberg33779662006-05-26 06:30:05 +000016782006-05-25 Werner Lemberg <wl@gnu.org>
1679
1680 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1681 `-no-undefined'. Reported by Christian Biesinger.
1682
Werner Lemberg24773d62006-05-20 08:53:13 +000016832006-05-19 Brian Weed <bw@imaginengine.com>
1684
1685 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1686 have debug information, and debug libraries use `C7 compatible'
1687 debug info.
1688
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016892006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1690
Werner Lemberga6523a62006-05-20 08:47:01 +00001691 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001692 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001693
Werner Lemberga6523a62006-05-20 08:47:01 +00001694 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1695 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001696
1697 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001698 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001699
17002006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1701
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001702 * build/unix/configure.raw: Add a fallback to disable Carbon
1703 dependency, if configured with no options on Mac OS X.
1704
17052006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1706
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001707 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001708 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001709 the second part of Savannah bug #16590.
1710
Werner Lemberg545c4e52006-05-17 22:55:04 +000017112006-05-18 Werner Lemberg <wl@gnu.org>
1712
1713 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1714 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1715
David Turnerdc3ff312006-05-17 12:59:35 +000017162006-05-17 David Turner <david@freetype.org>
1717
Werner Lemberg545c4e52006-05-17 22:55:04 +00001718 This is a major patch used to drastically improve the performance of
1719 loading glyphs. This both speeds up loading the glyph vectors
1720 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001721
Werner Lemberg545c4e52006-05-17 22:55:04 +00001722 We now use inline assembler code with GCC to implement `FT_MulFix',
1723 which is probably the most important function related to the
1724 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001725
Werner Lemberg545c4e52006-05-17 22:55:04 +00001726 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001727
1728
Werner Lemberg545c4e52006-05-17 22:55:04 +00001729 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1730 `cursor' and `limit'.
1731
1732 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1733 New functions.
1734 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1735 [TEST]: Remove.
1736
1737 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1738 code.
1739
1740 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1741 `FT_ZERO'
1742 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1743 (af_glyph_hints_reload: Rewrite recognition of weak points.
1744
1745 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1746 constant values out of the loops.
1747
1748 * src/autofit/aftypes.h: Updated.
1749
1750 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1751
1752 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1753 product to get orientation.
1754
1755 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1756 (FT_Stream_OpenGzip): Use it to handle small files directly in
1757 memory.
1758
1759 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1760 Improve performance.
1761
1762 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1763 `limit'.
1764
1765 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1766 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1767 exceedingly large values of number of contours. Speed up by
1768 reducing the number of loops.
1769
1770 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1771
1772
1773 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1774 used to detect rogue clients from 4 to 16. This is to prevent some
1775 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1776 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001777
Werner Lembergde2d90a2006-05-17 08:54:30 +000017782007-05-17 Werner Lemberg <wl@gnu.org>
1779
1780 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001781 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001782
17832006-05-16 Werner Lemberg <wl@gnu.org>
1784
1785 * docs/PROBLEMS: Updated icl issues.
1786
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001787----------------------------------------------------------------------------
1788
Werner Lemberg42b63b22007-01-21 21:01:33 +00001789Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001790David Turner, Robert Wilhelm, and Werner Lemberg.
1791
1792This file is part of the FreeType project, and may only be used, modified,
1793and distributed under the terms of the FreeType project license,
1794LICENSE.TXT. By continuing to use, modify, or distribute this file you
1795indicate that you have read the license and understand and accept it
1796fully.
1797
1798
1799Local Variables:
1800version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001801coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001802End: