blob: 5caf8a80072d6934bbb785fdf421b365f50b4d87 [file] [log] [blame]
Werner Lembergc793d902007-06-01 20:51:11 +000012007-06-01 Sean McBride <sean@rogue-research.com>
2
3 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
4 unused.
5
Werner Lembergbebc7b12007-06-01 06:32:30 +000062007-06-01 Werner Lemberg <wl@gnu.org>
7
8 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
9 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +000010 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +000011
Werner Lembergcb37b3b2007-06-01 06:49:03 +000012 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
13 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
14
Werner Lembergba03af62007-05-30 13:57:02 +0000152007-05-30 Werner Lemberg <wl@gnu.org>
16
17 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
18 against too small binary data strings.
19
20 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
21
David Turnerf0cd69c2007-05-28 15:42:09 +0000222007-05-28 David Turner <david@freetype.org>
23
Werner Lemberg99e0c182007-05-29 07:00:23 +000024 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
25 transformation. This significantly reduces the loading time of CFF
26 glyphs.
David Turner552a9562007-05-28 15:45:35 +000027
Werner Lemberg99e0c182007-05-29 07:00:23 +000028 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +000029
Werner Lemberg99e0c182007-05-29 07:00:23 +000030 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
31 hinting script to CJK, since it works well with more scripts than
32 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
33 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +000034
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000352007-05-25 Werner Lemberg <wl@gnu.org>
36
37 * docs/CHANGES: Updated.
38
Werner Lemberg6ff2ff52007-05-24 19:39:14 +0000392007-05-24 Werner Lemberg <wl@gnu.org>
40
41 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
42 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
43
442007-05-24 Graham Asher <graham.asher@btinternet.com>
45
46 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
47 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
48
David Turner0d0365e2007-05-22 09:53:44 +0000492007-05-22 David Turner <david@freetype.org>
50
Werner Lemberg1c8980e2007-05-25 07:11:12 +000051 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
52 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +000053
Werner Lemberg1c8980e2007-05-25 07:11:12 +000054
55 Avoid heap blowup with very large .Z font files. This fixes
56 Savannah bug #19910.
57
58 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
59 `in_limit', `pad', `pad_bits', and `in_buff' members.
60 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
61 `buf_total' members.
62
63 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
64 only one argument.
65 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +000066
672007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +000068
69 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
70 (ps_dimension_set_mask_bits): Remove `const'.
71
David Turner0d0365e2007-05-22 09:53:44 +0000722007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000073
74 * src/sfnt/ttmtx.c (tt_face_get_metrics)
75 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
76
Werner Lembergb826fa72007-05-19 07:18:48 +0000772007-05-19 Derek Clegg <dclegg@apple.com>
78
79 Savannah patch #5929.
80
81 * include/freetype/tttables.h, src/base/ftobjcs.c
82 (FT_Get_CMap_Format): New function.
83
84 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
85 `format' member.
86 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
87 cmap_info->format.
88
Werner Lemberg6f99c882007-05-19 07:01:49 +0000892007-05-19 Werner Lemberg <wl@gnu.org>
90
91 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
92 before handling subglyphs so that it can be reinitialized each time.
93 This fixes Savannah bug #19859.
94
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000952007-05-16 Werner Lemberg <wl@gnu.org>
96
97 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
98 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
99 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
100 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
101 tt_face_get_metrics): Fix type-punning issues.
102
David Turner0a24bd22007-05-15 10:54:10 +00001032007-05-15 David Turner <david@freetype.org>
104
105 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000106 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
107 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000108 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000109 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000110
Werner Lemberg607dec72007-05-15 06:49:37 +00001112007-05-15 Graham Asher <graham.asher@btinternet.com>
112
113 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
114 variable.
115 * src/autofit/afloader.c (af_loader_load_g): Ditto.
116
117 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
118 (open_face_from_buffer): Initialize `stream'.
119 (FT_Request_Metrics): Remove unused variable.
120 Remove redundant `break' statements.
121 (FT_Get_Track_Kerning): Remove unused variable.
122
123 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
124 afm_parse_kern_data): Remove redundant
125 `break' statements.
126 (afm_parser_parse): Ditto.
127 Don't use uninitialized variables.
128
129 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
130 Use `|' operator instead of `^' to set it.
131 Update all users.
132
133 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
134 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
135
136 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
137 comparison.
138 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
139 (TT_Load_Glyph): Remove unused variable.
140
Werner Lemberg8d463a52007-05-13 16:01:55 +00001412007-05-13 Derek Clegg <dclegg@apple.com>
142
143 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
144 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
145
David Turner711cf842007-05-11 14:36:24 +00001462007-05-11 David Turner <david@freetype.org>
147
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000148 * src/cache/ftbasic.c, include/freetype/ftcache.h
149 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
150 functions that allow us to look up glyphs using an FTC_Scaler object
151 to specify the size, making it possible to use fractional pixel
152 sizes.
153
154 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
155 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000156
Werner Lemberg94be20e2007-05-09 20:02:55 +00001572007-05-09 Graham Asher <graham.asher@btinternet.com>
158
159 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
160 (af_latin_metrics_scale_dim): Fix compiler warnings.
161
Werner Lemberg41271032007-05-06 04:51:48 +00001622007-05-06 Werner Lemberg <wl@gnu.org>
163
164 * builds/win32/visualce/freetype.sln: Removed, as requested by
165 Vincent.
166
Werner Lembergdf49e692007-05-04 06:30:05 +00001672007-05-04 Vincent RICHOMME <richom.v@free.fr>
168
169 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
170 PC targets.
171
172 * docs/CHANGES: Document them.
173
1742007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000175
176 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
177 mmap (which might happen on some RTOS). From Savannah patch #5909.
178
Werner Lemberg106eaf12007-05-03 07:07:47 +00001792007-05-03 Werner Lemberg <wl@gnu.org>
180
181 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
182 * include/freetype/freetype.h (FT_Set_Char_Size): Update
183 documentation.
184
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001852007-04-28 Victor Stinner <victor.stinner@inl.fr>
186
187 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
188 `cmap'.
189
Werner Lembergcc712a22007-04-27 17:16:50 +00001902007-04-27 Werner Lemberg <wl@gnu.org>
191
192 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
193 number of points in contours. Problem reported by Victor Stinner
194 <victor.stinner@haypocalc.com>.
195 (TT_Process_Simple_Glyph): Synchronize variable types.
196
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001972007-04-26 Werner Lemberg <wl@gnu.org>
198
199 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
200 zero in case of error. This fixes Savannah bug #19689.
201
David Turnera8b45e62007-05-11 14:10:30 +00002022007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
203
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000204 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
205 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000206
Werner Lembergfcc1f472007-04-10 11:51:50 +00002072007-04-10 Martin Horak <horakm@centrum.cz>
208
209 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
210 Ignore `hhea' table. This fixes Savannah bug #19261.
211
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002122007-04-09 Werner Lemberg <wl@gnu.org>
213
214 * Version 2.3.4 released.
215 =========================
216
217
218 Tag sources with `VER-2-3-4'.
219
220 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
221 version number to 2.3.4.
222
223 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
224 builds/win32/visualc/freetype.dsp,
225 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
226
227 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
228
229 * builds/unix/configure.raw (version_info): Set to 9:15:3.
230
Werner Lembergf4a52a62007-04-09 08:40:11 +00002312007-04-09 Martin Horak <horakm@centrum.cz>
232
233 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
234 memory stream to avoid a crash with the incremental memory
235 interface (Savannah bug #19260).
236
David Turner1dcb4442007-04-06 08:19:04 +00002372007-04-06 David Turner <david@freetype.org>
238
Werner Lembergc81cf612007-04-06 09:28:23 +0000239 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
240 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000241
Werner Lemberg9f83e052007-04-05 02:28:23 +00002422007-04-04 Werner Lemberg <wl@gnu.org>
243
244 * Version 2.3.3 released.
245 =========================
246
247
248 Tag sources with `VER-2-3-3'.
249
250 * docs/CHANGES: Mention CVE-2007-1351.
251
David Turner7338ec22007-04-03 14:30:34 +00002522007-04-03 David Turner <david@freetype.org>
253
254 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000255 if one of the resolution values is 0, treat it as if it were the
256 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000257
David Turnere6472c12007-04-02 13:13:54 +00002582007-04-02 David Turner <david@freetype.org>
259
Werner Lemberg94f12272007-04-03 07:19:53 +0000260 Add special code to detect `extra-light' fonts and do not snap their
261 stem widths too much to avoid bizarre hinting effects.
262
263 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
264 `extra_light' members.
265
266 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
267 them.
268 (af_latin_metrics_scale_dim): Set `extra_light'.
269 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000270
David Turner3f539692007-03-28 14:53:40 +00002712007-03-28 David Turner <david@freetype.org>
272
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000273 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000274 padding.
275
Werner Lemberga08b2172007-03-28 07:17:17 +00002762007-03-28 Werner Lemberg <wl@gnu.org>
277
278 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
279 gracefully.
280 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000281 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000282 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
283 number of code points in Unicode.
284
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000285 * builds/win32/visualc/index.html,
286 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000287 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000288 s/232/233/.
289
290 * docs/CHANGES: Mention ftdiff.
291
David Turner3b242d32007-03-26 12:03:04 +00002922007-03-26 David Turner <david@freetype.org>
293
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000294 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
295 corresponding code.
296 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000297
Werner Lemberga08b2172007-03-28 07:17:17 +0000298 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000299 computations in order to ignore single-point contours. These are
300 never rasterized and correspond in certain fonts to mark-attach
301 points that are very far from the glyph's real outline, ruining the
302 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000303
Werner Lemberga08b2172007-03-28 07:17:17 +0000304 * src/autofit/afloader.c (af_loader_load_g): In the case of
305 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
306 Otherwise code that uses them will most certainly ruin the fixed
307 advance property.
David Turner23553d62007-03-26 13:37:17 +0000308
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000309 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
310 documentation and bump version number to 2.3.3.
311
312 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
313
314 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000315
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003162007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
317
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000318 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
319 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000320 * builds/vms/ftconfig.h: Ditto.
321 * include/freetype/config/ftconfig.h: Ditto.
322
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00003232007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
324
Werner Lemberg14ffe092007-03-22 06:12:43 +0000325 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
326 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000327 proposed by Sean McBride:
328 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
329
3302007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
331
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000332 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
333 setjmp, proposed by Sean McBride:
334 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
335
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003362007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
337
Werner Lembergc9f6c662007-03-21 13:30:14 +0000338 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
339 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
340 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000341
David Turner74c34eb2007-03-18 07:19:31 +00003422007-03-18 David Turner <david@freetype.org>
343
Werner Lembergc9f6c662007-03-21 13:30:14 +0000344 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
345 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000346
Werner Lembergc9f6c662007-03-21 13:30:14 +0000347 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000348
David Turner89020d92007-03-17 17:48:57 +00003492007-03-17 David Turner <david@freetype.org>
350
Werner Lembergc9f6c662007-03-21 13:30:14 +0000351 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
352 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000353
Werner Lemberg25d592a2007-03-09 07:59:35 +00003542007-03-09 Werner Lemberg <wl@gnu.org>
355
356 * Version 2.3.2 released.
357 =========================
358
359
360 Tag sources with `VER-2-3-2'.
361
362 * builds/win32/visualc/index.html,
363 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000364 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000365 s/231/232/.
366
David Turner3a51afa2007-03-08 10:50:38 +00003672007-03-08 David Turner <david@freetype.org>
368
Werner Lemberg25d592a2007-03-09 07:59:35 +0000369 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000370
Werner Lemberg25d592a2007-03-09 07:59:35 +0000371 * builds/unix/configure.raw (version_info): Set to 9:13:3.
372
373 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
374
375 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000376
Werner Lemberg1e259de2007-03-08 15:39:21 +0000377 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
378 function to work properly, over-writing user-provided buffers in
379 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000380
David Turner121cad52007-03-08 16:43:50 +0000381
Werner Lemberg3d92f082007-03-06 11:59:24 +00003822007-03-05 Werner Lemberg <wl@gnu.org>
383
384 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
385 macro for `strstr'.
386
387 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
388 `trick_names', as suggested by Ivan Nincic.
389
David Turner085bc6e2007-03-05 17:40:03 +00003902007-03-05 David Turner <david@freetype.org>
391
Werner Lembergd112cf02007-03-06 12:06:56 +0000392 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
393 case FT_Init_FreeType fails for some reason. Problem reported by
394 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000395
Werner Lembergd112cf02007-03-06 12:06:56 +0000396 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
397 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
398 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
399 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000400
Werner Lembergd112cf02007-03-06 12:06:56 +0000401 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
402 signed values, not unsigned ones. Problem reported by Johannes
403 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000404
David Turner601aefe2007-02-21 16:47:49 +00004052007-02-21 David Turner <david@freetype.org>
406
Werner Lembergde5e6862007-02-25 21:06:43 +0000407 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
408 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000409
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004102007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
411
412 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
413 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
414 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
415
Werner Lemberga0915172007-02-16 08:12:50 +00004162007-02-16 Werner Lemberg <wl@gnu.org>
417
418 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
419 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
420
David Turner2c4500e2007-02-14 15:08:47 +00004212007-02-14 David Turner <david@freetype.org>
422
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000423 It seems that the following changes fix most of the known
424 interpreter problems with my fonts, but more testing is needed,
425 though.
426
427 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
428 (TT_MulFix14): Rewrite.
429 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
430 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000431
Werner Lembergc6a14082007-02-12 22:08:15 +00004322007-02-12 Werner Lemberg <wl@gnu.org>
433
434 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
435 warnings.
436
437 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
438 (bdf_interpret_style): Ditto.
439
David Turnerc0f9c4a2007-02-12 14:55:03 +00004402007-02-12 David Turner <david@freetype.org>
441
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000442 Simplify projection and dual-projection code interface.
443
Werner Lemberg406d25f2007-02-12 22:01:18 +0000444 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
445 FT_Vector' as argument type.
446 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
447 Updated.
448 (CUR_fast_project, CUR_fast_dualproj): New macros.
449 (Project, Dual_Project, Project_x, Project_y): Updated.
450 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
451 macros.
452
453
454 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
455 adjustments for the non-light auto-hinted modes. Gets rid of
456 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000457
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000458 * src/autofit/aflatin.c (af_latin_hints_link_segments,
459 af_latin_hints_compute_edges): Slight optimization of the segment
460 linker and better handling of serif segments to get rid of broken
461 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000462
David Turnerc0f9c4a2007-02-12 14:55:03 +0000463
Werner Lemberg442bfb82007-02-12 21:44:10 +0000464 Introduce new string functions and the corresponding macros to get
465 rid of various uses of strcpy and other `evil' functions, as well as
466 to simplify a few things.
467
468 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
469 ft_mem_strcpyn): New declarations.
470 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
471 macros.
472 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
473 functions.
474
475 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
476 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
477 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
478 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
479 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
480 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
481 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
482 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000483
Werner Lemberg406d25f2007-02-12 22:01:18 +0000484 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
485
Werner Lemberg582067d2007-02-11 15:03:05 +00004862007-02-11 Werner Lemberg <wl@gnu.org>
487
488 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
489 non-spacing glyphs.
490
Werner Lemberg8f474532007-02-07 08:31:01 +00004912007-02-07 Tom Parker <palfrey@tevp.net>
492
493 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
494 pointer.
495
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004962007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
497
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000498 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
499 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000500 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000501 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
502 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
503 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
504 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000505
506 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
507 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000508 * builds/mac/ftmac.c: Ditto.
509
5102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
511
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000512 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000513 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000514 #include <ftmac.c>.
515
5162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
517
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000518 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
519 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
520 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
521 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
522 FT_GetFilePath_From_Mac_ATS_Name.
523 * builds/mac/ftmac.c: Ditto.
524
5252007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
526
Werner Lembergdcbb7082007-02-08 08:54:09 +0000527 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000528 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
529 for passing to FT_New_Face_From_FSSpec.
530
5312007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
532
Werner Lembergdcbb7082007-02-08 08:54:09 +0000533 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000534 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000535
536 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
537 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000538 * builds/mac/ftmac.c (OS_INLINE): Ditto.
539
Werner Lemberg313d7772007-02-01 08:10:45 +00005402007-02-01 Werner Lemberg <wl@gnu.org>
541
542 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
543 Explain why applications shouldn't use it. Found by Alexei.
544
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005452007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000546
547 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
548 message.
549
550 * src/gxvalid/gxvmort1.c
551 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
552 message.
553
Werner Lemberg53935932007-01-31 08:53:02 +00005542007-01-31 Werner Lemberg <wl@gnu.org>
555
556
557 * Version 2.3.1 released.
558 =========================
559
560
561 Tag sources with `VER-2-3-1-FINAL'.
562
563 * builds/win32/visualc/freetype.dsp,
564 builds/win32/visualc/freetype.vcproj: s/230/231/.
565 * builds/win32/visualc/index.html: s/221/231/.
566
567 * vms_make.com: Add `ftgasp'.
568
David Turnera7ee6082007-01-30 10:33:53 +00005692007-01-30 David Turner <david@freetype.org>
570
Werner Lemberg53935932007-01-31 08:53:02 +0000571 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000572
Werner Lemberg53935932007-01-31 08:53:02 +0000573 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000574
Werner Lemberg25d592a2007-03-09 07:59:35 +0000575 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000576 s/2.3.0/2.3.1/.
577
578 * builds/unix/configure.raw (version_info): Set to 9:12:3.
579
580
581 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
582 (af_loader_load_g): Disable the warper (i.e., the light hinting
583 improvements) to make a 2.3.1 bugfix release before introducing a
584 new feature. This should give us more time to tune and improve the
585 warper for the next release.
586
587 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000588
David Turnerd91eebd2007-01-26 15:05:41 +00005892007-01-25 David Turner <david@freetype.org>
590
Werner Lembergbf241762007-01-26 16:08:49 +0000591 For light auto-hinting, improve glyph advance widths and resurrect
592 normal/full hinting to its normal quality.
593
594 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
595 and `xmax_delta'.
596 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
597 and `xmax_delta'.
598
599 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
600 preprocessor conditional with if-clause, handling both light and
601 normal mode.
602
603 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
604 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000605
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00006062007-01-25 Werner Lemberg <wl@gnu.org>
607
608 * docs/release: Updated -- Savannah uses a new uploading scheme.
609
David Turnera42567b2007-01-25 12:23:37 +00006102007-01-25 David Turner <david@freetype.org>
611
Werner Lembergd7855662007-01-25 13:53:56 +0000612 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000613
Werner Lembergd7855662007-01-25 13:53:56 +0000614 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
615 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
616 functions.
David Turnera42567b2007-01-25 12:23:37 +0000617
Werner Lembergd7855662007-01-25 13:53:56 +0000618 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000619
Werner Lembergb1be9e82007-01-25 11:50:00 +00006202007-01-25 Werner Lemberg <wl@gnu.org>
621
622 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000623 correctly in a sanity check. Since this function is only used to
624 load local and global functions, any charstring that called the last
625 local/global function would fail otherwise. This fixes Savannah bug
626 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000627
628 * docs/CHANGES: Document it.
629
David Turnerb6de8d12007-01-23 15:51:50 +00006302007-01-23 David Turner <david@freetype.org>
631
Werner Lembergb1be9e82007-01-25 11:50:00 +0000632 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
633 prevented compilation when disabling both the unpatented and the
634 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000635
Werner Lembergb1be9e82007-01-25 11:50:00 +0000636
637 Fix and enable the warper to improve `light' hinting mode. This is
638 not necessarily a final version, but it seems to work well.
639
640 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
641 Disable code.
642 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
643 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
644
645 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
646 (af_warper_compute_line_best): Fix array size of `scores'.
647 (af_warper_compute): Better handling of border cases.
648 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
649 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000650
Werner Lemberg011d1112007-01-21 09:36:00 +00006512007-01-21 Werner Lemberg <wl@gnu.org>
652
Werner Lemberg42b63b22007-01-21 21:01:33 +0000653 * ChangeLog: Split off older entries into...
654 * ChangeLog.22: This new file.
655
6562007-01-21 Werner Lemberg <wl@gnu.org>
657
Werner Lemberg555258f2007-01-21 09:46:37 +0000658 * docs/CHANGES: Document SHZ fix.
659
6602007-01-21 George Williams <gww@silcom.com>
661
662 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
663 points.
664
6652007-01-21 Werner Lemberg <wl@gnu.org>
666
Werner Lemberg011d1112007-01-21 09:36:00 +0000667 * src/sfnt/ttmtx.c (tt_face_get_metrics)
668 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
669
Werner Lemberg87a5a432007-01-17 12:44:39 +00006702007-01-17 Werner Lemberg <wl@gnu.org>
671
Werner Lembergb8003292007-01-17 12:56:25 +0000672
673 * Version 2.3.0 released.
674 =========================
675
676
677 Tag sources with `VER-2-3-0-FINAL'.
678
6792007-01-17 Werner Lemberg <wl@gnu.org>
680
Werner Lemberg87a5a432007-01-17 12:44:39 +0000681 * docs/release: Updated.
682
David Turner22122722007-01-16 20:06:44 +00006832007-01-16 David Turner <david@freetype.org>
684
Werner Lemberg87a5a432007-01-17 12:44:39 +0000685 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
686 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
687 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
688 warnings.
David Turner22122722007-01-16 20:06:44 +0000689
Werner Lemberg267e1d72007-01-15 07:48:09 +00006902007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
691
692 * builds/amiga/makefile, builds/amiga/makefile.os4,
693 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
694
695 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
696
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006972007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
698
699 Fix various compiler warnings.
700
701 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
702 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
703 s/index/strike_index/.
704 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
705
706 * src/gxvalid/gxvmorx5.c
707 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
708
709 * src/truetype/ttinterp.c (Compute_Point_Displacement),
710 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
711 uninitialized variables.
712
Werner Lemberg6164a9d2007-01-13 23:01:36 +00007132007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
714
715 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
716
Werner Lemberg281c1482007-01-13 22:50:51 +00007172007-01-13 Werner Lemberg <wl@gnu.org>
718
719 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
720 versions up to 0x3FF without complaining.
721
Werner Lembergac250b22007-01-13 14:01:36 +00007222007-01-13 Derek Clegg <dclegg@apple.com>
723
724 Add FT_Get_PS_Font_Info interface to CFF driver.
725
726 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
727 (CFF_FontRec): Add `font_info' field.
728
729 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
730 (cff_font_done): Free font->font_info if necessary.
731
732 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
733 (cff_service_ps_info): Register cff_ps_get_font_info.
734
Werner Lemberg23df31a2007-01-13 08:45:00 +00007352007-01-13 Werner Lemberg <wl@gnu.org>
736
737 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
738 with C++ compiler.
739
740 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
741 af_glyph_hints_dump_edges): Ditto.
742
743 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
744 `modules.cfg').
745
746 * src/sfnt/ttsbit0.h: Remove.
747
748 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
749
Werner Lemberg27cf9de2007-01-13 07:34:23 +00007502007-01-12 David Turner <david@freetype.org>
751
752 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
753 bug in the bitmap emboldener if the pitch of the source bitmap is
754 much larger than its width.
755
756 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
757 compilation warning.
758
Werner Lemberg6d96d312007-01-12 10:30:19 +00007592007-01-12 Werner Lemberg <wl@gnu.org>
760
761 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
762 `automake' CVS module from sources.redhat.com.
763
Werner Lemberg17432b52007-01-12 09:28:44 +00007642007-01-11 Werner Lemberg <wl@gnu.org>
765
766 * src/type1/t1load.c (is_space): Removed.
767 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
768 (parse_charstrings): Use IS_PS_TOKEN.
769
770
771 * autogen.sh: Avoid bash specific syntax.
772
David Turner038ace22007-01-11 15:00:59 +00007732007-01-11 David Turner <david@freetype.org>
774
Werner Lemberg17432b52007-01-12 09:28:44 +0000775 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000776
Werner Lemberg17432b52007-01-12 09:28:44 +0000777 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000778
Werner Lemberg17432b52007-01-12 09:28:44 +0000779 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
780 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000781 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000782
Werner Lemberg17432b52007-01-12 09:28:44 +0000783 * autogen.sh: Small fix to get it working on Mac OS X properly:
784 The issue is that GNU libtool is called `glibtool' on this platform,
785 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000786
David Turner2628ea92007-01-10 13:15:56 +00007872007-01-10 David Turner <david@freetype.org>
788
Werner Lemberg17432b52007-01-12 09:28:44 +0000789 * all-sources: Tag all sources with VER-2-3-0-RC1 and
790 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000791
Werner Lemberg17432b52007-01-12 09:28:44 +0000792 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
793 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
794 version number to 2.3.0.
795
796 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
797 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000798
799 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000800 include/freetype/ftlcdfil.h: Update reference documentation with
801 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000802
Werner Lemberg17432b52007-01-12 09:28:44 +0000803 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
804 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000805
Werner Lembergbf02d392007-01-10 07:07:37 +00008062007-01-10 Derek Clegg <dclegg@apple.com>
807
808 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
809 values.
810
David Turnerf48b60e2007-01-08 15:15:32 +00008112007-01-08 David Turner <david@freetype.org>
812
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000813 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000814
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000815 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
816 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000817 corresponding to a given character pixel size.
818
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000819 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
820 `gasp' table, in order to avoid potential problems with later
821 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000822
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000823 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
824 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000825
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000826 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
827 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
828 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
829 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000830
Werner Lemberge6b6f372007-01-07 00:06:47 +00008312007-01-07 Werner Lemberg <wl@gnu.org>
832
Werner Lembergb8004d22007-01-07 09:13:38 +0000833 * src/cid/cidparse.c (cid_parser_new): Improve error message for
834 Type 11 fonts.
835 Scan for `/sfnts' token.
836
8372007-01-07 Werner Lemberg <wl@gnu.org>
838
839 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000840
Werner Lembergbe5f7972007-01-06 07:51:48 +00008412007-01-06 Werner Lemberg <wl@gnu.org>
842
843 * src/cff/cffload.c (cff_index_init): Remove unused variable.
844 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
845
David Turnera8cf42b2007-01-04 16:46:46 +00008462007-01-04 David Turner <david@freetype.org>
847
Werner Lembergf6294392007-01-06 07:47:45 +0000848 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
849 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000850
Werner Lembergf6294392007-01-06 07:47:45 +0000851
852 Do not allocate interpreter-specific tables in memory if we are not
853 going to load glyphs with the bytecode interpreter anyway.
854
855 * src/truetype/ttgload.c (tt_loader_init): Load execution context
856 only if glyph is hinted.
857 Updated.
858 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
859 and `cvs_ready'.
860 Add `tt_size_ready_bytecode' declaration.
861 * src/truetype/ttobjs.c (tt_size_done_bytecode,
862 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
863 (tt_size_init): Move most code into `tt_size_init_bytecode'.
864 (tt_size_done): Move most code into `tt_size_done_bytecode'.
865 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000866
David Turner91a34022007-01-05 14:47:08 +0000867
Werner Lembergf6294392007-01-06 07:47:45 +0000868 Don't extract the metrics table from the SFNT font file. Instead,
869 reparse it on each glyph load. The runtime difference is not
870 noticeable, and it can save a lot of heap memory when memory-mapped
871 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000872
Werner Lembergf6294392007-01-06 07:47:45 +0000873 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
874 `horz_metrics_offset' and `vert_metrics_ofset'.
875 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
876 Updated.
877
878
879 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
880
881
882 Do not load the CFF index offsets into memory, since this wastes a
883 *lot* of heap memory with large Asian CFF fonts. There is no
884 significant performance loss.
885
886 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
887 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
888 `data_size'.
889 (CFF_CharsetRec): Add field `num_glyphs'.
890
891 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
892 cff_charset_cid_to_gindex): New functions.
893 (cff_new_index): Renamed to...
894 (cff_index_init): This. Update all callers.
895 Updated -- some code has been moved to `cff_index_load_offsets'.
896 (cff_done_index): Renamed to...
897 (cff_index_done): This. Update all callers.
898 (cff_index_get_pointers, cff_index_access_element): Updated to use
899 stream offsets.
900 (cff_charset_compute_cids): Set `num_glyphs' field.
901 (cff_encoding_load): Updated.
902
903 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000904
9052007-01-04 David Turner <david@freetype.org>
906
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000907 * docs/INSTALL.UNIX: Simplify some parts, add reference to
908 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000909
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000910 * README.CVS: Add common problem description and solution
911 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000912
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000913 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000914
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000915 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000916
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000917 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000918
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000919 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
920 (TWorker): This.
921 Remove `count_table' and `memory'.
922 Make `grays' a pointer.
923 (TRaster): New structure.
924 (count_table): New static array.
925 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
926 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
927 ft_black_set_mode, ft_black_render): Updated.
928 (ft_black_init): Don't initialize `count_table'.
929 (ft_black_reset): Use the render pool. This saves about 6KB of
930 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000931
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000932 * src/smooth/ftgrays.c (TRaster): Replaced with...
933 (TWorker): This.
934 Remove `memory'.
935 (TRaster): New structure.
936
937 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
938 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
939 gray_render_span, gray_raster_render): Updated.
940 (gray_raster_reset): Use the render pool. This saves about 6KB of
941 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000942
David Turner8a6c44e2007-01-04 17:03:11 +0000943 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
944 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000945 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
946 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
947 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000948
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000949 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
950 Remove a typo that results in no hinting and a memory leak with some
951 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000952
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000953 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000954 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000955 CFF_Faces in it. We need to close all faces before destroying the
956 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000957
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00009582007-01-02 Werner Lemberg <wl@gnu.org>
959
960 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
961 Remove compiler warning.
962
David Turner9207e002007-01-02 16:58:13 +00009632007-01-02 David Turner <david@freetype.org>
964
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000965 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000966
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009672006-12-31 Masatake YAMATO <jet@gyve.org>
968
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000969 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
970 function.
971 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000972 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000973 `gxv_kern_subtable_fmt0_pairs_validate'.
974
David Turner115b4422006-12-22 11:37:05 +00009752006-12-22 David Turner <david@freetype.org>
976
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000977 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
978 warnings.
David Turner115b4422006-12-22 11:37:05 +0000979
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000980 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
981 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000982
Werner Lemberg4755bf72006-12-16 08:58:44 +00009832006-12-16 Anders Kaseorg <anders@kaseorg.com>
984
985 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
986 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
987
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009882006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
989
Werner Lemberg9b774e22007-01-16 06:11:27 +0000990 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000991 sync with the modification by Jens Claudius on 2006-08-22; cf.
992 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 +0000993
9942006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
995
996 * src/base/ftmac.c: Specialized for Mac OS X only.
997 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
998 * builds/unix/configure.raw: Ditto. When explicit switches for
999 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1000 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1001
10022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1003
1004 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1005 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1006 instead of src/base/ftmac.c
1007 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1008 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1009 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1010 that cannot be built at present.
1011
10122006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1013
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001014 * src/base/ftobjs.c: Improvement of resource fork handler for
1015 POSIX, cf.
1016 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001017 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1018 format or .dfont, to simulate the face index number counted by ftmac.c.
1019 (IsMacResource): Return the number of scalable faces correctly.
1020
Werner Lembergec5b4502006-12-10 07:51:38 +000010212006-12-10 Werner Lemberg <wl@gnu.org>
1022
1023 * builds/toplevel.mk (version): Protect against `distclean' target.
1024
Werner Lembergb26b3142006-12-09 20:01:43 +000010252006-12-09 Werner Lemberg <wl@gnu.org>
1026
1027 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1028 or `type'.
1029
1030 * builds/freetype.mk (version): Extracted from freetype.h, using
1031 GNU make's built-in string functions.
1032 (refdoc): Use $(version) instead of static version number.
1033
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010342006-12-08 Werner Lemberg <wl@gnu.org>
1035
1036 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1037
Werner Lemberg15c29502006-12-09 07:29:54 +000010382006-12-08 Vladimir Volovich <vvv@vsu.ru>
1039
1040 * src/tools/apinames (State): Remove final comma in structure -- xlc
1041 v5 under AIX 4.3 doesn't like this.
1042
David Turnerdbf3b432006-12-07 21:18:09 +000010432006-12-07 David Turner <david@freetype.org>
1044
Werner Lemberg256a3512006-12-08 06:49:33 +00001045 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1046 to the spacing of auto-fitted glyphs. This only impacts rare
1047 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001048
Werner Lemberg11171312006-12-03 09:43:40 +000010492006-12-03 Werner Lemberg <wl@gnu.org>
1050
1051 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1052
Werner Lemberg960ba592006-12-01 08:20:47 +000010532006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001054
Werner Lemberg960ba592006-12-01 08:20:47 +00001055 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1056 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1057 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001058
David Turner80658e52006-11-28 08:09:20 +00001059
Werner Lemberg960ba592006-12-01 08:20:47 +00001060 * include/freetype/ftxf86.h: Fix and extend comment so that it
1061 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001062
Werner Lemberg960ba592006-12-01 08:20:47 +00001063 * include/freetype/ftchapters.h: Add `font_format' section.
1064
1065
1066 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1067 to TOC in index page.
1068
10692006-11-28 David Turner <david@freetype.org>
1070
1071 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1072 trying to render into a zero-width/height bitmap, not an error code.
1073
1074 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1075
1076 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1077 ones instead.
1078
1079 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1080 variable.
David Turner80658e52006-11-28 08:09:20 +00001081
Werner Lemberg8636c292006-11-26 22:28:13 +000010822006-11-26 Pierre Hanser <hanser@club-internet.fr>
1083
1084 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1085
Werner Lemberg960ba592006-12-01 08:20:47 +000010862006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001087
Werner Lemberg960ba592006-12-01 08:20:47 +00001088 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1089 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1090 Add stubs to link the `ftgrid' test program when debugging is
1091 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001092
Werner Lemberg960ba592006-12-01 08:20:47 +000010932006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001094
1095 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001096 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1097
1098 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1099 Emit more sensible information.
1100
1101 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1102
1103 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1104 rounding of blue values.
1105 (af_latin_hints_compute_segments): Hint segment heights.
1106 (af_latin_hints_link_segments): Reduce `len_score' value.
1107 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1108 value and use `height' member for comparisons.
1109 (af_latin_hint_edges): Extend logging message.
1110 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001111
Werner Lemberg91959bf2006-11-22 10:36:55 +000011122006-11-22 Werner Lemberg <wl@gnu.org>
1113
1114 Fix Savannah bug #15553.
1115
1116 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1117 program after a change from mono to grayscaling (and vice versa).
1118 Use correct constant for comparison to get `exec->grayscale'.
1119
Werner Lemberg913a3652006-11-19 09:19:17 +000011202006-11-18 Werner Lemberg <wl@gnu.org>
1121
1122 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001123 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001124 This patch fixes Savannah bug #18301.
1125
1126 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1127 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1128 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1129 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1130 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1131 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1132 (FNT_Load_Glyph): Check validity of `glyph_index'.
1133
David Turner7bab6ae2006-11-13 11:25:06 +000011342006-11-13 David Turner <david@freetype.org>
1135
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001136 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1137 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001138
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001139 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1140 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1141 when building the library to change the default LCD filter to be
1142 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001143
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001144 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001145
David Turner8765c712006-11-10 16:49:42 +000011462006-11-10 David Turner <david@freetype.org>
1147
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001148 * src/smooth/ftsmooth.c: API change for the LCD
1149 filter. The FT_LcdFilter value is an enumeration describing which
1150 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1151 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1152 algorithm which produces strong color fringes for everything
1153 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001154
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001155 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1156 second parameter to an enum type.
1157
1158 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1159 (_ft_lcd_filter): Rename to...
1160 (_ft_lcd_filter_fir): This.
1161 Update parameters.
1162 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1163 (FT_Library_Set_LcdFilter): Update parameters.
1164 Handle new filter modes.
1165
1166 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1167 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1168 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1169 callback and update other fields.
1170
1171 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1172 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1173 Other minor improvements.
1174
1175 * src/autofit/aflatin.c: Various tiny improvements that drastically
1176 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1177 (af_latin_hints_compute_edges): Fix typo.
1178 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001179
David Turner4e9cc3c2006-11-09 16:31:52 +000011802006-11-09 David Turner <david@freetype.org>
1181
Werner Lemberg49c77a82006-11-09 21:51:57 +00001182 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1183 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001184
Werner Lemberg5e430892006-11-07 09:35:03 +000011852006-11-07 Zhe Su <james.su@gmail.com>
1186
1187 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1188 also.
1189
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011902006-11-03 Werner Lemberg <wl@gnu.org>
1191
1192 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1193
David Turner40604742006-11-02 16:37:35 +000011942006-11-02 David Turner <david@freetype.org>
1195
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001196 Add a few tweaks to better handle serif fonts.
1197 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001198
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001199 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1200 segments that are less than 1.5 pixels high. This gets rid of
1201 *many* corner cases with serifs.
1202 (af_latin_align_linked_edge): Add logging message.
1203 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1204 Add logging messages.
1205 Handle AF_EDGE_FLAG flag specially.
1206
1207 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1208 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1209
1210 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1211 Update external declarations.
1212 (af_corner_orientation, af_corner_is_flat): Replaced by...
1213
1214 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1215 ft_corner_is_flat): These declarations.
1216
1217 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1218 Comment out. Replaced by...
1219
1220 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1221 These functions. Update all callers.
1222 (FT_Add64) [!FT_LONG64]: Simplify.
1223
1224 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1225 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1226 production of garbage by missing lots of segments.
1227
1228 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1229
1230 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1231 [AF_DEBUG]: Set _af_debug_hints.
1232
1233
1234 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1235 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1236 and ft_corner_orientation.
1237
1238
1239 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001240
Werner Lemberge88c5262006-10-24 05:46:26 +000012412006-10-24 Werner Lemberg <wl@gnu.org>
1242
1243 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1244
1245 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1246 as argument.
1247
David Turnera1861392006-10-23 16:00:59 +000012482006-10-23 Zhe Su <zsu@novell.com>
1249
Werner Lemberg715e96e2006-10-24 05:28:45 +00001250 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1251 better deal with broken Asian fonts with strange glyphs, having
1252 self-intersections and other peculiarities. The used algorithm is
1253 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001254
David Turnere140f142006-10-23 08:56:57 +000012552006-10-23 David Turner <david@freetype.org>
1256
Werner Lemberg715e96e2006-10-24 05:28:45 +00001257 Speed up the CFF font loader. With some large CFF fonts,
1258 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001259
Werner Lemberg715e96e2006-10-24 05:28:45 +00001260 * src/cff/cffload.c (cff_get_offset): Removed.
1261 (cff_new_index): Inline functionality of `cff_get_offset'.
1262 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1263 (cff_charset_done): Call `cff_charset_free_cids'.
1264 (cff_charset_load): Call `cff_charset_compute_cids'.
1265 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1266
1267 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1268 with FT_NEXT_XXX.
1269
1270
1271 Speed up the Postscript hinter, with more than 100% speed increase
1272 on my machine.
1273
1274 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1275 psh_corner_orientation): New functions.
1276 (psh_glyph_compute_inflections): Merge loops for efficiency.
1277 Use `psh_corner_orientation'.
1278 (psh_glyph_init): Use `psh_corner_is_flat'.
1279 (psh_hint_table_find_strong_point): Renamed to...
1280 (psh_hint_table_find_strong_points): This.
1281 Rewrite, adding argument to handle all points at once.
1282 Update all callers.
1283 (PSH_MAX_STRONG_INTERNAL): New macro.
1284 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001285
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012862006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1287
1288 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001289 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001290
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012912006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1292
1293 * docs/INSTALL.CROSS: New document file for cross-building.
1294
1295 * builds/unix/configure.raw: Preliminary cross-building support.
1296 Find native C compiler and pass it by CC_BUILD, and
1297 find suffix for native executable and pass it by EXEEXT_BUILD.
1298 Also suffix for target executable is passed by EXEEXT.
1299
Werner Lembergb9e6d692006-10-15 08:58:40 +00001300 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1301 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001302 CC_BUILD and EXEEXT_BUILD.
1303
Werner Lembergb9e6d692006-10-15 08:58:40 +00001304 * builds/exports.mk (APINAMES_EXE): Change the extension for
1305 apinames from the suffix for target (E) to that for building host
1306 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001307
Werner Lemberg82a07e92006-10-12 06:20:44 +000013082006-10-12 Werner Lemberg <wl@gnu.org>
1309
1310 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1311 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1312 which reference those files.
1313
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000013142006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1315
Werner Lembergb9e6d692006-10-15 08:58:40 +00001316 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1317 embedded in freetype2.pc and freetype-config. Use it to record
1318 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001319
1320 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1321
1322 * builds/unix/freetype-config.in: Ditto.
1323
Werner Lemberg28e17d92006-10-11 17:27:47 +000013242006-10-11 Werner Lemberg <wl@gnu.org>
1325
1326 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1327 development.
1328
Jens Claudius336d2292006-10-03 08:53:37 +000013292006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1330
1331 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1332 argument to ft_setjmp.
1333
1334 * include/freetype/internal/ftvalid.h: Add comment that
1335 ft_validator_run must not be used.
1336
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013372006-10-01 Werner Lemberg <wl@gnu.org>
1338
1339 * src/base/ftbase.c: Undo change from 2006-09-30.
1340
1341 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1342
13432006-09-30 David Turner <david@freetype.org>
1344
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001345 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1346 s/unpatented_hinting/ignore_unpatented_hinter/.
1347 Update all callers.
1348
1349 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1350 auto-hinting shall be used or not.
1351
1352 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001353
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013542006-09-30 Werner Lemberg <wl@gnu.org>
1355
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001356 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1357 in use).
1358
1359 * src/base/ftbase.c: Include `ftlcdfil.c'.
1360
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013612006-09-29 Werner Lemberg <wl@gnu.org>
1362
1363 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1364 overlapping segments. Bug reported by Stefan Koch.
1365
David Turnerad830712006-09-27 16:20:59 +000013662006-09-28 David Turner <david@freetype.org>
1367
Werner Lemberg2c002e12006-09-29 21:31:53 +00001368 Fix a bug in the automatic unpatented hinting support which prevents
1369 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001370
Werner Lemberg2c002e12006-09-29 21:31:53 +00001371 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1372 s/force_autohint/unpatented_hinting/. Update all callers.
1373
1374 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1375
1376 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001377
David Turner8a317cf2006-09-27 07:52:48 +000013782006-09-27 David Turner <david@freetype.org>
1379
Werner Lemberg2c002e12006-09-29 21:31:53 +00001380 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001381
David Turner8a317cf2006-09-27 07:52:48 +00001382
David Turnere140f142006-10-23 08:56:57 +00001383 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001384 In a default build, the function `FT_Library_SetLcdFilter' returns
1385 `FT_Err_Unimplemented_Feature'; you need to #define
1386 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1387 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001388
Werner Lemberg2c002e12006-09-29 21:31:53 +00001389 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001390
Werner Lemberg2c002e12006-09-29 21:31:53 +00001391 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1392 typedef.
1393 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1394 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001395
Werner Lemberg2c002e12006-09-29 21:31:53 +00001396 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1397 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001398
Werner Lemberg2c002e12006-09-29 21:31:53 +00001399 Handle subpixel rendering.
1400 Simplify function.
1401 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1402 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1403
1404 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1405 pointing to <freetype/ftlcdfil.h>.
1406
1407 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1408 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1409
1410 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001411
Werner Lemberge20df4a2006-09-27 06:29:21 +000014122006-09-26 David Bustin
1413
1414 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1415 correctly. Reported as Savannah bug #17843.
1416
David Turner6f8c6222006-09-26 15:42:44 +000014172006-09-26 David Turner <david@freetype.org>
1418
Werner Lemberg110246c2006-09-26 21:55:44 +00001419 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1420 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1421 horizontal and vertical hinting for the purpose of debugging the
1422 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001423
Werner Lemberg110246c2006-09-26 21:55:44 +00001424 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1425 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001426
Werner Lemberg110246c2006-09-26 21:55:44 +00001427 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1428
1429 * include/freetype/config/ftoption.h, devel/ftoption.h
1430 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1431 we want to compile LCD-optimized rendering code (à la ClearType) or
1432 not. The macro *must* be disabled in default builds of the library
1433 for patent reasons.
1434
1435 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1436 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1437 isn't defined at compile time. This only changes the content of the
1438 rendered glyph to match the one of normal gray-level rendering,
1439 hence clients should not need to be modified.
1440
1441 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001442
Werner Lemberg745ff2c2006-09-19 05:48:02 +000014432006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1444
1445 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1446 LWFN fails and both are available.
1447
David Turnerf3050052006-09-11 12:00:32 +000014482006-09-11 David Turner <david@freetype.org>
1449
Werner Lembergf9644552006-09-12 13:48:10 +00001450 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1451 report their English names through an Apple Roman
1452 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001453
Werner Lembergf9644552006-09-12 13:48:10 +00001454 If the font uses another name entry with language_id == English, it
1455 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001456
Werner Lembergf9644552006-09-12 13:48:10 +00001457 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1458 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001459
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014602006-09-05 Werner Lemberg <wl@gnu.org>
1461
1462 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001463 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001464 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1465 `HAN NOM B.ttf').
1466
1467 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1468
David Turner772e55d2006-09-05 09:45:15 +000014692006-09-05 David Turner <david@freetype.org>
1470
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001471 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001472
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001473 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1474 (TRaster): Remove `count_ex' and `count_ey'.
1475 (gray_find_cell): Remove 2nd and 3rd argument.
1476 (gray_alloc_cell): Merged with `gray_find_cell'.
1477 (gray_record_cell): Simplify.
1478 (gray_set_cell): Rewrite.
1479 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1480 (gray_render_span): Don't use FT_MEM_SET for small values.
1481 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1482 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1483 bitmap scanline.
1484 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001485
David Turneraa557a92006-09-04 16:42:44 +000014862006-09-04 David Turner <david@freetype.org>
1487
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001488 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1489 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001490
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014912006-09-03 Werner Lemberg <wl@gnu.org>
1492
1493 * devel/ftoption.h: Synchronize with
1494 include/freetype/config/ftoption.h.
1495
1496 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1497 variable declaration.
1498 (gray_convert_glyph): Fix compiler warnings.
1499
David Turner6d79f212006-09-01 14:09:35 +000015002006-09-01 David Turner <david@freetype.org>
1501
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001502 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1503 to recognize a few fonts that require the automatic unpatented
1504 loader.
David Turnerbd502952006-09-01 19:05:24 +00001505
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001506 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1507 rasterizer. The speed improvement is between 15% and 25%, depending
1508 on the font data.
1509
1510 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1511 (TCell): Redefine.
1512 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1513 (gray_init_cells): Updated.
1514 (gray_find_cell, gray_alloc_cell): New functions.
1515 (gray_record_cell): Rewritten to use `gray_find_cell' and
1516 `gray_alloc_cell'.
1517 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1518 QSORT_THRESHOLD):
1519 Removed.
1520 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1521 gray_dump_cells): Removed.
1522 (gray_sweep): Rewritten.
1523 (gray_convert_glyph): Rewrite code which used one of the sorting
1524 functions.
1525 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001526
Werner Lembergd898aed2006-08-29 09:50:34 +000015272006-08-29 Dr. Werner Fink <werner@suse.de>
1528
1529 * configure: Make it possible to handle configure options which
1530 have strings containing spaces.
1531
15322006-08-27 David Turner <david@freetype.org>
1533
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001534 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1535 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1536 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1537
1538 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1539 src/truetype/truetype.c, src/truetype/ttdriver.c,
1540 src/truetype/ttgload.c, src/truetype/ttgload.h,
1541 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1542 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1543 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1544
1545 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1546 member `force_autohint'.
1547
1548 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1549
1550 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1551 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001552
Jens Claudiusa787f452006-08-27 11:26:18 +000015532006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1554
1555 Fix miscellaneous compiler warnings.
1556
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001557 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1558 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001559
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001560 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1561 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1562 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001563
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001564 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1565 volatileness of argument to ft_longjmp. Spotted by Werner
1566 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001567
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001568 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1569 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001570
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001571 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1572 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001573
Werner Lembergc4c35b72006-08-27 08:03:46 +000015742006-08-27 Werner Lemberg <wl@gnu.org>
1575
1576 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1577 Reported by Jens.
1578
Jens Claudius088e44e2006-08-22 14:24:30 +000015792006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001580
Jens Claudius088e44e2006-08-22 14:24:30 +00001581 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001582 about addresses of volatile objects passed as function arguments as
1583 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001584
Werner Lembergc4c35b72006-08-27 08:03:46 +00001585 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1586 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001587
1588 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1589 argument `table' a pointer to a volatile object.
1590
1591 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1592 argument `table' a pointer to a volatile object.
1593
Jens Claudius2652bd52006-08-18 17:20:37 +000015942006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1595
1596 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1597 variable `_sfnt' as volatile since it must keep its value across
1598 a call to ft_setjmp.
1599 (gxv_validate): Same for local variables `memory' and `valid'.
1600 (classic_kern_validate): Same for local variables `memory',
1601 `ckern', and `valid'.
1602
1603 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1604 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1605 `jstf', and 'valid'.
1606
1607 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1608 local variable `cmap'.
1609
David Turner9fbfc6a2006-08-16 09:11:31 +000016102006-08-16 David Turner <david@freetype.org>
1611
Werner Lemberg12342992006-08-19 11:18:09 +00001612 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1613 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001614
Werner Lemberg12342992006-08-19 11:18:09 +00001615 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1616 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001617
David Turner33f5f242006-08-16 16:50:55 +00001618
Werner Lemberg12342992006-08-19 11:18:09 +00001619 Improvements to native TrueType hinting. This is a first try,
1620 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1621
1622 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1623 `extra_points2'.
1624
1625 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1626 `orus'.
1627
1628 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1629 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1630 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1631 handle `extra_points2'.
1632
1633 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1634 Remove compiler warning.
1635 (cur_to_arg): Remove macro.
1636 (TT_Hint_Glyph): Updated.
1637 (TT_Process_Simple_Glyph): Handle `orus'.
1638
1639 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1640 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1641 (LOC_Ins_IUP): Renamed to...
1642 (IUP_WorkerRec): This.
1643 Add `orus' member.
1644 (Shift): Renamed to...
1645 (_iup_worker_shift): This.
1646 Updated.
1647 (Interp): Renamed to...
1648 (_iup_worker_interpolate): This.
1649 Updated to handle `orus'.
1650 (Ins_IUP): Updated.
1651
1652 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1653 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001654
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000016552006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1656
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001657 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001658 build ftvalid in ft2demos. This has been inadvertedly changed
1659 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001660
16612006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1662
Werner Lemberg12342992006-08-19 11:18:09 +00001663 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1664 Jens:
1665 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001666
Werner Lemberg12342992006-08-19 11:18:09 +00001667 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1668 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001669
1670 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1671
Jens Claudius9950adc2006-08-13 12:14:36 +000016722006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1673
Werner Lemberg12342992006-08-19 11:18:09 +00001674 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1675 T1_TOKEN_TYPE_KEY.
1676 (T1_FieldRec): Add `dict'.
1677 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1678 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1679 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001680
Werner Lemberg12342992006-08-19 11:18:09 +00001681 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1682 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001683
1684 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1685
1686 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001687 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1688 not T1_TOKEN_TYPE_ANY.
1689 (ps_parser_load_field): Make sure a token that should be a string or
1690 name is really a string or name.
1691 Avoid memory leak if a keyword has been already encountered and its
1692 value is overwritten.
1693 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1694 T1_FIELD_XXX.
1695 (parse_dict): Ignore keywords that occur in the wrong dictionary
1696 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001697
Werner Lemberg12342992006-08-19 11:18:09 +00001698 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1699 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001700
Werner Lemberg12342992006-08-19 11:18:09 +00001701 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1702 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001703
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000017042006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1705
1706 Move creation of field `buildchar' of T1_DecoderRec out of
1707 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1708 of it.
1709
1710 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1711 and `T1_Compute_Max_Advance'.
1712
1713 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1714 Remove field `face', add `len_buildchar'.
1715
1716 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1717 field `buildchar'.
1718
1719 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1720 finisher for T1_Decoder.
1721 (cid_slot_load_glyph): Do not ignore failure when initializing the
1722 T1_Decoder.
1723
1724 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1725 Updated.
1726 (t1_decoder_init): Remove initialization of fields `buildchar' and
1727 `len_buildchar'.
1728 (t1_decoder_done): Remove deallocation of field `buildchar'.
1729
1730 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1731 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1732 T1_Decoder.
1733 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1734 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1735 case of error.
1736
1737 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1738 `buildchar' of T1_FaceRec.
1739
1740 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1741 `buildchar' of T1_FaceRec.
1742
Werner Lemberg1a380e02006-07-14 18:28:08 +000017432006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1744
1745 * freetype2/include/freetype/internal/psaux.h: New macros
1746 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1747 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1748 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1749 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1750 (T1_DecoderRec): New fields `buildchar' and `face'.
1751 (IS_PS_TOKEN): New macro.
1752
1753 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1754 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1755
1756 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1757 `default_design_vector' and `num_default_design_vector'.
1758
1759 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1760 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1761 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1762
1763 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1764 `token' argument to be NULL if we want only to count the number of
1765 tokens.
1766 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1767 want to skip the array.
1768 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1769 want to skip the array.
1770
1771 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1772 support for (partially commented out) othersubrs 19-25, 27, and 28.
1773 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1774 (t1_decoder_done): Release new field `buildchar'.
1775
1776 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1777 functions.
1778 (t1_keywords): Register them.
1779 (t1_allocate_blend): Updated.
1780 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1781 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1782 (parse_dict): Remove `keyword_flags' argument.
1783 Use new macro IS_PS_TOKEN.
1784 Changed function so that later PostScript definitions override
1785 earlier ones.
1786 (t1_init_loader): Initialize new field `keywords_encountered'.
1787 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1788 `len_buildchar'.
1789 Remove `keywords_flags'.
1790
1791 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1792 `keywords_encountered'.
1793 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1794
1795 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1796 New entries for parsing /NDV, /CDV, and /DesignVector.
1797
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017982006-07-07 Werner Lemberg <wl@gnu.org>
1799
1800 Add many checks to protect against malformed PCF files.
1801
1802 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1803 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1804
1805 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1806 data and check that tables don't overlap (using a simple
1807 bubblesort).
1808 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1809 New macros which give the size of data structures in the data
1810 stream.
1811 (pcf_get_properties): Use rough estimates to get array size limits.
1812 Assign `face->nprops' and `face->properties' earlier so that a call
1813 to PCF_Face_Done can do the clean-up in case of error.
1814 Protect against invalid string offsets.
1815 (pcf_get_metrics): Clean up code.
1816 Adjust tracing message levels.
1817 Use rough estimate to get array size limit.
1818 (pcf_get_bitmaps): Clean up code.
1819 Adjust tracing message levels.
1820 Use rough estimates to get offset limits.
1821 (pcf_get_encodings): Adjust tracing message level.
1822 (pcf_get_accel): Clean up code.
1823
Werner Lemberg8eb05252006-06-27 06:20:01 +000018242006-06-26 Werner Lemberg <wl@gnu.org>
1825
1826 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1827 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1828
Werner Lemberg24703f82006-06-26 19:12:51 +000018292006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1830
1831 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1832 (t1_decoder_parse_charstrings): Operator with
1833 opcode 15 pops its two arguments.
1834 Handle the case where the pops of an othersubr may be part of a
1835 subroutine.
1836 Handle unknown othersubrs gracefully: count their operands and let
1837 the following pop operators push the operands as the results onto
1838 the Type1 stack.
1839 Improve handling of setcurrentpoint opcode.
1840
Werner Lembergc011f4c2006-06-26 09:40:00 +000018412006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1842
1843 The Type 1 parser now skips over top-level procedures as required
1844 for a `Simplified Parser'. This makes the parser more robust as it
1845 doesn't poke around in PostScript code. Additionally, it makes the
1846 FontDirectory hackery in src/type1/t1load.c unnecessary.
1847
1848 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1849 (skip_literal_string): Add FT_Error as return value.
1850 Handle escapes better.
1851 (skip_string): Add FT_Error as return value.
1852 Don't set `parser->error' but return error code directly.
1853 (skip_procedure): New function.
1854 (ps_parser_skip_PS_token): Handle procedures.
1855 Update code.
1856 (ps_parser_to_token): Update code.
1857 (ps_parser_load_field_table): Handle bbox entries also.
1858
1859 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1860 Add commented-out code for synthetic fonts.
1861
Werner Lemberga2da05c2006-06-25 06:27:27 +000018622006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1863
1864 Fix two hinting bugs as reported in
1865 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1866
1867 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1868 `first_point' member.
1869
1870 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1871 `first_point'.
1872 (TT_Process_Composite_Glyph): Always untouch points.
1873
1874 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1875 `first_point' and `last_point' in case of composite glyphs.
1876 (Ins_IUP): Fix computation of `end_point'.
1877
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018782006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1879
Werner Lembergef3d2c22006-06-25 06:07:14 +00001880 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1881 Mac. The original patch was written by David Sachitano and Lawrence
1882 Coopet, and modified by Sean McBride for MPW compatibility. Only
1883 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001884
Werner Lembergef3d2c22006-06-25 06:07:14 +00001885 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1886 Mac OS X platforms.
1887 (OS_INLINE): Undefine before definition.
1888 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1889 FontAssociation table in FOND resource.
1890 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1891 and fontSize at each entry of FontAssociation table in FOND
1892 resource.
1893 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1894 ffStylOff of FamilyRecord header of FOND resource, the header,
1895 fontSize, fontID at each entry of FontAssociation table, and
1896 StyleMapping table.
1897 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001898
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018992006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1900
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001901 Public API of TrueTypeGX, OpenType, and classic kern table validator
1902 should return `FT_Err_Unimplemented_Feature' if validation service
1903 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001904 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001905 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1906
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001907 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1908 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1909 unavailable.
1910 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1911 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001912
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001913 * src/base/ftotval.c (FT_OpenType_Validate): Return
1914 FT_Err_Unimplemented_Feature if OpenType validation service is
1915 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001916
Werner Lembergb10e45a2006-06-08 07:32:56 +000019172006-06-08 Werner Lemberg <wl@gnu.org>
1918
1919 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1920 errors.
1921
David Turner5f1f7502006-06-07 05:11:50 +000019222006-06-07 David Turner <david@freetype.org>
1923
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001924 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1925 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1926 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001927
David Turner457b4a82006-06-06 08:14:14 +000019282006-06-06 David Turner <david@freetype.org>
1929
Werner Lemberg4836f952006-06-06 12:54:08 +00001930 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001931
Werner Lemberg4836f952006-06-06 12:54:08 +00001932 We change `ps_unicodes_init' so that it also takes a
1933 `free_glyph_name' callback to release the glyph names returned by
1934 `get_glyph_name'
1935
1936 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1937 Renamed to ...
1938 (PS_GetGlyphNameFunc): This.
1939 (PS_FreeGlyphNameFunc): New typedef.
1940 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1941
1942 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1943 argument.
1944 (cff_sid_free_glyph_name): New function.
1945 (cff_cmap_unicode_init): Updated.
1946
1947 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1948
1949 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1950 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001951
1952
David Turner09717352006-06-04 14:33:08 +000019532006-06-04 David Turner <david@freetype.org>
1954
Werner Lembergd724f202006-06-04 15:17:41 +00001955 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1956 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001957 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001958
Werner Lembergd724f202006-06-04 15:17:41 +00001959 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1960 of `face->num_glyphs' which missed the last glyph, due to
1961 the offset-by-1 computation, since the PFR format doesn't
1962 guarantee that glyph index 0 corresponds to the `missing
1963 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001964
Werner Lemberg33779662006-05-26 06:30:05 +000019652006-05-25 Werner Lemberg <wl@gnu.org>
1966
1967 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1968 `-no-undefined'. Reported by Christian Biesinger.
1969
Werner Lemberg24773d62006-05-20 08:53:13 +000019702006-05-19 Brian Weed <bw@imaginengine.com>
1971
1972 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1973 have debug information, and debug libraries use `C7 compatible'
1974 debug info.
1975
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019762006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1977
Werner Lemberga6523a62006-05-20 08:47:01 +00001978 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001979 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001980
Werner Lemberga6523a62006-05-20 08:47:01 +00001981 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1982 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001983
1984 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001985 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001986
19872006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1988
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001989 * build/unix/configure.raw: Add a fallback to disable Carbon
1990 dependency, if configured with no options on Mac OS X.
1991
19922006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1993
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001994 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001995 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001996 the second part of Savannah bug #16590.
1997
Werner Lemberg545c4e52006-05-17 22:55:04 +000019982006-05-18 Werner Lemberg <wl@gnu.org>
1999
2000 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2001 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2002
David Turnerdc3ff312006-05-17 12:59:35 +000020032006-05-17 David Turner <david@freetype.org>
2004
Werner Lemberg545c4e52006-05-17 22:55:04 +00002005 This is a major patch used to drastically improve the performance of
2006 loading glyphs. This both speeds up loading the glyph vectors
2007 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002008
Werner Lemberg545c4e52006-05-17 22:55:04 +00002009 We now use inline assembler code with GCC to implement `FT_MulFix',
2010 which is probably the most important function related to the
2011 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002012
Werner Lemberg545c4e52006-05-17 22:55:04 +00002013 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002014
2015
Werner Lemberg545c4e52006-05-17 22:55:04 +00002016 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2017 `cursor' and `limit'.
2018
2019 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2020 New functions.
2021 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2022 [TEST]: Remove.
2023
2024 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2025 code.
2026
2027 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2028 `FT_ZERO'
2029 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2030 (af_glyph_hints_reload: Rewrite recognition of weak points.
2031
2032 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2033 constant values out of the loops.
2034
2035 * src/autofit/aftypes.h: Updated.
2036
2037 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2038
2039 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2040 product to get orientation.
2041
2042 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2043 (FT_Stream_OpenGzip): Use it to handle small files directly in
2044 memory.
2045
2046 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2047 Improve performance.
2048
2049 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2050 `limit'.
2051
2052 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2053 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2054 exceedingly large values of number of contours. Speed up by
2055 reducing the number of loops.
2056
2057 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2058
2059
2060 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2061 used to detect rogue clients from 4 to 16. This is to prevent some
2062 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2063 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002064
Werner Lembergde2d90a2006-05-17 08:54:30 +000020652007-05-17 Werner Lemberg <wl@gnu.org>
2066
2067 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002068 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002069
20702006-05-16 Werner Lemberg <wl@gnu.org>
2071
2072 * docs/PROBLEMS: Updated icl issues.
2073
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002074----------------------------------------------------------------------------
2075
Werner Lemberg42b63b22007-01-21 21:01:33 +00002076Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002077David Turner, Robert Wilhelm, and Werner Lemberg.
2078
2079This file is part of the FreeType project, and may only be used, modified,
2080and distributed under the terms of the FreeType project license,
2081LICENSE.TXT. By continuing to use, modify, or distribute this file you
2082indicate that you have read the license and understand and accept it
2083fully.
2084
2085
2086Local Variables:
2087version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002088coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002089End: