blob: af8e5a1cef89dac090e7ce31b00235208643969e [file] [log] [blame]
Werner Lembergbebc7b12007-06-01 06:32:30 +000012007-06-01 Werner Lemberg <wl@gnu.org>
2
3 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
4 pass for `StartData' if an error has occurred.
5
Werner Lembergba03af62007-05-30 13:57:02 +000062007-05-30 Werner Lemberg <wl@gnu.org>
7
8 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
9 against too small binary data strings.
10
11 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
12
David Turnerf0cd69c2007-05-28 15:42:09 +0000132007-05-28 David Turner <david@freetype.org>
14
Werner Lemberg99e0c182007-05-29 07:00:23 +000015 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
16 transformation. This significantly reduces the loading time of CFF
17 glyphs.
David Turner552a9562007-05-28 15:45:35 +000018
Werner Lemberg99e0c182007-05-29 07:00:23 +000019 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +000020
Werner Lemberg99e0c182007-05-29 07:00:23 +000021 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
22 hinting script to CJK, since it works well with more scripts than
23 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
24 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +000025
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000262007-05-25 Werner Lemberg <wl@gnu.org>
27
28 * docs/CHANGES: Updated.
29
Werner Lemberg6ff2ff52007-05-24 19:39:14 +0000302007-05-24 Werner Lemberg <wl@gnu.org>
31
32 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
33 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
34
352007-05-24 Graham Asher <graham.asher@btinternet.com>
36
37 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
38 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
39
David Turner0d0365e2007-05-22 09:53:44 +0000402007-05-22 David Turner <david@freetype.org>
41
Werner Lemberg1c8980e2007-05-25 07:11:12 +000042 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
43 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +000044
Werner Lemberg1c8980e2007-05-25 07:11:12 +000045
46 Avoid heap blowup with very large .Z font files. This fixes
47 Savannah bug #19910.
48
49 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
50 `in_limit', `pad', `pad_bits', and `in_buff' members.
51 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
52 `buf_total' members.
53
54 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
55 only one argument.
56 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +000057
582007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +000059
60 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
61 (ps_dimension_set_mask_bits): Remove `const'.
62
David Turner0d0365e2007-05-22 09:53:44 +0000632007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000064
65 * src/sfnt/ttmtx.c (tt_face_get_metrics)
66 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
67
Werner Lembergb826fa72007-05-19 07:18:48 +0000682007-05-19 Derek Clegg <dclegg@apple.com>
69
70 Savannah patch #5929.
71
72 * include/freetype/tttables.h, src/base/ftobjcs.c
73 (FT_Get_CMap_Format): New function.
74
75 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
76 `format' member.
77 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
78 cmap_info->format.
79
Werner Lemberg6f99c882007-05-19 07:01:49 +0000802007-05-19 Werner Lemberg <wl@gnu.org>
81
82 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
83 before handling subglyphs so that it can be reinitialized each time.
84 This fixes Savannah bug #19859.
85
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000862007-05-16 Werner Lemberg <wl@gnu.org>
87
88 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
89 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
90 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
91 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
92 tt_face_get_metrics): Fix type-punning issues.
93
David Turner0a24bd22007-05-15 10:54:10 +0000942007-05-15 David Turner <david@freetype.org>
95
96 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000097 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
98 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000099 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000100 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000101
Werner Lemberg607dec72007-05-15 06:49:37 +00001022007-05-15 Graham Asher <graham.asher@btinternet.com>
103
104 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
105 variable.
106 * src/autofit/afloader.c (af_loader_load_g): Ditto.
107
108 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
109 (open_face_from_buffer): Initialize `stream'.
110 (FT_Request_Metrics): Remove unused variable.
111 Remove redundant `break' statements.
112 (FT_Get_Track_Kerning): Remove unused variable.
113
114 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
115 afm_parse_kern_data): Remove redundant
116 `break' statements.
117 (afm_parser_parse): Ditto.
118 Don't use uninitialized variables.
119
120 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
121 Use `|' operator instead of `^' to set it.
122 Update all users.
123
124 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
125 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
126
127 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
128 comparison.
129 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
130 (TT_Load_Glyph): Remove unused variable.
131
Werner Lemberg8d463a52007-05-13 16:01:55 +00001322007-05-13 Derek Clegg <dclegg@apple.com>
133
134 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
135 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
136
David Turner711cf842007-05-11 14:36:24 +00001372007-05-11 David Turner <david@freetype.org>
138
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000139 * src/cache/ftbasic.c, include/freetype/ftcache.h
140 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
141 functions that allow us to look up glyphs using an FTC_Scaler object
142 to specify the size, making it possible to use fractional pixel
143 sizes.
144
145 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
146 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000147
Werner Lemberg94be20e2007-05-09 20:02:55 +00001482007-05-09 Graham Asher <graham.asher@btinternet.com>
149
150 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
151 (af_latin_metrics_scale_dim): Fix compiler warnings.
152
Werner Lemberg41271032007-05-06 04:51:48 +00001532007-05-06 Werner Lemberg <wl@gnu.org>
154
155 * builds/win32/visualce/freetype.sln: Removed, as requested by
156 Vincent.
157
Werner Lembergdf49e692007-05-04 06:30:05 +00001582007-05-04 Vincent RICHOMME <richom.v@free.fr>
159
160 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
161 PC targets.
162
163 * docs/CHANGES: Document them.
164
1652007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000166
167 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
168 mmap (which might happen on some RTOS). From Savannah patch #5909.
169
Werner Lemberg106eaf12007-05-03 07:07:47 +00001702007-05-03 Werner Lemberg <wl@gnu.org>
171
172 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
173 * include/freetype/freetype.h (FT_Set_Char_Size): Update
174 documentation.
175
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001762007-04-28 Victor Stinner <victor.stinner@inl.fr>
177
178 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
179 `cmap'.
180
Werner Lembergcc712a22007-04-27 17:16:50 +00001812007-04-27 Werner Lemberg <wl@gnu.org>
182
183 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
184 number of points in contours. Problem reported by Victor Stinner
185 <victor.stinner@haypocalc.com>.
186 (TT_Process_Simple_Glyph): Synchronize variable types.
187
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001882007-04-26 Werner Lemberg <wl@gnu.org>
189
190 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
191 zero in case of error. This fixes Savannah bug #19689.
192
David Turnera8b45e62007-05-11 14:10:30 +00001932007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
194
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000195 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
196 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000197
Werner Lembergfcc1f472007-04-10 11:51:50 +00001982007-04-10 Martin Horak <horakm@centrum.cz>
199
200 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
201 Ignore `hhea' table. This fixes Savannah bug #19261.
202
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002032007-04-09 Werner Lemberg <wl@gnu.org>
204
205 * Version 2.3.4 released.
206 =========================
207
208
209 Tag sources with `VER-2-3-4'.
210
211 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
212 version number to 2.3.4.
213
214 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
215 builds/win32/visualc/freetype.dsp,
216 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
217
218 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
219
220 * builds/unix/configure.raw (version_info): Set to 9:15:3.
221
Werner Lembergf4a52a62007-04-09 08:40:11 +00002222007-04-09 Martin Horak <horakm@centrum.cz>
223
224 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
225 memory stream to avoid a crash with the incremental memory
226 interface (Savannah bug #19260).
227
David Turner1dcb4442007-04-06 08:19:04 +00002282007-04-06 David Turner <david@freetype.org>
229
Werner Lembergc81cf612007-04-06 09:28:23 +0000230 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
231 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000232
Werner Lemberg9f83e052007-04-05 02:28:23 +00002332007-04-04 Werner Lemberg <wl@gnu.org>
234
235 * Version 2.3.3 released.
236 =========================
237
238
239 Tag sources with `VER-2-3-3'.
240
241 * docs/CHANGES: Mention CVE-2007-1351.
242
David Turner7338ec22007-04-03 14:30:34 +00002432007-04-03 David Turner <david@freetype.org>
244
245 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000246 if one of the resolution values is 0, treat it as if it were the
247 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000248
David Turnere6472c12007-04-02 13:13:54 +00002492007-04-02 David Turner <david@freetype.org>
250
Werner Lemberg94f12272007-04-03 07:19:53 +0000251 Add special code to detect `extra-light' fonts and do not snap their
252 stem widths too much to avoid bizarre hinting effects.
253
254 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
255 `extra_light' members.
256
257 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
258 them.
259 (af_latin_metrics_scale_dim): Set `extra_light'.
260 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000261
David Turner3f539692007-03-28 14:53:40 +00002622007-03-28 David Turner <david@freetype.org>
263
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000264 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000265 padding.
266
Werner Lemberga08b2172007-03-28 07:17:17 +00002672007-03-28 Werner Lemberg <wl@gnu.org>
268
269 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
270 gracefully.
271 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000272 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000273 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
274 number of code points in Unicode.
275
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000276 * builds/win32/visualc/index.html,
277 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000278 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000279 s/232/233/.
280
281 * docs/CHANGES: Mention ftdiff.
282
David Turner3b242d32007-03-26 12:03:04 +00002832007-03-26 David Turner <david@freetype.org>
284
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000285 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
286 corresponding code.
287 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000288
Werner Lemberga08b2172007-03-28 07:17:17 +0000289 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000290 computations in order to ignore single-point contours. These are
291 never rasterized and correspond in certain fonts to mark-attach
292 points that are very far from the glyph's real outline, ruining the
293 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000294
Werner Lemberga08b2172007-03-28 07:17:17 +0000295 * src/autofit/afloader.c (af_loader_load_g): In the case of
296 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
297 Otherwise code that uses them will most certainly ruin the fixed
298 advance property.
David Turner23553d62007-03-26 13:37:17 +0000299
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000300 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
301 documentation and bump version number to 2.3.3.
302
303 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
304
305 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000306
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003072007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
308
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000309 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
310 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000311 * builds/vms/ftconfig.h: Ditto.
312 * include/freetype/config/ftconfig.h: Ditto.
313
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00003142007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
315
Werner Lemberg14ffe092007-03-22 06:12:43 +0000316 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
317 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000318 proposed by Sean McBride:
319 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
320
3212007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
322
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000323 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
324 setjmp, proposed by Sean McBride:
325 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
326
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003272007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
328
Werner Lembergc9f6c662007-03-21 13:30:14 +0000329 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
330 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
331 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000332
David Turner74c34eb2007-03-18 07:19:31 +00003332007-03-18 David Turner <david@freetype.org>
334
Werner Lembergc9f6c662007-03-21 13:30:14 +0000335 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
336 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000337
Werner Lembergc9f6c662007-03-21 13:30:14 +0000338 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000339
David Turner89020d92007-03-17 17:48:57 +00003402007-03-17 David Turner <david@freetype.org>
341
Werner Lembergc9f6c662007-03-21 13:30:14 +0000342 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
343 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000344
Werner Lemberg25d592a2007-03-09 07:59:35 +00003452007-03-09 Werner Lemberg <wl@gnu.org>
346
347 * Version 2.3.2 released.
348 =========================
349
350
351 Tag sources with `VER-2-3-2'.
352
353 * builds/win32/visualc/index.html,
354 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000355 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000356 s/231/232/.
357
David Turner3a51afa2007-03-08 10:50:38 +00003582007-03-08 David Turner <david@freetype.org>
359
Werner Lemberg25d592a2007-03-09 07:59:35 +0000360 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000361
Werner Lemberg25d592a2007-03-09 07:59:35 +0000362 * builds/unix/configure.raw (version_info): Set to 9:13:3.
363
364 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
365
366 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000367
Werner Lemberg1e259de2007-03-08 15:39:21 +0000368 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
369 function to work properly, over-writing user-provided buffers in
370 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000371
David Turner121cad52007-03-08 16:43:50 +0000372
Werner Lemberg3d92f082007-03-06 11:59:24 +00003732007-03-05 Werner Lemberg <wl@gnu.org>
374
375 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
376 macro for `strstr'.
377
378 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
379 `trick_names', as suggested by Ivan Nincic.
380
David Turner085bc6e2007-03-05 17:40:03 +00003812007-03-05 David Turner <david@freetype.org>
382
Werner Lembergd112cf02007-03-06 12:06:56 +0000383 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
384 case FT_Init_FreeType fails for some reason. Problem reported by
385 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000386
Werner Lembergd112cf02007-03-06 12:06:56 +0000387 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
388 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
389 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
390 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000391
Werner Lembergd112cf02007-03-06 12:06:56 +0000392 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
393 signed values, not unsigned ones. Problem reported by Johannes
394 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000395
David Turner601aefe2007-02-21 16:47:49 +00003962007-02-21 David Turner <david@freetype.org>
397
Werner Lembergde5e6862007-02-25 21:06:43 +0000398 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
399 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000400
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004012007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
402
403 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
404 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
405 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
406
Werner Lemberga0915172007-02-16 08:12:50 +00004072007-02-16 Werner Lemberg <wl@gnu.org>
408
409 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
410 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
411
David Turner2c4500e2007-02-14 15:08:47 +00004122007-02-14 David Turner <david@freetype.org>
413
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000414 It seems that the following changes fix most of the known
415 interpreter problems with my fonts, but more testing is needed,
416 though.
417
418 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
419 (TT_MulFix14): Rewrite.
420 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
421 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000422
Werner Lembergc6a14082007-02-12 22:08:15 +00004232007-02-12 Werner Lemberg <wl@gnu.org>
424
425 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
426 warnings.
427
428 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
429 (bdf_interpret_style): Ditto.
430
David Turnerc0f9c4a2007-02-12 14:55:03 +00004312007-02-12 David Turner <david@freetype.org>
432
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000433 Simplify projection and dual-projection code interface.
434
Werner Lemberg406d25f2007-02-12 22:01:18 +0000435 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
436 FT_Vector' as argument type.
437 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
438 Updated.
439 (CUR_fast_project, CUR_fast_dualproj): New macros.
440 (Project, Dual_Project, Project_x, Project_y): Updated.
441 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
442 macros.
443
444
445 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
446 adjustments for the non-light auto-hinted modes. Gets rid of
447 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000448
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000449 * src/autofit/aflatin.c (af_latin_hints_link_segments,
450 af_latin_hints_compute_edges): Slight optimization of the segment
451 linker and better handling of serif segments to get rid of broken
452 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000453
David Turnerc0f9c4a2007-02-12 14:55:03 +0000454
Werner Lemberg442bfb82007-02-12 21:44:10 +0000455 Introduce new string functions and the corresponding macros to get
456 rid of various uses of strcpy and other `evil' functions, as well as
457 to simplify a few things.
458
459 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
460 ft_mem_strcpyn): New declarations.
461 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
462 macros.
463 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
464 functions.
465
466 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
467 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
468 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
469 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
470 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
471 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
472 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
473 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000474
Werner Lemberg406d25f2007-02-12 22:01:18 +0000475 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
476
Werner Lemberg582067d2007-02-11 15:03:05 +00004772007-02-11 Werner Lemberg <wl@gnu.org>
478
479 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
480 non-spacing glyphs.
481
Werner Lemberg8f474532007-02-07 08:31:01 +00004822007-02-07 Tom Parker <palfrey@tevp.net>
483
484 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
485 pointer.
486
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004872007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
488
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000489 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
490 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000491 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000492 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
493 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
494 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
495 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000496
497 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
498 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000499 * builds/mac/ftmac.c: Ditto.
500
5012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
502
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000503 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000504 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000505 #include <ftmac.c>.
506
5072007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
508
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000509 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
510 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
511 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
512 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
513 FT_GetFilePath_From_Mac_ATS_Name.
514 * builds/mac/ftmac.c: Ditto.
515
5162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
517
Werner Lembergdcbb7082007-02-08 08:54:09 +0000518 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000519 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
520 for passing to FT_New_Face_From_FSSpec.
521
5222007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
523
Werner Lembergdcbb7082007-02-08 08:54:09 +0000524 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000525 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000526
527 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
528 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000529 * builds/mac/ftmac.c (OS_INLINE): Ditto.
530
Werner Lemberg313d7772007-02-01 08:10:45 +00005312007-02-01 Werner Lemberg <wl@gnu.org>
532
533 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
534 Explain why applications shouldn't use it. Found by Alexei.
535
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005362007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000537
538 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
539 message.
540
541 * src/gxvalid/gxvmort1.c
542 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
543 message.
544
Werner Lemberg53935932007-01-31 08:53:02 +00005452007-01-31 Werner Lemberg <wl@gnu.org>
546
547
548 * Version 2.3.1 released.
549 =========================
550
551
552 Tag sources with `VER-2-3-1-FINAL'.
553
554 * builds/win32/visualc/freetype.dsp,
555 builds/win32/visualc/freetype.vcproj: s/230/231/.
556 * builds/win32/visualc/index.html: s/221/231/.
557
558 * vms_make.com: Add `ftgasp'.
559
David Turnera7ee6082007-01-30 10:33:53 +00005602007-01-30 David Turner <david@freetype.org>
561
Werner Lemberg53935932007-01-31 08:53:02 +0000562 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000563
Werner Lemberg53935932007-01-31 08:53:02 +0000564 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000565
Werner Lemberg25d592a2007-03-09 07:59:35 +0000566 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000567 s/2.3.0/2.3.1/.
568
569 * builds/unix/configure.raw (version_info): Set to 9:12:3.
570
571
572 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
573 (af_loader_load_g): Disable the warper (i.e., the light hinting
574 improvements) to make a 2.3.1 bugfix release before introducing a
575 new feature. This should give us more time to tune and improve the
576 warper for the next release.
577
578 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000579
David Turnerd91eebd2007-01-26 15:05:41 +00005802007-01-25 David Turner <david@freetype.org>
581
Werner Lembergbf241762007-01-26 16:08:49 +0000582 For light auto-hinting, improve glyph advance widths and resurrect
583 normal/full hinting to its normal quality.
584
585 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
586 and `xmax_delta'.
587 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
588 and `xmax_delta'.
589
590 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
591 preprocessor conditional with if-clause, handling both light and
592 normal mode.
593
594 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
595 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000596
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005972007-01-25 Werner Lemberg <wl@gnu.org>
598
599 * docs/release: Updated -- Savannah uses a new uploading scheme.
600
David Turnera42567b2007-01-25 12:23:37 +00006012007-01-25 David Turner <david@freetype.org>
602
Werner Lembergd7855662007-01-25 13:53:56 +0000603 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000604
Werner Lembergd7855662007-01-25 13:53:56 +0000605 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
606 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
607 functions.
David Turnera42567b2007-01-25 12:23:37 +0000608
Werner Lembergd7855662007-01-25 13:53:56 +0000609 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000610
Werner Lembergb1be9e82007-01-25 11:50:00 +00006112007-01-25 Werner Lemberg <wl@gnu.org>
612
613 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000614 correctly in a sanity check. Since this function is only used to
615 load local and global functions, any charstring that called the last
616 local/global function would fail otherwise. This fixes Savannah bug
617 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000618
619 * docs/CHANGES: Document it.
620
David Turnerb6de8d12007-01-23 15:51:50 +00006212007-01-23 David Turner <david@freetype.org>
622
Werner Lembergb1be9e82007-01-25 11:50:00 +0000623 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
624 prevented compilation when disabling both the unpatented and the
625 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000626
Werner Lembergb1be9e82007-01-25 11:50:00 +0000627
628 Fix and enable the warper to improve `light' hinting mode. This is
629 not necessarily a final version, but it seems to work well.
630
631 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
632 Disable code.
633 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
634 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
635
636 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
637 (af_warper_compute_line_best): Fix array size of `scores'.
638 (af_warper_compute): Better handling of border cases.
639 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
640 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000641
Werner Lemberg011d1112007-01-21 09:36:00 +00006422007-01-21 Werner Lemberg <wl@gnu.org>
643
Werner Lemberg42b63b22007-01-21 21:01:33 +0000644 * ChangeLog: Split off older entries into...
645 * ChangeLog.22: This new file.
646
6472007-01-21 Werner Lemberg <wl@gnu.org>
648
Werner Lemberg555258f2007-01-21 09:46:37 +0000649 * docs/CHANGES: Document SHZ fix.
650
6512007-01-21 George Williams <gww@silcom.com>
652
653 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
654 points.
655
6562007-01-21 Werner Lemberg <wl@gnu.org>
657
Werner Lemberg011d1112007-01-21 09:36:00 +0000658 * src/sfnt/ttmtx.c (tt_face_get_metrics)
659 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
660
Werner Lemberg87a5a432007-01-17 12:44:39 +00006612007-01-17 Werner Lemberg <wl@gnu.org>
662
Werner Lembergb8003292007-01-17 12:56:25 +0000663
664 * Version 2.3.0 released.
665 =========================
666
667
668 Tag sources with `VER-2-3-0-FINAL'.
669
6702007-01-17 Werner Lemberg <wl@gnu.org>
671
Werner Lemberg87a5a432007-01-17 12:44:39 +0000672 * docs/release: Updated.
673
David Turner22122722007-01-16 20:06:44 +00006742007-01-16 David Turner <david@freetype.org>
675
Werner Lemberg87a5a432007-01-17 12:44:39 +0000676 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
677 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
678 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
679 warnings.
David Turner22122722007-01-16 20:06:44 +0000680
Werner Lemberg267e1d72007-01-15 07:48:09 +00006812007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
682
683 * builds/amiga/makefile, builds/amiga/makefile.os4,
684 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
685
686 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
687
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006882007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
689
690 Fix various compiler warnings.
691
692 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
693 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
694 s/index/strike_index/.
695 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
696
697 * src/gxvalid/gxvmorx5.c
698 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
699
700 * src/truetype/ttinterp.c (Compute_Point_Displacement),
701 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
702 uninitialized variables.
703
Werner Lemberg6164a9d2007-01-13 23:01:36 +00007042007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
705
706 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
707
Werner Lemberg281c1482007-01-13 22:50:51 +00007082007-01-13 Werner Lemberg <wl@gnu.org>
709
710 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
711 versions up to 0x3FF without complaining.
712
Werner Lembergac250b22007-01-13 14:01:36 +00007132007-01-13 Derek Clegg <dclegg@apple.com>
714
715 Add FT_Get_PS_Font_Info interface to CFF driver.
716
717 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
718 (CFF_FontRec): Add `font_info' field.
719
720 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
721 (cff_font_done): Free font->font_info if necessary.
722
723 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
724 (cff_service_ps_info): Register cff_ps_get_font_info.
725
Werner Lemberg23df31a2007-01-13 08:45:00 +00007262007-01-13 Werner Lemberg <wl@gnu.org>
727
728 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
729 with C++ compiler.
730
731 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
732 af_glyph_hints_dump_edges): Ditto.
733
734 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
735 `modules.cfg').
736
737 * src/sfnt/ttsbit0.h: Remove.
738
739 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
740
Werner Lemberg27cf9de2007-01-13 07:34:23 +00007412007-01-12 David Turner <david@freetype.org>
742
743 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
744 bug in the bitmap emboldener if the pitch of the source bitmap is
745 much larger than its width.
746
747 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
748 compilation warning.
749
Werner Lemberg6d96d312007-01-12 10:30:19 +00007502007-01-12 Werner Lemberg <wl@gnu.org>
751
752 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
753 `automake' CVS module from sources.redhat.com.
754
Werner Lemberg17432b52007-01-12 09:28:44 +00007552007-01-11 Werner Lemberg <wl@gnu.org>
756
757 * src/type1/t1load.c (is_space): Removed.
758 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
759 (parse_charstrings): Use IS_PS_TOKEN.
760
761
762 * autogen.sh: Avoid bash specific syntax.
763
David Turner038ace22007-01-11 15:00:59 +00007642007-01-11 David Turner <david@freetype.org>
765
Werner Lemberg17432b52007-01-12 09:28:44 +0000766 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000767
Werner Lemberg17432b52007-01-12 09:28:44 +0000768 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000769
Werner Lemberg17432b52007-01-12 09:28:44 +0000770 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
771 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000772 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000773
Werner Lemberg17432b52007-01-12 09:28:44 +0000774 * autogen.sh: Small fix to get it working on Mac OS X properly:
775 The issue is that GNU libtool is called `glibtool' on this platform,
776 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000777
David Turner2628ea92007-01-10 13:15:56 +00007782007-01-10 David Turner <david@freetype.org>
779
Werner Lemberg17432b52007-01-12 09:28:44 +0000780 * all-sources: Tag all sources with VER-2-3-0-RC1 and
781 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000782
Werner Lemberg17432b52007-01-12 09:28:44 +0000783 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
784 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
785 version number to 2.3.0.
786
787 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
788 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000789
790 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000791 include/freetype/ftlcdfil.h: Update reference documentation with
792 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000793
Werner Lemberg17432b52007-01-12 09:28:44 +0000794 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
795 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000796
Werner Lembergbf02d392007-01-10 07:07:37 +00007972007-01-10 Derek Clegg <dclegg@apple.com>
798
799 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
800 values.
801
David Turnerf48b60e2007-01-08 15:15:32 +00008022007-01-08 David Turner <david@freetype.org>
803
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000804 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000805
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000806 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
807 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000808 corresponding to a given character pixel size.
809
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000810 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
811 `gasp' table, in order to avoid potential problems with later
812 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000813
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000814 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
815 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000816
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000817 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
818 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
819 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
820 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000821
Werner Lemberge6b6f372007-01-07 00:06:47 +00008222007-01-07 Werner Lemberg <wl@gnu.org>
823
Werner Lembergb8004d22007-01-07 09:13:38 +0000824 * src/cid/cidparse.c (cid_parser_new): Improve error message for
825 Type 11 fonts.
826 Scan for `/sfnts' token.
827
8282007-01-07 Werner Lemberg <wl@gnu.org>
829
830 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000831
Werner Lembergbe5f7972007-01-06 07:51:48 +00008322007-01-06 Werner Lemberg <wl@gnu.org>
833
834 * src/cff/cffload.c (cff_index_init): Remove unused variable.
835 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
836
David Turnera8cf42b2007-01-04 16:46:46 +00008372007-01-04 David Turner <david@freetype.org>
838
Werner Lembergf6294392007-01-06 07:47:45 +0000839 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
840 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000841
Werner Lembergf6294392007-01-06 07:47:45 +0000842
843 Do not allocate interpreter-specific tables in memory if we are not
844 going to load glyphs with the bytecode interpreter anyway.
845
846 * src/truetype/ttgload.c (tt_loader_init): Load execution context
847 only if glyph is hinted.
848 Updated.
849 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
850 and `cvs_ready'.
851 Add `tt_size_ready_bytecode' declaration.
852 * src/truetype/ttobjs.c (tt_size_done_bytecode,
853 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
854 (tt_size_init): Move most code into `tt_size_init_bytecode'.
855 (tt_size_done): Move most code into `tt_size_done_bytecode'.
856 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000857
David Turner91a34022007-01-05 14:47:08 +0000858
Werner Lembergf6294392007-01-06 07:47:45 +0000859 Don't extract the metrics table from the SFNT font file. Instead,
860 reparse it on each glyph load. The runtime difference is not
861 noticeable, and it can save a lot of heap memory when memory-mapped
862 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000863
Werner Lembergf6294392007-01-06 07:47:45 +0000864 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
865 `horz_metrics_offset' and `vert_metrics_ofset'.
866 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
867 Updated.
868
869
870 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
871
872
873 Do not load the CFF index offsets into memory, since this wastes a
874 *lot* of heap memory with large Asian CFF fonts. There is no
875 significant performance loss.
876
877 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
878 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
879 `data_size'.
880 (CFF_CharsetRec): Add field `num_glyphs'.
881
882 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
883 cff_charset_cid_to_gindex): New functions.
884 (cff_new_index): Renamed to...
885 (cff_index_init): This. Update all callers.
886 Updated -- some code has been moved to `cff_index_load_offsets'.
887 (cff_done_index): Renamed to...
888 (cff_index_done): This. Update all callers.
889 (cff_index_get_pointers, cff_index_access_element): Updated to use
890 stream offsets.
891 (cff_charset_compute_cids): Set `num_glyphs' field.
892 (cff_encoding_load): Updated.
893
894 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000895
8962007-01-04 David Turner <david@freetype.org>
897
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000898 * docs/INSTALL.UNIX: Simplify some parts, add reference to
899 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000900
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000901 * README.CVS: Add common problem description and solution
902 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000903
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000904 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000905
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000906 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000907
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000908 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000909
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000910 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
911 (TWorker): This.
912 Remove `count_table' and `memory'.
913 Make `grays' a pointer.
914 (TRaster): New structure.
915 (count_table): New static array.
916 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
917 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
918 ft_black_set_mode, ft_black_render): Updated.
919 (ft_black_init): Don't initialize `count_table'.
920 (ft_black_reset): Use the render pool. This saves about 6KB of
921 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000922
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000923 * src/smooth/ftgrays.c (TRaster): Replaced with...
924 (TWorker): This.
925 Remove `memory'.
926 (TRaster): New structure.
927
928 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
929 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
930 gray_render_span, gray_raster_render): Updated.
931 (gray_raster_reset): Use the render pool. This saves about 6KB of
932 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000933
David Turner8a6c44e2007-01-04 17:03:11 +0000934 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
935 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000936 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
937 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
938 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000939
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000940 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
941 Remove a typo that results in no hinting and a memory leak with some
942 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000943
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000944 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000945 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000946 CFF_Faces in it. We need to close all faces before destroying the
947 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000948
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00009492007-01-02 Werner Lemberg <wl@gnu.org>
950
951 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
952 Remove compiler warning.
953
David Turner9207e002007-01-02 16:58:13 +00009542007-01-02 David Turner <david@freetype.org>
955
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000956 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000957
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009582006-12-31 Masatake YAMATO <jet@gyve.org>
959
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000960 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
961 function.
962 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000963 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000964 `gxv_kern_subtable_fmt0_pairs_validate'.
965
David Turner115b4422006-12-22 11:37:05 +00009662006-12-22 David Turner <david@freetype.org>
967
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000968 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
969 warnings.
David Turner115b4422006-12-22 11:37:05 +0000970
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000971 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
972 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000973
Werner Lemberg4755bf72006-12-16 08:58:44 +00009742006-12-16 Anders Kaseorg <anders@kaseorg.com>
975
976 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
977 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
978
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009792006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
980
Werner Lemberg9b774e22007-01-16 06:11:27 +0000981 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000982 sync with the modification by Jens Claudius on 2006-08-22; cf.
983 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 +0000984
9852006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
986
987 * src/base/ftmac.c: Specialized for Mac OS X only.
988 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
989 * builds/unix/configure.raw: Ditto. When explicit switches for
990 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
991 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
992
9932006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
994
995 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
996 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
997 instead of src/base/ftmac.c
998 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
999 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1000 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1001 that cannot be built at present.
1002
10032006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1004
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001005 * src/base/ftobjs.c: Improvement of resource fork handler for
1006 POSIX, cf.
1007 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001008 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1009 format or .dfont, to simulate the face index number counted by ftmac.c.
1010 (IsMacResource): Return the number of scalable faces correctly.
1011
Werner Lembergec5b4502006-12-10 07:51:38 +000010122006-12-10 Werner Lemberg <wl@gnu.org>
1013
1014 * builds/toplevel.mk (version): Protect against `distclean' target.
1015
Werner Lembergb26b3142006-12-09 20:01:43 +000010162006-12-09 Werner Lemberg <wl@gnu.org>
1017
1018 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1019 or `type'.
1020
1021 * builds/freetype.mk (version): Extracted from freetype.h, using
1022 GNU make's built-in string functions.
1023 (refdoc): Use $(version) instead of static version number.
1024
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010252006-12-08 Werner Lemberg <wl@gnu.org>
1026
1027 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1028
Werner Lemberg15c29502006-12-09 07:29:54 +000010292006-12-08 Vladimir Volovich <vvv@vsu.ru>
1030
1031 * src/tools/apinames (State): Remove final comma in structure -- xlc
1032 v5 under AIX 4.3 doesn't like this.
1033
David Turnerdbf3b432006-12-07 21:18:09 +000010342006-12-07 David Turner <david@freetype.org>
1035
Werner Lemberg256a3512006-12-08 06:49:33 +00001036 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1037 to the spacing of auto-fitted glyphs. This only impacts rare
1038 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001039
Werner Lemberg11171312006-12-03 09:43:40 +000010402006-12-03 Werner Lemberg <wl@gnu.org>
1041
1042 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1043
Werner Lemberg960ba592006-12-01 08:20:47 +000010442006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001045
Werner Lemberg960ba592006-12-01 08:20:47 +00001046 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1047 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1048 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001049
David Turner80658e52006-11-28 08:09:20 +00001050
Werner Lemberg960ba592006-12-01 08:20:47 +00001051 * include/freetype/ftxf86.h: Fix and extend comment so that it
1052 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001053
Werner Lemberg960ba592006-12-01 08:20:47 +00001054 * include/freetype/ftchapters.h: Add `font_format' section.
1055
1056
1057 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1058 to TOC in index page.
1059
10602006-11-28 David Turner <david@freetype.org>
1061
1062 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1063 trying to render into a zero-width/height bitmap, not an error code.
1064
1065 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1066
1067 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1068 ones instead.
1069
1070 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1071 variable.
David Turner80658e52006-11-28 08:09:20 +00001072
Werner Lemberg8636c292006-11-26 22:28:13 +000010732006-11-26 Pierre Hanser <hanser@club-internet.fr>
1074
1075 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1076
Werner Lemberg960ba592006-12-01 08:20:47 +000010772006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001078
Werner Lemberg960ba592006-12-01 08:20:47 +00001079 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1080 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1081 Add stubs to link the `ftgrid' test program when debugging is
1082 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001083
Werner Lemberg960ba592006-12-01 08:20:47 +000010842006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001085
1086 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001087 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1088
1089 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1090 Emit more sensible information.
1091
1092 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1093
1094 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1095 rounding of blue values.
1096 (af_latin_hints_compute_segments): Hint segment heights.
1097 (af_latin_hints_link_segments): Reduce `len_score' value.
1098 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1099 value and use `height' member for comparisons.
1100 (af_latin_hint_edges): Extend logging message.
1101 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001102
Werner Lemberg91959bf2006-11-22 10:36:55 +000011032006-11-22 Werner Lemberg <wl@gnu.org>
1104
1105 Fix Savannah bug #15553.
1106
1107 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1108 program after a change from mono to grayscaling (and vice versa).
1109 Use correct constant for comparison to get `exec->grayscale'.
1110
Werner Lemberg913a3652006-11-19 09:19:17 +000011112006-11-18 Werner Lemberg <wl@gnu.org>
1112
1113 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001114 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001115 This patch fixes Savannah bug #18301.
1116
1117 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1118 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1119 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1120 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1121 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1122 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1123 (FNT_Load_Glyph): Check validity of `glyph_index'.
1124
David Turner7bab6ae2006-11-13 11:25:06 +000011252006-11-13 David Turner <david@freetype.org>
1126
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001127 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1128 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001129
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001130 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1131 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1132 when building the library to change the default LCD filter to be
1133 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001134
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001135 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001136
David Turner8765c712006-11-10 16:49:42 +000011372006-11-10 David Turner <david@freetype.org>
1138
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001139 * src/smooth/ftsmooth.c: API change for the LCD
1140 filter. The FT_LcdFilter value is an enumeration describing which
1141 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1142 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1143 algorithm which produces strong color fringes for everything
1144 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001145
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001146 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1147 second parameter to an enum type.
1148
1149 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1150 (_ft_lcd_filter): Rename to...
1151 (_ft_lcd_filter_fir): This.
1152 Update parameters.
1153 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1154 (FT_Library_Set_LcdFilter): Update parameters.
1155 Handle new filter modes.
1156
1157 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1158 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1159 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1160 callback and update other fields.
1161
1162 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1163 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1164 Other minor improvements.
1165
1166 * src/autofit/aflatin.c: Various tiny improvements that drastically
1167 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1168 (af_latin_hints_compute_edges): Fix typo.
1169 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001170
David Turner4e9cc3c2006-11-09 16:31:52 +000011712006-11-09 David Turner <david@freetype.org>
1172
Werner Lemberg49c77a82006-11-09 21:51:57 +00001173 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1174 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001175
Werner Lemberg5e430892006-11-07 09:35:03 +000011762006-11-07 Zhe Su <james.su@gmail.com>
1177
1178 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1179 also.
1180
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011812006-11-03 Werner Lemberg <wl@gnu.org>
1182
1183 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1184
David Turner40604742006-11-02 16:37:35 +000011852006-11-02 David Turner <david@freetype.org>
1186
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001187 Add a few tweaks to better handle serif fonts.
1188 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001189
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001190 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1191 segments that are less than 1.5 pixels high. This gets rid of
1192 *many* corner cases with serifs.
1193 (af_latin_align_linked_edge): Add logging message.
1194 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1195 Add logging messages.
1196 Handle AF_EDGE_FLAG flag specially.
1197
1198 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1199 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1200
1201 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1202 Update external declarations.
1203 (af_corner_orientation, af_corner_is_flat): Replaced by...
1204
1205 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1206 ft_corner_is_flat): These declarations.
1207
1208 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1209 Comment out. Replaced by...
1210
1211 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1212 These functions. Update all callers.
1213 (FT_Add64) [!FT_LONG64]: Simplify.
1214
1215 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1216 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1217 production of garbage by missing lots of segments.
1218
1219 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1220
1221 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1222 [AF_DEBUG]: Set _af_debug_hints.
1223
1224
1225 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1226 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1227 and ft_corner_orientation.
1228
1229
1230 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001231
Werner Lemberge88c5262006-10-24 05:46:26 +000012322006-10-24 Werner Lemberg <wl@gnu.org>
1233
1234 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1235
1236 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1237 as argument.
1238
David Turnera1861392006-10-23 16:00:59 +000012392006-10-23 Zhe Su <zsu@novell.com>
1240
Werner Lemberg715e96e2006-10-24 05:28:45 +00001241 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1242 better deal with broken Asian fonts with strange glyphs, having
1243 self-intersections and other peculiarities. The used algorithm is
1244 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001245
David Turnere140f142006-10-23 08:56:57 +000012462006-10-23 David Turner <david@freetype.org>
1247
Werner Lemberg715e96e2006-10-24 05:28:45 +00001248 Speed up the CFF font loader. With some large CFF fonts,
1249 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001250
Werner Lemberg715e96e2006-10-24 05:28:45 +00001251 * src/cff/cffload.c (cff_get_offset): Removed.
1252 (cff_new_index): Inline functionality of `cff_get_offset'.
1253 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1254 (cff_charset_done): Call `cff_charset_free_cids'.
1255 (cff_charset_load): Call `cff_charset_compute_cids'.
1256 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1257
1258 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1259 with FT_NEXT_XXX.
1260
1261
1262 Speed up the Postscript hinter, with more than 100% speed increase
1263 on my machine.
1264
1265 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1266 psh_corner_orientation): New functions.
1267 (psh_glyph_compute_inflections): Merge loops for efficiency.
1268 Use `psh_corner_orientation'.
1269 (psh_glyph_init): Use `psh_corner_is_flat'.
1270 (psh_hint_table_find_strong_point): Renamed to...
1271 (psh_hint_table_find_strong_points): This.
1272 Rewrite, adding argument to handle all points at once.
1273 Update all callers.
1274 (PSH_MAX_STRONG_INTERNAL): New macro.
1275 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001276
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012772006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1278
1279 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001280 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001281
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012822006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1283
1284 * docs/INSTALL.CROSS: New document file for cross-building.
1285
1286 * builds/unix/configure.raw: Preliminary cross-building support.
1287 Find native C compiler and pass it by CC_BUILD, and
1288 find suffix for native executable and pass it by EXEEXT_BUILD.
1289 Also suffix for target executable is passed by EXEEXT.
1290
Werner Lembergb9e6d692006-10-15 08:58:40 +00001291 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1292 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001293 CC_BUILD and EXEEXT_BUILD.
1294
Werner Lembergb9e6d692006-10-15 08:58:40 +00001295 * builds/exports.mk (APINAMES_EXE): Change the extension for
1296 apinames from the suffix for target (E) to that for building host
1297 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001298
Werner Lemberg82a07e92006-10-12 06:20:44 +000012992006-10-12 Werner Lemberg <wl@gnu.org>
1300
1301 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1302 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1303 which reference those files.
1304
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000013052006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1306
Werner Lembergb9e6d692006-10-15 08:58:40 +00001307 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1308 embedded in freetype2.pc and freetype-config. Use it to record
1309 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001310
1311 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1312
1313 * builds/unix/freetype-config.in: Ditto.
1314
Werner Lemberg28e17d92006-10-11 17:27:47 +000013152006-10-11 Werner Lemberg <wl@gnu.org>
1316
1317 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1318 development.
1319
Jens Claudius336d2292006-10-03 08:53:37 +000013202006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1321
1322 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1323 argument to ft_setjmp.
1324
1325 * include/freetype/internal/ftvalid.h: Add comment that
1326 ft_validator_run must not be used.
1327
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013282006-10-01 Werner Lemberg <wl@gnu.org>
1329
1330 * src/base/ftbase.c: Undo change from 2006-09-30.
1331
1332 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1333
13342006-09-30 David Turner <david@freetype.org>
1335
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001336 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1337 s/unpatented_hinting/ignore_unpatented_hinter/.
1338 Update all callers.
1339
1340 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1341 auto-hinting shall be used or not.
1342
1343 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001344
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013452006-09-30 Werner Lemberg <wl@gnu.org>
1346
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001347 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1348 in use).
1349
1350 * src/base/ftbase.c: Include `ftlcdfil.c'.
1351
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013522006-09-29 Werner Lemberg <wl@gnu.org>
1353
1354 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1355 overlapping segments. Bug reported by Stefan Koch.
1356
David Turnerad830712006-09-27 16:20:59 +000013572006-09-28 David Turner <david@freetype.org>
1358
Werner Lemberg2c002e12006-09-29 21:31:53 +00001359 Fix a bug in the automatic unpatented hinting support which prevents
1360 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001361
Werner Lemberg2c002e12006-09-29 21:31:53 +00001362 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1363 s/force_autohint/unpatented_hinting/. Update all callers.
1364
1365 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1366
1367 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001368
David Turner8a317cf2006-09-27 07:52:48 +000013692006-09-27 David Turner <david@freetype.org>
1370
Werner Lemberg2c002e12006-09-29 21:31:53 +00001371 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001372
David Turner8a317cf2006-09-27 07:52:48 +00001373
David Turnere140f142006-10-23 08:56:57 +00001374 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001375 In a default build, the function `FT_Library_SetLcdFilter' returns
1376 `FT_Err_Unimplemented_Feature'; you need to #define
1377 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1378 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001379
Werner Lemberg2c002e12006-09-29 21:31:53 +00001380 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001381
Werner Lemberg2c002e12006-09-29 21:31:53 +00001382 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1383 typedef.
1384 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1385 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001386
Werner Lemberg2c002e12006-09-29 21:31:53 +00001387 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1388 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001389
Werner Lemberg2c002e12006-09-29 21:31:53 +00001390 Handle subpixel rendering.
1391 Simplify function.
1392 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1393 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1394
1395 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1396 pointing to <freetype/ftlcdfil.h>.
1397
1398 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1399 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1400
1401 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001402
Werner Lemberge20df4a2006-09-27 06:29:21 +000014032006-09-26 David Bustin
1404
1405 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1406 correctly. Reported as Savannah bug #17843.
1407
David Turner6f8c6222006-09-26 15:42:44 +000014082006-09-26 David Turner <david@freetype.org>
1409
Werner Lemberg110246c2006-09-26 21:55:44 +00001410 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1411 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1412 horizontal and vertical hinting for the purpose of debugging the
1413 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001414
Werner Lemberg110246c2006-09-26 21:55:44 +00001415 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1416 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001417
Werner Lemberg110246c2006-09-26 21:55:44 +00001418 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1419
1420 * include/freetype/config/ftoption.h, devel/ftoption.h
1421 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1422 we want to compile LCD-optimized rendering code (à la ClearType) or
1423 not. The macro *must* be disabled in default builds of the library
1424 for patent reasons.
1425
1426 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1427 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1428 isn't defined at compile time. This only changes the content of the
1429 rendered glyph to match the one of normal gray-level rendering,
1430 hence clients should not need to be modified.
1431
1432 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001433
Werner Lemberg745ff2c2006-09-19 05:48:02 +000014342006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1435
1436 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1437 LWFN fails and both are available.
1438
David Turnerf3050052006-09-11 12:00:32 +000014392006-09-11 David Turner <david@freetype.org>
1440
Werner Lembergf9644552006-09-12 13:48:10 +00001441 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1442 report their English names through an Apple Roman
1443 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001444
Werner Lembergf9644552006-09-12 13:48:10 +00001445 If the font uses another name entry with language_id == English, it
1446 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001447
Werner Lembergf9644552006-09-12 13:48:10 +00001448 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1449 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001450
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014512006-09-05 Werner Lemberg <wl@gnu.org>
1452
1453 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001454 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001455 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1456 `HAN NOM B.ttf').
1457
1458 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1459
David Turner772e55d2006-09-05 09:45:15 +000014602006-09-05 David Turner <david@freetype.org>
1461
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001462 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001463
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001464 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1465 (TRaster): Remove `count_ex' and `count_ey'.
1466 (gray_find_cell): Remove 2nd and 3rd argument.
1467 (gray_alloc_cell): Merged with `gray_find_cell'.
1468 (gray_record_cell): Simplify.
1469 (gray_set_cell): Rewrite.
1470 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1471 (gray_render_span): Don't use FT_MEM_SET for small values.
1472 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1473 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1474 bitmap scanline.
1475 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001476
David Turneraa557a92006-09-04 16:42:44 +000014772006-09-04 David Turner <david@freetype.org>
1478
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001479 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1480 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001481
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014822006-09-03 Werner Lemberg <wl@gnu.org>
1483
1484 * devel/ftoption.h: Synchronize with
1485 include/freetype/config/ftoption.h.
1486
1487 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1488 variable declaration.
1489 (gray_convert_glyph): Fix compiler warnings.
1490
David Turner6d79f212006-09-01 14:09:35 +000014912006-09-01 David Turner <david@freetype.org>
1492
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001493 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1494 to recognize a few fonts that require the automatic unpatented
1495 loader.
David Turnerbd502952006-09-01 19:05:24 +00001496
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001497 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1498 rasterizer. The speed improvement is between 15% and 25%, depending
1499 on the font data.
1500
1501 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1502 (TCell): Redefine.
1503 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1504 (gray_init_cells): Updated.
1505 (gray_find_cell, gray_alloc_cell): New functions.
1506 (gray_record_cell): Rewritten to use `gray_find_cell' and
1507 `gray_alloc_cell'.
1508 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1509 QSORT_THRESHOLD):
1510 Removed.
1511 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1512 gray_dump_cells): Removed.
1513 (gray_sweep): Rewritten.
1514 (gray_convert_glyph): Rewrite code which used one of the sorting
1515 functions.
1516 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001517
Werner Lembergd898aed2006-08-29 09:50:34 +000015182006-08-29 Dr. Werner Fink <werner@suse.de>
1519
1520 * configure: Make it possible to handle configure options which
1521 have strings containing spaces.
1522
15232006-08-27 David Turner <david@freetype.org>
1524
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001525 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1526 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1527 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1528
1529 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1530 src/truetype/truetype.c, src/truetype/ttdriver.c,
1531 src/truetype/ttgload.c, src/truetype/ttgload.h,
1532 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1533 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1534 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1535
1536 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1537 member `force_autohint'.
1538
1539 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1540
1541 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1542 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001543
Jens Claudiusa787f452006-08-27 11:26:18 +000015442006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1545
1546 Fix miscellaneous compiler warnings.
1547
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001548 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1549 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001550
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001551 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1552 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1553 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001554
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001555 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1556 volatileness of argument to ft_longjmp. Spotted by Werner
1557 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001558
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001559 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1560 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001561
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001562 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1563 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001564
Werner Lembergc4c35b72006-08-27 08:03:46 +000015652006-08-27 Werner Lemberg <wl@gnu.org>
1566
1567 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1568 Reported by Jens.
1569
Jens Claudius088e44e2006-08-22 14:24:30 +000015702006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001571
Jens Claudius088e44e2006-08-22 14:24:30 +00001572 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001573 about addresses of volatile objects passed as function arguments as
1574 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001575
Werner Lembergc4c35b72006-08-27 08:03:46 +00001576 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1577 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001578
1579 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1580 argument `table' a pointer to a volatile object.
1581
1582 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1583 argument `table' a pointer to a volatile object.
1584
Jens Claudius2652bd52006-08-18 17:20:37 +000015852006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1586
1587 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1588 variable `_sfnt' as volatile since it must keep its value across
1589 a call to ft_setjmp.
1590 (gxv_validate): Same for local variables `memory' and `valid'.
1591 (classic_kern_validate): Same for local variables `memory',
1592 `ckern', and `valid'.
1593
1594 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1595 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1596 `jstf', and 'valid'.
1597
1598 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1599 local variable `cmap'.
1600
David Turner9fbfc6a2006-08-16 09:11:31 +000016012006-08-16 David Turner <david@freetype.org>
1602
Werner Lemberg12342992006-08-19 11:18:09 +00001603 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1604 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001605
Werner Lemberg12342992006-08-19 11:18:09 +00001606 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1607 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001608
David Turner33f5f242006-08-16 16:50:55 +00001609
Werner Lemberg12342992006-08-19 11:18:09 +00001610 Improvements to native TrueType hinting. This is a first try,
1611 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1612
1613 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1614 `extra_points2'.
1615
1616 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1617 `orus'.
1618
1619 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1620 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1621 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1622 handle `extra_points2'.
1623
1624 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1625 Remove compiler warning.
1626 (cur_to_arg): Remove macro.
1627 (TT_Hint_Glyph): Updated.
1628 (TT_Process_Simple_Glyph): Handle `orus'.
1629
1630 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1631 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1632 (LOC_Ins_IUP): Renamed to...
1633 (IUP_WorkerRec): This.
1634 Add `orus' member.
1635 (Shift): Renamed to...
1636 (_iup_worker_shift): This.
1637 Updated.
1638 (Interp): Renamed to...
1639 (_iup_worker_interpolate): This.
1640 Updated to handle `orus'.
1641 (Ins_IUP): Updated.
1642
1643 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1644 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001645
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000016462006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1647
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001648 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001649 build ftvalid in ft2demos. This has been inadvertedly changed
1650 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001651
16522006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1653
Werner Lemberg12342992006-08-19 11:18:09 +00001654 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1655 Jens:
1656 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001657
Werner Lemberg12342992006-08-19 11:18:09 +00001658 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1659 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001660
1661 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1662
Jens Claudius9950adc2006-08-13 12:14:36 +000016632006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1664
Werner Lemberg12342992006-08-19 11:18:09 +00001665 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1666 T1_TOKEN_TYPE_KEY.
1667 (T1_FieldRec): Add `dict'.
1668 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1669 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1670 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001671
Werner Lemberg12342992006-08-19 11:18:09 +00001672 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1673 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001674
1675 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1676
1677 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001678 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1679 not T1_TOKEN_TYPE_ANY.
1680 (ps_parser_load_field): Make sure a token that should be a string or
1681 name is really a string or name.
1682 Avoid memory leak if a keyword has been already encountered and its
1683 value is overwritten.
1684 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1685 T1_FIELD_XXX.
1686 (parse_dict): Ignore keywords that occur in the wrong dictionary
1687 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001688
Werner Lemberg12342992006-08-19 11:18:09 +00001689 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1690 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001691
Werner Lemberg12342992006-08-19 11:18:09 +00001692 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1693 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001694
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016952006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1696
1697 Move creation of field `buildchar' of T1_DecoderRec out of
1698 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1699 of it.
1700
1701 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1702 and `T1_Compute_Max_Advance'.
1703
1704 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1705 Remove field `face', add `len_buildchar'.
1706
1707 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1708 field `buildchar'.
1709
1710 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1711 finisher for T1_Decoder.
1712 (cid_slot_load_glyph): Do not ignore failure when initializing the
1713 T1_Decoder.
1714
1715 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1716 Updated.
1717 (t1_decoder_init): Remove initialization of fields `buildchar' and
1718 `len_buildchar'.
1719 (t1_decoder_done): Remove deallocation of field `buildchar'.
1720
1721 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1722 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1723 T1_Decoder.
1724 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1725 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1726 case of error.
1727
1728 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1729 `buildchar' of T1_FaceRec.
1730
1731 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1732 `buildchar' of T1_FaceRec.
1733
Werner Lemberg1a380e02006-07-14 18:28:08 +000017342006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1735
1736 * freetype2/include/freetype/internal/psaux.h: New macros
1737 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1738 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1739 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1740 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1741 (T1_DecoderRec): New fields `buildchar' and `face'.
1742 (IS_PS_TOKEN): New macro.
1743
1744 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1745 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1746
1747 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1748 `default_design_vector' and `num_default_design_vector'.
1749
1750 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1751 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1752 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1753
1754 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1755 `token' argument to be NULL if we want only to count the number of
1756 tokens.
1757 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1758 want to skip the array.
1759 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1760 want to skip the array.
1761
1762 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1763 support for (partially commented out) othersubrs 19-25, 27, and 28.
1764 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1765 (t1_decoder_done): Release new field `buildchar'.
1766
1767 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1768 functions.
1769 (t1_keywords): Register them.
1770 (t1_allocate_blend): Updated.
1771 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1772 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1773 (parse_dict): Remove `keyword_flags' argument.
1774 Use new macro IS_PS_TOKEN.
1775 Changed function so that later PostScript definitions override
1776 earlier ones.
1777 (t1_init_loader): Initialize new field `keywords_encountered'.
1778 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1779 `len_buildchar'.
1780 Remove `keywords_flags'.
1781
1782 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1783 `keywords_encountered'.
1784 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1785
1786 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1787 New entries for parsing /NDV, /CDV, and /DesignVector.
1788
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017892006-07-07 Werner Lemberg <wl@gnu.org>
1790
1791 Add many checks to protect against malformed PCF files.
1792
1793 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1794 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1795
1796 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1797 data and check that tables don't overlap (using a simple
1798 bubblesort).
1799 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1800 New macros which give the size of data structures in the data
1801 stream.
1802 (pcf_get_properties): Use rough estimates to get array size limits.
1803 Assign `face->nprops' and `face->properties' earlier so that a call
1804 to PCF_Face_Done can do the clean-up in case of error.
1805 Protect against invalid string offsets.
1806 (pcf_get_metrics): Clean up code.
1807 Adjust tracing message levels.
1808 Use rough estimate to get array size limit.
1809 (pcf_get_bitmaps): Clean up code.
1810 Adjust tracing message levels.
1811 Use rough estimates to get offset limits.
1812 (pcf_get_encodings): Adjust tracing message level.
1813 (pcf_get_accel): Clean up code.
1814
Werner Lemberg8eb05252006-06-27 06:20:01 +000018152006-06-26 Werner Lemberg <wl@gnu.org>
1816
1817 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1818 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1819
Werner Lemberg24703f82006-06-26 19:12:51 +000018202006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1821
1822 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1823 (t1_decoder_parse_charstrings): Operator with
1824 opcode 15 pops its two arguments.
1825 Handle the case where the pops of an othersubr may be part of a
1826 subroutine.
1827 Handle unknown othersubrs gracefully: count their operands and let
1828 the following pop operators push the operands as the results onto
1829 the Type1 stack.
1830 Improve handling of setcurrentpoint opcode.
1831
Werner Lembergc011f4c2006-06-26 09:40:00 +000018322006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1833
1834 The Type 1 parser now skips over top-level procedures as required
1835 for a `Simplified Parser'. This makes the parser more robust as it
1836 doesn't poke around in PostScript code. Additionally, it makes the
1837 FontDirectory hackery in src/type1/t1load.c unnecessary.
1838
1839 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1840 (skip_literal_string): Add FT_Error as return value.
1841 Handle escapes better.
1842 (skip_string): Add FT_Error as return value.
1843 Don't set `parser->error' but return error code directly.
1844 (skip_procedure): New function.
1845 (ps_parser_skip_PS_token): Handle procedures.
1846 Update code.
1847 (ps_parser_to_token): Update code.
1848 (ps_parser_load_field_table): Handle bbox entries also.
1849
1850 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1851 Add commented-out code for synthetic fonts.
1852
Werner Lemberga2da05c2006-06-25 06:27:27 +000018532006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1854
1855 Fix two hinting bugs as reported in
1856 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1857
1858 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1859 `first_point' member.
1860
1861 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1862 `first_point'.
1863 (TT_Process_Composite_Glyph): Always untouch points.
1864
1865 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1866 `first_point' and `last_point' in case of composite glyphs.
1867 (Ins_IUP): Fix computation of `end_point'.
1868
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018692006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1870
Werner Lembergef3d2c22006-06-25 06:07:14 +00001871 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1872 Mac. The original patch was written by David Sachitano and Lawrence
1873 Coopet, and modified by Sean McBride for MPW compatibility. Only
1874 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001875
Werner Lembergef3d2c22006-06-25 06:07:14 +00001876 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1877 Mac OS X platforms.
1878 (OS_INLINE): Undefine before definition.
1879 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1880 FontAssociation table in FOND resource.
1881 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1882 and fontSize at each entry of FontAssociation table in FOND
1883 resource.
1884 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1885 ffStylOff of FamilyRecord header of FOND resource, the header,
1886 fontSize, fontID at each entry of FontAssociation table, and
1887 StyleMapping table.
1888 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001889
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018902006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1891
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001892 Public API of TrueTypeGX, OpenType, and classic kern table validator
1893 should return `FT_Err_Unimplemented_Feature' if validation service
1894 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001895 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001896 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1897
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001898 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1899 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1900 unavailable.
1901 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1902 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001903
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001904 * src/base/ftotval.c (FT_OpenType_Validate): Return
1905 FT_Err_Unimplemented_Feature if OpenType validation service is
1906 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001907
Werner Lembergb10e45a2006-06-08 07:32:56 +000019082006-06-08 Werner Lemberg <wl@gnu.org>
1909
1910 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1911 errors.
1912
David Turner5f1f7502006-06-07 05:11:50 +000019132006-06-07 David Turner <david@freetype.org>
1914
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001915 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1916 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1917 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001918
David Turner457b4a82006-06-06 08:14:14 +000019192006-06-06 David Turner <david@freetype.org>
1920
Werner Lemberg4836f952006-06-06 12:54:08 +00001921 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001922
Werner Lemberg4836f952006-06-06 12:54:08 +00001923 We change `ps_unicodes_init' so that it also takes a
1924 `free_glyph_name' callback to release the glyph names returned by
1925 `get_glyph_name'
1926
1927 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1928 Renamed to ...
1929 (PS_GetGlyphNameFunc): This.
1930 (PS_FreeGlyphNameFunc): New typedef.
1931 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1932
1933 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1934 argument.
1935 (cff_sid_free_glyph_name): New function.
1936 (cff_cmap_unicode_init): Updated.
1937
1938 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1939
1940 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1941 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001942
1943
David Turner09717352006-06-04 14:33:08 +000019442006-06-04 David Turner <david@freetype.org>
1945
Werner Lembergd724f202006-06-04 15:17:41 +00001946 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1947 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001948 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001949
Werner Lembergd724f202006-06-04 15:17:41 +00001950 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1951 of `face->num_glyphs' which missed the last glyph, due to
1952 the offset-by-1 computation, since the PFR format doesn't
1953 guarantee that glyph index 0 corresponds to the `missing
1954 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001955
Werner Lemberg33779662006-05-26 06:30:05 +000019562006-05-25 Werner Lemberg <wl@gnu.org>
1957
1958 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1959 `-no-undefined'. Reported by Christian Biesinger.
1960
Werner Lemberg24773d62006-05-20 08:53:13 +000019612006-05-19 Brian Weed <bw@imaginengine.com>
1962
1963 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1964 have debug information, and debug libraries use `C7 compatible'
1965 debug info.
1966
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019672006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1968
Werner Lemberga6523a62006-05-20 08:47:01 +00001969 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001970 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001971
Werner Lemberga6523a62006-05-20 08:47:01 +00001972 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1973 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001974
1975 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001976 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001977
19782006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1979
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001980 * build/unix/configure.raw: Add a fallback to disable Carbon
1981 dependency, if configured with no options on Mac OS X.
1982
19832006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1984
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001985 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001986 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001987 the second part of Savannah bug #16590.
1988
Werner Lemberg545c4e52006-05-17 22:55:04 +000019892006-05-18 Werner Lemberg <wl@gnu.org>
1990
1991 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1992 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1993
David Turnerdc3ff312006-05-17 12:59:35 +000019942006-05-17 David Turner <david@freetype.org>
1995
Werner Lemberg545c4e52006-05-17 22:55:04 +00001996 This is a major patch used to drastically improve the performance of
1997 loading glyphs. This both speeds up loading the glyph vectors
1998 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001999
Werner Lemberg545c4e52006-05-17 22:55:04 +00002000 We now use inline assembler code with GCC to implement `FT_MulFix',
2001 which is probably the most important function related to the
2002 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002003
Werner Lemberg545c4e52006-05-17 22:55:04 +00002004 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002005
2006
Werner Lemberg545c4e52006-05-17 22:55:04 +00002007 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2008 `cursor' and `limit'.
2009
2010 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2011 New functions.
2012 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2013 [TEST]: Remove.
2014
2015 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2016 code.
2017
2018 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2019 `FT_ZERO'
2020 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2021 (af_glyph_hints_reload: Rewrite recognition of weak points.
2022
2023 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2024 constant values out of the loops.
2025
2026 * src/autofit/aftypes.h: Updated.
2027
2028 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2029
2030 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2031 product to get orientation.
2032
2033 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2034 (FT_Stream_OpenGzip): Use it to handle small files directly in
2035 memory.
2036
2037 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2038 Improve performance.
2039
2040 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2041 `limit'.
2042
2043 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2044 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2045 exceedingly large values of number of contours. Speed up by
2046 reducing the number of loops.
2047
2048 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2049
2050
2051 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2052 used to detect rogue clients from 4 to 16. This is to prevent some
2053 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2054 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002055
Werner Lembergde2d90a2006-05-17 08:54:30 +000020562007-05-17 Werner Lemberg <wl@gnu.org>
2057
2058 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002059 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002060
20612006-05-16 Werner Lemberg <wl@gnu.org>
2062
2063 * docs/PROBLEMS: Updated icl issues.
2064
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002065----------------------------------------------------------------------------
2066
Werner Lemberg42b63b22007-01-21 21:01:33 +00002067Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002068David Turner, Robert Wilhelm, and Werner Lemberg.
2069
2070This file is part of the FreeType project, and may only be used, modified,
2071and distributed under the terms of the FreeType project license,
2072LICENSE.TXT. By continuing to use, modify, or distribute this file you
2073indicate that you have read the license and understand and accept it
2074fully.
2075
2076
2077Local Variables:
2078version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002079coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002080End: