blob: c75f2b64c23ef28acd4ca401d12338da53aeefe8 [file] [log] [blame]
David Turnerf0cd69c2007-05-28 15:42:09 +000012007-05-28 David Turner <david@freetype.org>
2
3 * src/autofit/afglobal.c: change default hinting script to
4 CJK, since it works well with a larger array of scripts. thanks to
5 "Rahul Bhalerao" <b.rahul.pm@gmail.com> for pointing this out !
6
Werner Lemberg1c8980e2007-05-25 07:11:12 +000072007-05-25 Werner Lemberg <wl@gnu.org>
8
9 * docs/CHANGES: Updated.
10
Werner Lemberg6ff2ff52007-05-24 19:39:14 +0000112007-05-24 Werner Lemberg <wl@gnu.org>
12
13 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
14 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
15
162007-05-24 Graham Asher <graham.asher@btinternet.com>
17
18 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
19 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
20
David Turnerf0cd69c2007-05-28 15:42:09 +000021>>>>>>> 1.1589
David Turner0d0365e2007-05-22 09:53:44 +0000222007-05-22 David Turner <david@freetype.org>
23
Werner Lemberg1c8980e2007-05-25 07:11:12 +000024 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
25 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +000026
Werner Lemberg1c8980e2007-05-25 07:11:12 +000027
28 Avoid heap blowup with very large .Z font files. This fixes
29 Savannah bug #19910.
30
31 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
32 `in_limit', `pad', `pad_bits', and `in_buff' members.
33 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
34 `buf_total' members.
35
36 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
37 only one argument.
38 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +000039
402007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +000041
42 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
43 (ps_dimension_set_mask_bits): Remove `const'.
44
David Turner0d0365e2007-05-22 09:53:44 +0000452007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000046
47 * src/sfnt/ttmtx.c (tt_face_get_metrics)
48 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
49
Werner Lembergb826fa72007-05-19 07:18:48 +0000502007-05-19 Derek Clegg <dclegg@apple.com>
51
52 Savannah patch #5929.
53
54 * include/freetype/tttables.h, src/base/ftobjcs.c
55 (FT_Get_CMap_Format): New function.
56
57 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
58 `format' member.
59 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
60 cmap_info->format.
61
Werner Lemberg6f99c882007-05-19 07:01:49 +0000622007-05-19 Werner Lemberg <wl@gnu.org>
63
64 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
65 before handling subglyphs so that it can be reinitialized each time.
66 This fixes Savannah bug #19859.
67
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000682007-05-16 Werner Lemberg <wl@gnu.org>
69
70 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
71 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
72 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
73 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
74 tt_face_get_metrics): Fix type-punning issues.
75
David Turner0a24bd22007-05-15 10:54:10 +0000762007-05-15 David Turner <david@freetype.org>
77
78 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000079 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
80 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000081 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000082 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +000083
Werner Lemberg607dec72007-05-15 06:49:37 +0000842007-05-15 Graham Asher <graham.asher@btinternet.com>
85
86 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
87 variable.
88 * src/autofit/afloader.c (af_loader_load_g): Ditto.
89
90 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
91 (open_face_from_buffer): Initialize `stream'.
92 (FT_Request_Metrics): Remove unused variable.
93 Remove redundant `break' statements.
94 (FT_Get_Track_Kerning): Remove unused variable.
95
96 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
97 afm_parse_kern_data): Remove redundant
98 `break' statements.
99 (afm_parser_parse): Ditto.
100 Don't use uninitialized variables.
101
102 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
103 Use `|' operator instead of `^' to set it.
104 Update all users.
105
106 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
107 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
108
109 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
110 comparison.
111 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
112 (TT_Load_Glyph): Remove unused variable.
113
Werner Lemberg8d463a52007-05-13 16:01:55 +00001142007-05-13 Derek Clegg <dclegg@apple.com>
115
116 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
117 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
118
David Turner711cf842007-05-11 14:36:24 +00001192007-05-11 David Turner <david@freetype.org>
120
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000121 * src/cache/ftbasic.c, include/freetype/ftcache.h
122 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
123 functions that allow us to look up glyphs using an FTC_Scaler object
124 to specify the size, making it possible to use fractional pixel
125 sizes.
126
127 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
128 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000129
Werner Lemberg94be20e2007-05-09 20:02:55 +00001302007-05-09 Graham Asher <graham.asher@btinternet.com>
131
132 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
133 (af_latin_metrics_scale_dim): Fix compiler warnings.
134
Werner Lemberg41271032007-05-06 04:51:48 +00001352007-05-06 Werner Lemberg <wl@gnu.org>
136
137 * builds/win32/visualce/freetype.sln: Removed, as requested by
138 Vincent.
139
Werner Lembergdf49e692007-05-04 06:30:05 +00001402007-05-04 Vincent RICHOMME <richom.v@free.fr>
141
142 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
143 PC targets.
144
145 * docs/CHANGES: Document them.
146
1472007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000148
149 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
150 mmap (which might happen on some RTOS). From Savannah patch #5909.
151
Werner Lemberg106eaf12007-05-03 07:07:47 +00001522007-05-03 Werner Lemberg <wl@gnu.org>
153
154 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
155 * include/freetype/freetype.h (FT_Set_Char_Size): Update
156 documentation.
157
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001582007-04-28 Victor Stinner <victor.stinner@inl.fr>
159
160 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
161 `cmap'.
162
Werner Lembergcc712a22007-04-27 17:16:50 +00001632007-04-27 Werner Lemberg <wl@gnu.org>
164
165 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
166 number of points in contours. Problem reported by Victor Stinner
167 <victor.stinner@haypocalc.com>.
168 (TT_Process_Simple_Glyph): Synchronize variable types.
169
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001702007-04-26 Werner Lemberg <wl@gnu.org>
171
172 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
173 zero in case of error. This fixes Savannah bug #19689.
174
David Turnera8b45e62007-05-11 14:10:30 +00001752007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
176
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000177 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
178 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000179
Werner Lembergfcc1f472007-04-10 11:51:50 +00001802007-04-10 Martin Horak <horakm@centrum.cz>
181
182 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
183 Ignore `hhea' table. This fixes Savannah bug #19261.
184
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001852007-04-09 Werner Lemberg <wl@gnu.org>
186
187 * Version 2.3.4 released.
188 =========================
189
190
191 Tag sources with `VER-2-3-4'.
192
193 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
194 version number to 2.3.4.
195
196 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
197 builds/win32/visualc/freetype.dsp,
198 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
199
200 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
201
202 * builds/unix/configure.raw (version_info): Set to 9:15:3.
203
Werner Lembergf4a52a62007-04-09 08:40:11 +00002042007-04-09 Martin Horak <horakm@centrum.cz>
205
206 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
207 memory stream to avoid a crash with the incremental memory
208 interface (Savannah bug #19260).
209
David Turner1dcb4442007-04-06 08:19:04 +00002102007-04-06 David Turner <david@freetype.org>
211
Werner Lembergc81cf612007-04-06 09:28:23 +0000212 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
213 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000214
Werner Lemberg9f83e052007-04-05 02:28:23 +00002152007-04-04 Werner Lemberg <wl@gnu.org>
216
217 * Version 2.3.3 released.
218 =========================
219
220
221 Tag sources with `VER-2-3-3'.
222
223 * docs/CHANGES: Mention CVE-2007-1351.
224
David Turner7338ec22007-04-03 14:30:34 +00002252007-04-03 David Turner <david@freetype.org>
226
227 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000228 if one of the resolution values is 0, treat it as if it were the
229 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000230
David Turnere6472c12007-04-02 13:13:54 +00002312007-04-02 David Turner <david@freetype.org>
232
Werner Lemberg94f12272007-04-03 07:19:53 +0000233 Add special code to detect `extra-light' fonts and do not snap their
234 stem widths too much to avoid bizarre hinting effects.
235
236 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
237 `extra_light' members.
238
239 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
240 them.
241 (af_latin_metrics_scale_dim): Set `extra_light'.
242 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000243
David Turner3f539692007-03-28 14:53:40 +00002442007-03-28 David Turner <david@freetype.org>
245
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000246 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000247 padding.
248
Werner Lemberga08b2172007-03-28 07:17:17 +00002492007-03-28 Werner Lemberg <wl@gnu.org>
250
251 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
252 gracefully.
253 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000254 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000255 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
256 number of code points in Unicode.
257
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000258 * builds/win32/visualc/index.html,
259 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000260 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000261 s/232/233/.
262
263 * docs/CHANGES: Mention ftdiff.
264
David Turner3b242d32007-03-26 12:03:04 +00002652007-03-26 David Turner <david@freetype.org>
266
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000267 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
268 corresponding code.
269 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000270
Werner Lemberga08b2172007-03-28 07:17:17 +0000271 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000272 computations in order to ignore single-point contours. These are
273 never rasterized and correspond in certain fonts to mark-attach
274 points that are very far from the glyph's real outline, ruining the
275 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000276
Werner Lemberga08b2172007-03-28 07:17:17 +0000277 * src/autofit/afloader.c (af_loader_load_g): In the case of
278 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
279 Otherwise code that uses them will most certainly ruin the fixed
280 advance property.
David Turner23553d62007-03-26 13:37:17 +0000281
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000282 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
283 documentation and bump version number to 2.3.3.
284
285 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
286
287 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000288
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002892007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
290
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000291 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
292 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000293 * builds/vms/ftconfig.h: Ditto.
294 * include/freetype/config/ftconfig.h: Ditto.
295
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002962007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
297
Werner Lemberg14ffe092007-03-22 06:12:43 +0000298 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
299 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000300 proposed by Sean McBride:
301 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
302
3032007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
304
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000305 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
306 setjmp, proposed by Sean McBride:
307 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
308
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003092007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
310
Werner Lembergc9f6c662007-03-21 13:30:14 +0000311 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
312 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
313 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000314
David Turner74c34eb2007-03-18 07:19:31 +00003152007-03-18 David Turner <david@freetype.org>
316
Werner Lembergc9f6c662007-03-21 13:30:14 +0000317 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
318 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000319
Werner Lembergc9f6c662007-03-21 13:30:14 +0000320 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000321
David Turner89020d92007-03-17 17:48:57 +00003222007-03-17 David Turner <david@freetype.org>
323
Werner Lembergc9f6c662007-03-21 13:30:14 +0000324 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
325 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000326
Werner Lemberg25d592a2007-03-09 07:59:35 +00003272007-03-09 Werner Lemberg <wl@gnu.org>
328
329 * Version 2.3.2 released.
330 =========================
331
332
333 Tag sources with `VER-2-3-2'.
334
335 * builds/win32/visualc/index.html,
336 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000337 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000338 s/231/232/.
339
David Turner3a51afa2007-03-08 10:50:38 +00003402007-03-08 David Turner <david@freetype.org>
341
Werner Lemberg25d592a2007-03-09 07:59:35 +0000342 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000343
Werner Lemberg25d592a2007-03-09 07:59:35 +0000344 * builds/unix/configure.raw (version_info): Set to 9:13:3.
345
346 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
347
348 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000349
Werner Lemberg1e259de2007-03-08 15:39:21 +0000350 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
351 function to work properly, over-writing user-provided buffers in
352 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000353
David Turner121cad52007-03-08 16:43:50 +0000354
Werner Lemberg3d92f082007-03-06 11:59:24 +00003552007-03-05 Werner Lemberg <wl@gnu.org>
356
357 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
358 macro for `strstr'.
359
360 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
361 `trick_names', as suggested by Ivan Nincic.
362
David Turner085bc6e2007-03-05 17:40:03 +00003632007-03-05 David Turner <david@freetype.org>
364
Werner Lembergd112cf02007-03-06 12:06:56 +0000365 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
366 case FT_Init_FreeType fails for some reason. Problem reported by
367 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000368
Werner Lembergd112cf02007-03-06 12:06:56 +0000369 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
370 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
371 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
372 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000373
Werner Lembergd112cf02007-03-06 12:06:56 +0000374 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
375 signed values, not unsigned ones. Problem reported by Johannes
376 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000377
David Turner601aefe2007-02-21 16:47:49 +00003782007-02-21 David Turner <david@freetype.org>
379
Werner Lembergde5e6862007-02-25 21:06:43 +0000380 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
381 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000382
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00003832007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
384
385 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
386 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
387 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
388
Werner Lemberga0915172007-02-16 08:12:50 +00003892007-02-16 Werner Lemberg <wl@gnu.org>
390
391 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
392 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
393
David Turner2c4500e2007-02-14 15:08:47 +00003942007-02-14 David Turner <david@freetype.org>
395
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000396 It seems that the following changes fix most of the known
397 interpreter problems with my fonts, but more testing is needed,
398 though.
399
400 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
401 (TT_MulFix14): Rewrite.
402 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
403 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000404
Werner Lembergc6a14082007-02-12 22:08:15 +00004052007-02-12 Werner Lemberg <wl@gnu.org>
406
407 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
408 warnings.
409
410 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
411 (bdf_interpret_style): Ditto.
412
David Turnerc0f9c4a2007-02-12 14:55:03 +00004132007-02-12 David Turner <david@freetype.org>
414
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000415 Simplify projection and dual-projection code interface.
416
Werner Lemberg406d25f2007-02-12 22:01:18 +0000417 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
418 FT_Vector' as argument type.
419 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
420 Updated.
421 (CUR_fast_project, CUR_fast_dualproj): New macros.
422 (Project, Dual_Project, Project_x, Project_y): Updated.
423 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
424 macros.
425
426
427 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
428 adjustments for the non-light auto-hinted modes. Gets rid of
429 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000430
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000431 * src/autofit/aflatin.c (af_latin_hints_link_segments,
432 af_latin_hints_compute_edges): Slight optimization of the segment
433 linker and better handling of serif segments to get rid of broken
434 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000435
David Turnerc0f9c4a2007-02-12 14:55:03 +0000436
Werner Lemberg442bfb82007-02-12 21:44:10 +0000437 Introduce new string functions and the corresponding macros to get
438 rid of various uses of strcpy and other `evil' functions, as well as
439 to simplify a few things.
440
441 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
442 ft_mem_strcpyn): New declarations.
443 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
444 macros.
445 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
446 functions.
447
448 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
449 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
450 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
451 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
452 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
453 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
454 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
455 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000456
Werner Lemberg406d25f2007-02-12 22:01:18 +0000457 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
458
Werner Lemberg582067d2007-02-11 15:03:05 +00004592007-02-11 Werner Lemberg <wl@gnu.org>
460
461 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
462 non-spacing glyphs.
463
Werner Lemberg8f474532007-02-07 08:31:01 +00004642007-02-07 Tom Parker <palfrey@tevp.net>
465
466 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
467 pointer.
468
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004692007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
470
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000471 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
472 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000473 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000474 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
475 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
476 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
477 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000478
479 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
480 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000481 * builds/mac/ftmac.c: Ditto.
482
4832007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
484
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000485 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000486 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000487 #include <ftmac.c>.
488
4892007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
490
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000491 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
492 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
493 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
494 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
495 FT_GetFilePath_From_Mac_ATS_Name.
496 * builds/mac/ftmac.c: Ditto.
497
4982007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
499
Werner Lembergdcbb7082007-02-08 08:54:09 +0000500 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000501 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
502 for passing to FT_New_Face_From_FSSpec.
503
5042007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
505
Werner Lembergdcbb7082007-02-08 08:54:09 +0000506 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000507 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000508
509 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
510 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000511 * builds/mac/ftmac.c (OS_INLINE): Ditto.
512
Werner Lemberg313d7772007-02-01 08:10:45 +00005132007-02-01 Werner Lemberg <wl@gnu.org>
514
515 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
516 Explain why applications shouldn't use it. Found by Alexei.
517
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005182007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000519
520 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
521 message.
522
523 * src/gxvalid/gxvmort1.c
524 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
525 message.
526
Werner Lemberg53935932007-01-31 08:53:02 +00005272007-01-31 Werner Lemberg <wl@gnu.org>
528
529
530 * Version 2.3.1 released.
531 =========================
532
533
534 Tag sources with `VER-2-3-1-FINAL'.
535
536 * builds/win32/visualc/freetype.dsp,
537 builds/win32/visualc/freetype.vcproj: s/230/231/.
538 * builds/win32/visualc/index.html: s/221/231/.
539
540 * vms_make.com: Add `ftgasp'.
541
David Turnera7ee6082007-01-30 10:33:53 +00005422007-01-30 David Turner <david@freetype.org>
543
Werner Lemberg53935932007-01-31 08:53:02 +0000544 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000545
Werner Lemberg53935932007-01-31 08:53:02 +0000546 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000547
Werner Lemberg25d592a2007-03-09 07:59:35 +0000548 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000549 s/2.3.0/2.3.1/.
550
551 * builds/unix/configure.raw (version_info): Set to 9:12:3.
552
553
554 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
555 (af_loader_load_g): Disable the warper (i.e., the light hinting
556 improvements) to make a 2.3.1 bugfix release before introducing a
557 new feature. This should give us more time to tune and improve the
558 warper for the next release.
559
560 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000561
David Turnerd91eebd2007-01-26 15:05:41 +00005622007-01-25 David Turner <david@freetype.org>
563
Werner Lembergbf241762007-01-26 16:08:49 +0000564 For light auto-hinting, improve glyph advance widths and resurrect
565 normal/full hinting to its normal quality.
566
567 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
568 and `xmax_delta'.
569 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
570 and `xmax_delta'.
571
572 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
573 preprocessor conditional with if-clause, handling both light and
574 normal mode.
575
576 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
577 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000578
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005792007-01-25 Werner Lemberg <wl@gnu.org>
580
581 * docs/release: Updated -- Savannah uses a new uploading scheme.
582
David Turnera42567b2007-01-25 12:23:37 +00005832007-01-25 David Turner <david@freetype.org>
584
Werner Lembergd7855662007-01-25 13:53:56 +0000585 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000586
Werner Lembergd7855662007-01-25 13:53:56 +0000587 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
588 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
589 functions.
David Turnera42567b2007-01-25 12:23:37 +0000590
Werner Lembergd7855662007-01-25 13:53:56 +0000591 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000592
Werner Lembergb1be9e82007-01-25 11:50:00 +00005932007-01-25 Werner Lemberg <wl@gnu.org>
594
595 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000596 correctly in a sanity check. Since this function is only used to
597 load local and global functions, any charstring that called the last
598 local/global function would fail otherwise. This fixes Savannah bug
599 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000600
601 * docs/CHANGES: Document it.
602
David Turnerb6de8d12007-01-23 15:51:50 +00006032007-01-23 David Turner <david@freetype.org>
604
Werner Lembergb1be9e82007-01-25 11:50:00 +0000605 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
606 prevented compilation when disabling both the unpatented and the
607 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000608
Werner Lembergb1be9e82007-01-25 11:50:00 +0000609
610 Fix and enable the warper to improve `light' hinting mode. This is
611 not necessarily a final version, but it seems to work well.
612
613 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
614 Disable code.
615 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
616 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
617
618 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
619 (af_warper_compute_line_best): Fix array size of `scores'.
620 (af_warper_compute): Better handling of border cases.
621 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
622 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000623
Werner Lemberg011d1112007-01-21 09:36:00 +00006242007-01-21 Werner Lemberg <wl@gnu.org>
625
Werner Lemberg42b63b22007-01-21 21:01:33 +0000626 * ChangeLog: Split off older entries into...
627 * ChangeLog.22: This new file.
628
6292007-01-21 Werner Lemberg <wl@gnu.org>
630
Werner Lemberg555258f2007-01-21 09:46:37 +0000631 * docs/CHANGES: Document SHZ fix.
632
6332007-01-21 George Williams <gww@silcom.com>
634
635 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
636 points.
637
6382007-01-21 Werner Lemberg <wl@gnu.org>
639
Werner Lemberg011d1112007-01-21 09:36:00 +0000640 * src/sfnt/ttmtx.c (tt_face_get_metrics)
641 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
642
Werner Lemberg87a5a432007-01-17 12:44:39 +00006432007-01-17 Werner Lemberg <wl@gnu.org>
644
Werner Lembergb8003292007-01-17 12:56:25 +0000645
646 * Version 2.3.0 released.
647 =========================
648
649
650 Tag sources with `VER-2-3-0-FINAL'.
651
6522007-01-17 Werner Lemberg <wl@gnu.org>
653
Werner Lemberg87a5a432007-01-17 12:44:39 +0000654 * docs/release: Updated.
655
David Turner22122722007-01-16 20:06:44 +00006562007-01-16 David Turner <david@freetype.org>
657
Werner Lemberg87a5a432007-01-17 12:44:39 +0000658 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
659 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
660 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
661 warnings.
David Turner22122722007-01-16 20:06:44 +0000662
Werner Lemberg267e1d72007-01-15 07:48:09 +00006632007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
664
665 * builds/amiga/makefile, builds/amiga/makefile.os4,
666 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
667
668 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
669
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006702007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
671
672 Fix various compiler warnings.
673
674 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
675 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
676 s/index/strike_index/.
677 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
678
679 * src/gxvalid/gxvmorx5.c
680 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
681
682 * src/truetype/ttinterp.c (Compute_Point_Displacement),
683 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
684 uninitialized variables.
685
Werner Lemberg6164a9d2007-01-13 23:01:36 +00006862007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
687
688 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
689
Werner Lemberg281c1482007-01-13 22:50:51 +00006902007-01-13 Werner Lemberg <wl@gnu.org>
691
692 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
693 versions up to 0x3FF without complaining.
694
Werner Lembergac250b22007-01-13 14:01:36 +00006952007-01-13 Derek Clegg <dclegg@apple.com>
696
697 Add FT_Get_PS_Font_Info interface to CFF driver.
698
699 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
700 (CFF_FontRec): Add `font_info' field.
701
702 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
703 (cff_font_done): Free font->font_info if necessary.
704
705 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
706 (cff_service_ps_info): Register cff_ps_get_font_info.
707
Werner Lemberg23df31a2007-01-13 08:45:00 +00007082007-01-13 Werner Lemberg <wl@gnu.org>
709
710 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
711 with C++ compiler.
712
713 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
714 af_glyph_hints_dump_edges): Ditto.
715
716 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
717 `modules.cfg').
718
719 * src/sfnt/ttsbit0.h: Remove.
720
721 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
722
Werner Lemberg27cf9de2007-01-13 07:34:23 +00007232007-01-12 David Turner <david@freetype.org>
724
725 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
726 bug in the bitmap emboldener if the pitch of the source bitmap is
727 much larger than its width.
728
729 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
730 compilation warning.
731
Werner Lemberg6d96d312007-01-12 10:30:19 +00007322007-01-12 Werner Lemberg <wl@gnu.org>
733
734 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
735 `automake' CVS module from sources.redhat.com.
736
Werner Lemberg17432b52007-01-12 09:28:44 +00007372007-01-11 Werner Lemberg <wl@gnu.org>
738
739 * src/type1/t1load.c (is_space): Removed.
740 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
741 (parse_charstrings): Use IS_PS_TOKEN.
742
743
744 * autogen.sh: Avoid bash specific syntax.
745
David Turner038ace22007-01-11 15:00:59 +00007462007-01-11 David Turner <david@freetype.org>
747
Werner Lemberg17432b52007-01-12 09:28:44 +0000748 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000749
Werner Lemberg17432b52007-01-12 09:28:44 +0000750 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000751
Werner Lemberg17432b52007-01-12 09:28:44 +0000752 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
753 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000754 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000755
Werner Lemberg17432b52007-01-12 09:28:44 +0000756 * autogen.sh: Small fix to get it working on Mac OS X properly:
757 The issue is that GNU libtool is called `glibtool' on this platform,
758 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000759
David Turner2628ea92007-01-10 13:15:56 +00007602007-01-10 David Turner <david@freetype.org>
761
Werner Lemberg17432b52007-01-12 09:28:44 +0000762 * all-sources: Tag all sources with VER-2-3-0-RC1 and
763 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000764
Werner Lemberg17432b52007-01-12 09:28:44 +0000765 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
766 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
767 version number to 2.3.0.
768
769 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
770 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000771
772 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000773 include/freetype/ftlcdfil.h: Update reference documentation with
774 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000775
Werner Lemberg17432b52007-01-12 09:28:44 +0000776 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
777 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000778
Werner Lembergbf02d392007-01-10 07:07:37 +00007792007-01-10 Derek Clegg <dclegg@apple.com>
780
781 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
782 values.
783
David Turnerf48b60e2007-01-08 15:15:32 +00007842007-01-08 David Turner <david@freetype.org>
785
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000786 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000787
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000788 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
789 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000790 corresponding to a given character pixel size.
791
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000792 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
793 `gasp' table, in order to avoid potential problems with later
794 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000795
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000796 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
797 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000798
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000799 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
800 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
801 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
802 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000803
Werner Lemberge6b6f372007-01-07 00:06:47 +00008042007-01-07 Werner Lemberg <wl@gnu.org>
805
Werner Lembergb8004d22007-01-07 09:13:38 +0000806 * src/cid/cidparse.c (cid_parser_new): Improve error message for
807 Type 11 fonts.
808 Scan for `/sfnts' token.
809
8102007-01-07 Werner Lemberg <wl@gnu.org>
811
812 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000813
Werner Lembergbe5f7972007-01-06 07:51:48 +00008142007-01-06 Werner Lemberg <wl@gnu.org>
815
816 * src/cff/cffload.c (cff_index_init): Remove unused variable.
817 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
818
David Turnera8cf42b2007-01-04 16:46:46 +00008192007-01-04 David Turner <david@freetype.org>
820
Werner Lembergf6294392007-01-06 07:47:45 +0000821 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
822 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000823
Werner Lembergf6294392007-01-06 07:47:45 +0000824
825 Do not allocate interpreter-specific tables in memory if we are not
826 going to load glyphs with the bytecode interpreter anyway.
827
828 * src/truetype/ttgload.c (tt_loader_init): Load execution context
829 only if glyph is hinted.
830 Updated.
831 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
832 and `cvs_ready'.
833 Add `tt_size_ready_bytecode' declaration.
834 * src/truetype/ttobjs.c (tt_size_done_bytecode,
835 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
836 (tt_size_init): Move most code into `tt_size_init_bytecode'.
837 (tt_size_done): Move most code into `tt_size_done_bytecode'.
838 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000839
David Turner91a34022007-01-05 14:47:08 +0000840
Werner Lembergf6294392007-01-06 07:47:45 +0000841 Don't extract the metrics table from the SFNT font file. Instead,
842 reparse it on each glyph load. The runtime difference is not
843 noticeable, and it can save a lot of heap memory when memory-mapped
844 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000845
Werner Lembergf6294392007-01-06 07:47:45 +0000846 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
847 `horz_metrics_offset' and `vert_metrics_ofset'.
848 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
849 Updated.
850
851
852 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
853
854
855 Do not load the CFF index offsets into memory, since this wastes a
856 *lot* of heap memory with large Asian CFF fonts. There is no
857 significant performance loss.
858
859 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
860 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
861 `data_size'.
862 (CFF_CharsetRec): Add field `num_glyphs'.
863
864 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
865 cff_charset_cid_to_gindex): New functions.
866 (cff_new_index): Renamed to...
867 (cff_index_init): This. Update all callers.
868 Updated -- some code has been moved to `cff_index_load_offsets'.
869 (cff_done_index): Renamed to...
870 (cff_index_done): This. Update all callers.
871 (cff_index_get_pointers, cff_index_access_element): Updated to use
872 stream offsets.
873 (cff_charset_compute_cids): Set `num_glyphs' field.
874 (cff_encoding_load): Updated.
875
876 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000877
8782007-01-04 David Turner <david@freetype.org>
879
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000880 * docs/INSTALL.UNIX: Simplify some parts, add reference to
881 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000882
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000883 * README.CVS: Add common problem description and solution
884 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000885
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000886 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000887
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000888 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000889
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000890 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000891
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000892 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
893 (TWorker): This.
894 Remove `count_table' and `memory'.
895 Make `grays' a pointer.
896 (TRaster): New structure.
897 (count_table): New static array.
898 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
899 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
900 ft_black_set_mode, ft_black_render): Updated.
901 (ft_black_init): Don't initialize `count_table'.
902 (ft_black_reset): Use the render pool. This saves about 6KB of
903 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000904
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000905 * src/smooth/ftgrays.c (TRaster): Replaced with...
906 (TWorker): This.
907 Remove `memory'.
908 (TRaster): New structure.
909
910 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
911 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
912 gray_render_span, gray_raster_render): Updated.
913 (gray_raster_reset): Use the render pool. This saves about 6KB of
914 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000915
David Turner8a6c44e2007-01-04 17:03:11 +0000916 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
917 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000918 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
919 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
920 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000921
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000922 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
923 Remove a typo that results in no hinting and a memory leak with some
924 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000925
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000926 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000927 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000928 CFF_Faces in it. We need to close all faces before destroying the
929 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000930
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00009312007-01-02 Werner Lemberg <wl@gnu.org>
932
933 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
934 Remove compiler warning.
935
David Turner9207e002007-01-02 16:58:13 +00009362007-01-02 David Turner <david@freetype.org>
937
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000938 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000939
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009402006-12-31 Masatake YAMATO <jet@gyve.org>
941
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000942 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
943 function.
944 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000945 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000946 `gxv_kern_subtable_fmt0_pairs_validate'.
947
David Turner115b4422006-12-22 11:37:05 +00009482006-12-22 David Turner <david@freetype.org>
949
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000950 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
951 warnings.
David Turner115b4422006-12-22 11:37:05 +0000952
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000953 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
954 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000955
Werner Lemberg4755bf72006-12-16 08:58:44 +00009562006-12-16 Anders Kaseorg <anders@kaseorg.com>
957
958 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
959 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
960
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009612006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
962
Werner Lemberg9b774e22007-01-16 06:11:27 +0000963 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000964 sync with the modification by Jens Claudius on 2006-08-22; cf.
965 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 +0000966
9672006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
968
969 * src/base/ftmac.c: Specialized for Mac OS X only.
970 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
971 * builds/unix/configure.raw: Ditto. When explicit switches for
972 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
973 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
974
9752006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
976
977 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
978 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
979 instead of src/base/ftmac.c
980 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
981 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
982 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
983 that cannot be built at present.
984
9852006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
986
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000987 * src/base/ftobjs.c: Improvement of resource fork handler for
988 POSIX, cf.
989 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000990 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
991 format or .dfont, to simulate the face index number counted by ftmac.c.
992 (IsMacResource): Return the number of scalable faces correctly.
993
Werner Lembergec5b4502006-12-10 07:51:38 +00009942006-12-10 Werner Lemberg <wl@gnu.org>
995
996 * builds/toplevel.mk (version): Protect against `distclean' target.
997
Werner Lembergb26b3142006-12-09 20:01:43 +00009982006-12-09 Werner Lemberg <wl@gnu.org>
999
1000 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1001 or `type'.
1002
1003 * builds/freetype.mk (version): Extracted from freetype.h, using
1004 GNU make's built-in string functions.
1005 (refdoc): Use $(version) instead of static version number.
1006
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010072006-12-08 Werner Lemberg <wl@gnu.org>
1008
1009 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1010
Werner Lemberg15c29502006-12-09 07:29:54 +000010112006-12-08 Vladimir Volovich <vvv@vsu.ru>
1012
1013 * src/tools/apinames (State): Remove final comma in structure -- xlc
1014 v5 under AIX 4.3 doesn't like this.
1015
David Turnerdbf3b432006-12-07 21:18:09 +000010162006-12-07 David Turner <david@freetype.org>
1017
Werner Lemberg256a3512006-12-08 06:49:33 +00001018 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1019 to the spacing of auto-fitted glyphs. This only impacts rare
1020 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001021
Werner Lemberg11171312006-12-03 09:43:40 +000010222006-12-03 Werner Lemberg <wl@gnu.org>
1023
1024 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1025
Werner Lemberg960ba592006-12-01 08:20:47 +000010262006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001027
Werner Lemberg960ba592006-12-01 08:20:47 +00001028 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1029 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1030 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001031
David Turner80658e52006-11-28 08:09:20 +00001032
Werner Lemberg960ba592006-12-01 08:20:47 +00001033 * include/freetype/ftxf86.h: Fix and extend comment so that it
1034 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001035
Werner Lemberg960ba592006-12-01 08:20:47 +00001036 * include/freetype/ftchapters.h: Add `font_format' section.
1037
1038
1039 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1040 to TOC in index page.
1041
10422006-11-28 David Turner <david@freetype.org>
1043
1044 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1045 trying to render into a zero-width/height bitmap, not an error code.
1046
1047 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1048
1049 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1050 ones instead.
1051
1052 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1053 variable.
David Turner80658e52006-11-28 08:09:20 +00001054
Werner Lemberg8636c292006-11-26 22:28:13 +000010552006-11-26 Pierre Hanser <hanser@club-internet.fr>
1056
1057 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1058
Werner Lemberg960ba592006-12-01 08:20:47 +000010592006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001060
Werner Lemberg960ba592006-12-01 08:20:47 +00001061 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1062 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1063 Add stubs to link the `ftgrid' test program when debugging is
1064 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001065
Werner Lemberg960ba592006-12-01 08:20:47 +000010662006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001067
1068 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001069 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1070
1071 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1072 Emit more sensible information.
1073
1074 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1075
1076 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1077 rounding of blue values.
1078 (af_latin_hints_compute_segments): Hint segment heights.
1079 (af_latin_hints_link_segments): Reduce `len_score' value.
1080 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1081 value and use `height' member for comparisons.
1082 (af_latin_hint_edges): Extend logging message.
1083 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001084
Werner Lemberg91959bf2006-11-22 10:36:55 +000010852006-11-22 Werner Lemberg <wl@gnu.org>
1086
1087 Fix Savannah bug #15553.
1088
1089 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1090 program after a change from mono to grayscaling (and vice versa).
1091 Use correct constant for comparison to get `exec->grayscale'.
1092
Werner Lemberg913a3652006-11-19 09:19:17 +000010932006-11-18 Werner Lemberg <wl@gnu.org>
1094
1095 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001096 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001097 This patch fixes Savannah bug #18301.
1098
1099 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1100 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1101 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1102 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1103 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1104 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1105 (FNT_Load_Glyph): Check validity of `glyph_index'.
1106
David Turner7bab6ae2006-11-13 11:25:06 +000011072006-11-13 David Turner <david@freetype.org>
1108
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001109 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1110 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001111
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001112 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1113 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1114 when building the library to change the default LCD filter to be
1115 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001116
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001117 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001118
David Turner8765c712006-11-10 16:49:42 +000011192006-11-10 David Turner <david@freetype.org>
1120
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001121 * src/smooth/ftsmooth.c: API change for the LCD
1122 filter. The FT_LcdFilter value is an enumeration describing which
1123 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1124 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1125 algorithm which produces strong color fringes for everything
1126 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001127
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001128 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1129 second parameter to an enum type.
1130
1131 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1132 (_ft_lcd_filter): Rename to...
1133 (_ft_lcd_filter_fir): This.
1134 Update parameters.
1135 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1136 (FT_Library_Set_LcdFilter): Update parameters.
1137 Handle new filter modes.
1138
1139 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1140 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1141 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1142 callback and update other fields.
1143
1144 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1145 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1146 Other minor improvements.
1147
1148 * src/autofit/aflatin.c: Various tiny improvements that drastically
1149 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1150 (af_latin_hints_compute_edges): Fix typo.
1151 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001152
David Turner4e9cc3c2006-11-09 16:31:52 +000011532006-11-09 David Turner <david@freetype.org>
1154
Werner Lemberg49c77a82006-11-09 21:51:57 +00001155 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1156 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001157
Werner Lemberg5e430892006-11-07 09:35:03 +000011582006-11-07 Zhe Su <james.su@gmail.com>
1159
1160 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1161 also.
1162
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011632006-11-03 Werner Lemberg <wl@gnu.org>
1164
1165 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1166
David Turner40604742006-11-02 16:37:35 +000011672006-11-02 David Turner <david@freetype.org>
1168
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001169 Add a few tweaks to better handle serif fonts.
1170 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001171
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001172 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1173 segments that are less than 1.5 pixels high. This gets rid of
1174 *many* corner cases with serifs.
1175 (af_latin_align_linked_edge): Add logging message.
1176 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1177 Add logging messages.
1178 Handle AF_EDGE_FLAG flag specially.
1179
1180 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1181 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1182
1183 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1184 Update external declarations.
1185 (af_corner_orientation, af_corner_is_flat): Replaced by...
1186
1187 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1188 ft_corner_is_flat): These declarations.
1189
1190 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1191 Comment out. Replaced by...
1192
1193 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1194 These functions. Update all callers.
1195 (FT_Add64) [!FT_LONG64]: Simplify.
1196
1197 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1198 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1199 production of garbage by missing lots of segments.
1200
1201 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1202
1203 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1204 [AF_DEBUG]: Set _af_debug_hints.
1205
1206
1207 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1208 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1209 and ft_corner_orientation.
1210
1211
1212 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001213
Werner Lemberge88c5262006-10-24 05:46:26 +000012142006-10-24 Werner Lemberg <wl@gnu.org>
1215
1216 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1217
1218 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1219 as argument.
1220
David Turnera1861392006-10-23 16:00:59 +000012212006-10-23 Zhe Su <zsu@novell.com>
1222
Werner Lemberg715e96e2006-10-24 05:28:45 +00001223 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1224 better deal with broken Asian fonts with strange glyphs, having
1225 self-intersections and other peculiarities. The used algorithm is
1226 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001227
David Turnere140f142006-10-23 08:56:57 +000012282006-10-23 David Turner <david@freetype.org>
1229
Werner Lemberg715e96e2006-10-24 05:28:45 +00001230 Speed up the CFF font loader. With some large CFF fonts,
1231 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001232
Werner Lemberg715e96e2006-10-24 05:28:45 +00001233 * src/cff/cffload.c (cff_get_offset): Removed.
1234 (cff_new_index): Inline functionality of `cff_get_offset'.
1235 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1236 (cff_charset_done): Call `cff_charset_free_cids'.
1237 (cff_charset_load): Call `cff_charset_compute_cids'.
1238 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1239
1240 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1241 with FT_NEXT_XXX.
1242
1243
1244 Speed up the Postscript hinter, with more than 100% speed increase
1245 on my machine.
1246
1247 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1248 psh_corner_orientation): New functions.
1249 (psh_glyph_compute_inflections): Merge loops for efficiency.
1250 Use `psh_corner_orientation'.
1251 (psh_glyph_init): Use `psh_corner_is_flat'.
1252 (psh_hint_table_find_strong_point): Renamed to...
1253 (psh_hint_table_find_strong_points): This.
1254 Rewrite, adding argument to handle all points at once.
1255 Update all callers.
1256 (PSH_MAX_STRONG_INTERNAL): New macro.
1257 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001258
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012592006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1260
1261 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001262 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001263
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012642006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1265
1266 * docs/INSTALL.CROSS: New document file for cross-building.
1267
1268 * builds/unix/configure.raw: Preliminary cross-building support.
1269 Find native C compiler and pass it by CC_BUILD, and
1270 find suffix for native executable and pass it by EXEEXT_BUILD.
1271 Also suffix for target executable is passed by EXEEXT.
1272
Werner Lembergb9e6d692006-10-15 08:58:40 +00001273 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1274 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001275 CC_BUILD and EXEEXT_BUILD.
1276
Werner Lembergb9e6d692006-10-15 08:58:40 +00001277 * builds/exports.mk (APINAMES_EXE): Change the extension for
1278 apinames from the suffix for target (E) to that for building host
1279 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001280
Werner Lemberg82a07e92006-10-12 06:20:44 +000012812006-10-12 Werner Lemberg <wl@gnu.org>
1282
1283 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1284 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1285 which reference those files.
1286
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000012872006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1288
Werner Lembergb9e6d692006-10-15 08:58:40 +00001289 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1290 embedded in freetype2.pc and freetype-config. Use it to record
1291 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001292
1293 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1294
1295 * builds/unix/freetype-config.in: Ditto.
1296
Werner Lemberg28e17d92006-10-11 17:27:47 +000012972006-10-11 Werner Lemberg <wl@gnu.org>
1298
1299 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1300 development.
1301
Jens Claudius336d2292006-10-03 08:53:37 +000013022006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1303
1304 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1305 argument to ft_setjmp.
1306
1307 * include/freetype/internal/ftvalid.h: Add comment that
1308 ft_validator_run must not be used.
1309
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013102006-10-01 Werner Lemberg <wl@gnu.org>
1311
1312 * src/base/ftbase.c: Undo change from 2006-09-30.
1313
1314 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1315
13162006-09-30 David Turner <david@freetype.org>
1317
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001318 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1319 s/unpatented_hinting/ignore_unpatented_hinter/.
1320 Update all callers.
1321
1322 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1323 auto-hinting shall be used or not.
1324
1325 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001326
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013272006-09-30 Werner Lemberg <wl@gnu.org>
1328
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001329 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1330 in use).
1331
1332 * src/base/ftbase.c: Include `ftlcdfil.c'.
1333
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013342006-09-29 Werner Lemberg <wl@gnu.org>
1335
1336 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1337 overlapping segments. Bug reported by Stefan Koch.
1338
David Turnerad830712006-09-27 16:20:59 +000013392006-09-28 David Turner <david@freetype.org>
1340
Werner Lemberg2c002e12006-09-29 21:31:53 +00001341 Fix a bug in the automatic unpatented hinting support which prevents
1342 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001343
Werner Lemberg2c002e12006-09-29 21:31:53 +00001344 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1345 s/force_autohint/unpatented_hinting/. Update all callers.
1346
1347 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1348
1349 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001350
David Turner8a317cf2006-09-27 07:52:48 +000013512006-09-27 David Turner <david@freetype.org>
1352
Werner Lemberg2c002e12006-09-29 21:31:53 +00001353 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001354
David Turner8a317cf2006-09-27 07:52:48 +00001355
David Turnere140f142006-10-23 08:56:57 +00001356 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001357 In a default build, the function `FT_Library_SetLcdFilter' returns
1358 `FT_Err_Unimplemented_Feature'; you need to #define
1359 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1360 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001361
Werner Lemberg2c002e12006-09-29 21:31:53 +00001362 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001363
Werner Lemberg2c002e12006-09-29 21:31:53 +00001364 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1365 typedef.
1366 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1367 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001368
Werner Lemberg2c002e12006-09-29 21:31:53 +00001369 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1370 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001371
Werner Lemberg2c002e12006-09-29 21:31:53 +00001372 Handle subpixel rendering.
1373 Simplify function.
1374 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1375 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1376
1377 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1378 pointing to <freetype/ftlcdfil.h>.
1379
1380 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1381 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1382
1383 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001384
Werner Lemberge20df4a2006-09-27 06:29:21 +000013852006-09-26 David Bustin
1386
1387 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1388 correctly. Reported as Savannah bug #17843.
1389
David Turner6f8c6222006-09-26 15:42:44 +000013902006-09-26 David Turner <david@freetype.org>
1391
Werner Lemberg110246c2006-09-26 21:55:44 +00001392 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1393 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1394 horizontal and vertical hinting for the purpose of debugging the
1395 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001396
Werner Lemberg110246c2006-09-26 21:55:44 +00001397 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1398 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001399
Werner Lemberg110246c2006-09-26 21:55:44 +00001400 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1401
1402 * include/freetype/config/ftoption.h, devel/ftoption.h
1403 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1404 we want to compile LCD-optimized rendering code (à la ClearType) or
1405 not. The macro *must* be disabled in default builds of the library
1406 for patent reasons.
1407
1408 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1409 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1410 isn't defined at compile time. This only changes the content of the
1411 rendered glyph to match the one of normal gray-level rendering,
1412 hence clients should not need to be modified.
1413
1414 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001415
Werner Lemberg745ff2c2006-09-19 05:48:02 +000014162006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1417
1418 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1419 LWFN fails and both are available.
1420
David Turnerf3050052006-09-11 12:00:32 +000014212006-09-11 David Turner <david@freetype.org>
1422
Werner Lembergf9644552006-09-12 13:48:10 +00001423 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1424 report their English names through an Apple Roman
1425 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001426
Werner Lembergf9644552006-09-12 13:48:10 +00001427 If the font uses another name entry with language_id == English, it
1428 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001429
Werner Lembergf9644552006-09-12 13:48:10 +00001430 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1431 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001432
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014332006-09-05 Werner Lemberg <wl@gnu.org>
1434
1435 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001436 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001437 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1438 `HAN NOM B.ttf').
1439
1440 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1441
David Turner772e55d2006-09-05 09:45:15 +000014422006-09-05 David Turner <david@freetype.org>
1443
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001444 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001445
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001446 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1447 (TRaster): Remove `count_ex' and `count_ey'.
1448 (gray_find_cell): Remove 2nd and 3rd argument.
1449 (gray_alloc_cell): Merged with `gray_find_cell'.
1450 (gray_record_cell): Simplify.
1451 (gray_set_cell): Rewrite.
1452 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1453 (gray_render_span): Don't use FT_MEM_SET for small values.
1454 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1455 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1456 bitmap scanline.
1457 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001458
David Turneraa557a92006-09-04 16:42:44 +000014592006-09-04 David Turner <david@freetype.org>
1460
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001461 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1462 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001463
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014642006-09-03 Werner Lemberg <wl@gnu.org>
1465
1466 * devel/ftoption.h: Synchronize with
1467 include/freetype/config/ftoption.h.
1468
1469 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1470 variable declaration.
1471 (gray_convert_glyph): Fix compiler warnings.
1472
David Turner6d79f212006-09-01 14:09:35 +000014732006-09-01 David Turner <david@freetype.org>
1474
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001475 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1476 to recognize a few fonts that require the automatic unpatented
1477 loader.
David Turnerbd502952006-09-01 19:05:24 +00001478
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001479 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1480 rasterizer. The speed improvement is between 15% and 25%, depending
1481 on the font data.
1482
1483 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1484 (TCell): Redefine.
1485 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1486 (gray_init_cells): Updated.
1487 (gray_find_cell, gray_alloc_cell): New functions.
1488 (gray_record_cell): Rewritten to use `gray_find_cell' and
1489 `gray_alloc_cell'.
1490 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1491 QSORT_THRESHOLD):
1492 Removed.
1493 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1494 gray_dump_cells): Removed.
1495 (gray_sweep): Rewritten.
1496 (gray_convert_glyph): Rewrite code which used one of the sorting
1497 functions.
1498 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001499
Werner Lembergd898aed2006-08-29 09:50:34 +000015002006-08-29 Dr. Werner Fink <werner@suse.de>
1501
1502 * configure: Make it possible to handle configure options which
1503 have strings containing spaces.
1504
15052006-08-27 David Turner <david@freetype.org>
1506
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001507 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1508 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1509 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1510
1511 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1512 src/truetype/truetype.c, src/truetype/ttdriver.c,
1513 src/truetype/ttgload.c, src/truetype/ttgload.h,
1514 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1515 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1516 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1517
1518 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1519 member `force_autohint'.
1520
1521 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1522
1523 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1524 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001525
Jens Claudiusa787f452006-08-27 11:26:18 +000015262006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1527
1528 Fix miscellaneous compiler warnings.
1529
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001530 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1531 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001532
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001533 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1534 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1535 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001536
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001537 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1538 volatileness of argument to ft_longjmp. Spotted by Werner
1539 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001540
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001541 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1542 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001543
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001544 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1545 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001546
Werner Lembergc4c35b72006-08-27 08:03:46 +000015472006-08-27 Werner Lemberg <wl@gnu.org>
1548
1549 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1550 Reported by Jens.
1551
Jens Claudius088e44e2006-08-22 14:24:30 +000015522006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001553
Jens Claudius088e44e2006-08-22 14:24:30 +00001554 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001555 about addresses of volatile objects passed as function arguments as
1556 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001557
Werner Lembergc4c35b72006-08-27 08:03:46 +00001558 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1559 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001560
1561 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1562 argument `table' a pointer to a volatile object.
1563
1564 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1565 argument `table' a pointer to a volatile object.
1566
Jens Claudius2652bd52006-08-18 17:20:37 +000015672006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1568
1569 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1570 variable `_sfnt' as volatile since it must keep its value across
1571 a call to ft_setjmp.
1572 (gxv_validate): Same for local variables `memory' and `valid'.
1573 (classic_kern_validate): Same for local variables `memory',
1574 `ckern', and `valid'.
1575
1576 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1577 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1578 `jstf', and 'valid'.
1579
1580 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1581 local variable `cmap'.
1582
David Turner9fbfc6a2006-08-16 09:11:31 +000015832006-08-16 David Turner <david@freetype.org>
1584
Werner Lemberg12342992006-08-19 11:18:09 +00001585 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1586 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001587
Werner Lemberg12342992006-08-19 11:18:09 +00001588 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1589 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001590
David Turner33f5f242006-08-16 16:50:55 +00001591
Werner Lemberg12342992006-08-19 11:18:09 +00001592 Improvements to native TrueType hinting. This is a first try,
1593 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1594
1595 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1596 `extra_points2'.
1597
1598 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1599 `orus'.
1600
1601 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1602 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1603 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1604 handle `extra_points2'.
1605
1606 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1607 Remove compiler warning.
1608 (cur_to_arg): Remove macro.
1609 (TT_Hint_Glyph): Updated.
1610 (TT_Process_Simple_Glyph): Handle `orus'.
1611
1612 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1613 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1614 (LOC_Ins_IUP): Renamed to...
1615 (IUP_WorkerRec): This.
1616 Add `orus' member.
1617 (Shift): Renamed to...
1618 (_iup_worker_shift): This.
1619 Updated.
1620 (Interp): Renamed to...
1621 (_iup_worker_interpolate): This.
1622 Updated to handle `orus'.
1623 (Ins_IUP): Updated.
1624
1625 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1626 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001627
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000016282006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1629
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001630 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001631 build ftvalid in ft2demos. This has been inadvertedly changed
1632 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001633
16342006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1635
Werner Lemberg12342992006-08-19 11:18:09 +00001636 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1637 Jens:
1638 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001639
Werner Lemberg12342992006-08-19 11:18:09 +00001640 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1641 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001642
1643 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1644
Jens Claudius9950adc2006-08-13 12:14:36 +000016452006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1646
Werner Lemberg12342992006-08-19 11:18:09 +00001647 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1648 T1_TOKEN_TYPE_KEY.
1649 (T1_FieldRec): Add `dict'.
1650 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1651 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1652 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001653
Werner Lemberg12342992006-08-19 11:18:09 +00001654 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1655 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001656
1657 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1658
1659 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001660 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1661 not T1_TOKEN_TYPE_ANY.
1662 (ps_parser_load_field): Make sure a token that should be a string or
1663 name is really a string or name.
1664 Avoid memory leak if a keyword has been already encountered and its
1665 value is overwritten.
1666 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1667 T1_FIELD_XXX.
1668 (parse_dict): Ignore keywords that occur in the wrong dictionary
1669 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001670
Werner Lemberg12342992006-08-19 11:18:09 +00001671 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1672 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001673
Werner Lemberg12342992006-08-19 11:18:09 +00001674 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1675 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001676
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016772006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1678
1679 Move creation of field `buildchar' of T1_DecoderRec out of
1680 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1681 of it.
1682
1683 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1684 and `T1_Compute_Max_Advance'.
1685
1686 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1687 Remove field `face', add `len_buildchar'.
1688
1689 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1690 field `buildchar'.
1691
1692 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1693 finisher for T1_Decoder.
1694 (cid_slot_load_glyph): Do not ignore failure when initializing the
1695 T1_Decoder.
1696
1697 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1698 Updated.
1699 (t1_decoder_init): Remove initialization of fields `buildchar' and
1700 `len_buildchar'.
1701 (t1_decoder_done): Remove deallocation of field `buildchar'.
1702
1703 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1704 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1705 T1_Decoder.
1706 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1707 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1708 case of error.
1709
1710 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1711 `buildchar' of T1_FaceRec.
1712
1713 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1714 `buildchar' of T1_FaceRec.
1715
Werner Lemberg1a380e02006-07-14 18:28:08 +000017162006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1717
1718 * freetype2/include/freetype/internal/psaux.h: New macros
1719 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1720 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1721 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1722 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1723 (T1_DecoderRec): New fields `buildchar' and `face'.
1724 (IS_PS_TOKEN): New macro.
1725
1726 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1727 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1728
1729 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1730 `default_design_vector' and `num_default_design_vector'.
1731
1732 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1733 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1734 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1735
1736 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1737 `token' argument to be NULL if we want only to count the number of
1738 tokens.
1739 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1740 want to skip the array.
1741 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1742 want to skip the array.
1743
1744 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1745 support for (partially commented out) othersubrs 19-25, 27, and 28.
1746 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1747 (t1_decoder_done): Release new field `buildchar'.
1748
1749 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1750 functions.
1751 (t1_keywords): Register them.
1752 (t1_allocate_blend): Updated.
1753 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1754 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1755 (parse_dict): Remove `keyword_flags' argument.
1756 Use new macro IS_PS_TOKEN.
1757 Changed function so that later PostScript definitions override
1758 earlier ones.
1759 (t1_init_loader): Initialize new field `keywords_encountered'.
1760 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1761 `len_buildchar'.
1762 Remove `keywords_flags'.
1763
1764 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1765 `keywords_encountered'.
1766 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1767
1768 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1769 New entries for parsing /NDV, /CDV, and /DesignVector.
1770
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017712006-07-07 Werner Lemberg <wl@gnu.org>
1772
1773 Add many checks to protect against malformed PCF files.
1774
1775 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1776 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1777
1778 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1779 data and check that tables don't overlap (using a simple
1780 bubblesort).
1781 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1782 New macros which give the size of data structures in the data
1783 stream.
1784 (pcf_get_properties): Use rough estimates to get array size limits.
1785 Assign `face->nprops' and `face->properties' earlier so that a call
1786 to PCF_Face_Done can do the clean-up in case of error.
1787 Protect against invalid string offsets.
1788 (pcf_get_metrics): Clean up code.
1789 Adjust tracing message levels.
1790 Use rough estimate to get array size limit.
1791 (pcf_get_bitmaps): Clean up code.
1792 Adjust tracing message levels.
1793 Use rough estimates to get offset limits.
1794 (pcf_get_encodings): Adjust tracing message level.
1795 (pcf_get_accel): Clean up code.
1796
Werner Lemberg8eb05252006-06-27 06:20:01 +000017972006-06-26 Werner Lemberg <wl@gnu.org>
1798
1799 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1800 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1801
Werner Lemberg24703f82006-06-26 19:12:51 +000018022006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1803
1804 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1805 (t1_decoder_parse_charstrings): Operator with
1806 opcode 15 pops its two arguments.
1807 Handle the case where the pops of an othersubr may be part of a
1808 subroutine.
1809 Handle unknown othersubrs gracefully: count their operands and let
1810 the following pop operators push the operands as the results onto
1811 the Type1 stack.
1812 Improve handling of setcurrentpoint opcode.
1813
Werner Lembergc011f4c2006-06-26 09:40:00 +000018142006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1815
1816 The Type 1 parser now skips over top-level procedures as required
1817 for a `Simplified Parser'. This makes the parser more robust as it
1818 doesn't poke around in PostScript code. Additionally, it makes the
1819 FontDirectory hackery in src/type1/t1load.c unnecessary.
1820
1821 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1822 (skip_literal_string): Add FT_Error as return value.
1823 Handle escapes better.
1824 (skip_string): Add FT_Error as return value.
1825 Don't set `parser->error' but return error code directly.
1826 (skip_procedure): New function.
1827 (ps_parser_skip_PS_token): Handle procedures.
1828 Update code.
1829 (ps_parser_to_token): Update code.
1830 (ps_parser_load_field_table): Handle bbox entries also.
1831
1832 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1833 Add commented-out code for synthetic fonts.
1834
Werner Lemberga2da05c2006-06-25 06:27:27 +000018352006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1836
1837 Fix two hinting bugs as reported in
1838 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1839
1840 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1841 `first_point' member.
1842
1843 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1844 `first_point'.
1845 (TT_Process_Composite_Glyph): Always untouch points.
1846
1847 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1848 `first_point' and `last_point' in case of composite glyphs.
1849 (Ins_IUP): Fix computation of `end_point'.
1850
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018512006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1852
Werner Lembergef3d2c22006-06-25 06:07:14 +00001853 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1854 Mac. The original patch was written by David Sachitano and Lawrence
1855 Coopet, and modified by Sean McBride for MPW compatibility. Only
1856 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001857
Werner Lembergef3d2c22006-06-25 06:07:14 +00001858 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1859 Mac OS X platforms.
1860 (OS_INLINE): Undefine before definition.
1861 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1862 FontAssociation table in FOND resource.
1863 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1864 and fontSize at each entry of FontAssociation table in FOND
1865 resource.
1866 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1867 ffStylOff of FamilyRecord header of FOND resource, the header,
1868 fontSize, fontID at each entry of FontAssociation table, and
1869 StyleMapping table.
1870 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001871
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018722006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1873
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001874 Public API of TrueTypeGX, OpenType, and classic kern table validator
1875 should return `FT_Err_Unimplemented_Feature' if validation service
1876 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001877 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001878 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1879
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001880 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1881 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1882 unavailable.
1883 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1884 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001885
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001886 * src/base/ftotval.c (FT_OpenType_Validate): Return
1887 FT_Err_Unimplemented_Feature if OpenType validation service is
1888 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001889
Werner Lembergb10e45a2006-06-08 07:32:56 +000018902006-06-08 Werner Lemberg <wl@gnu.org>
1891
1892 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1893 errors.
1894
David Turner5f1f7502006-06-07 05:11:50 +000018952006-06-07 David Turner <david@freetype.org>
1896
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001897 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1898 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1899 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001900
David Turner457b4a82006-06-06 08:14:14 +000019012006-06-06 David Turner <david@freetype.org>
1902
Werner Lemberg4836f952006-06-06 12:54:08 +00001903 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001904
Werner Lemberg4836f952006-06-06 12:54:08 +00001905 We change `ps_unicodes_init' so that it also takes a
1906 `free_glyph_name' callback to release the glyph names returned by
1907 `get_glyph_name'
1908
1909 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1910 Renamed to ...
1911 (PS_GetGlyphNameFunc): This.
1912 (PS_FreeGlyphNameFunc): New typedef.
1913 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1914
1915 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1916 argument.
1917 (cff_sid_free_glyph_name): New function.
1918 (cff_cmap_unicode_init): Updated.
1919
1920 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1921
1922 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1923 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001924
1925
David Turner09717352006-06-04 14:33:08 +000019262006-06-04 David Turner <david@freetype.org>
1927
Werner Lembergd724f202006-06-04 15:17:41 +00001928 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1929 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001930 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001931
Werner Lembergd724f202006-06-04 15:17:41 +00001932 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1933 of `face->num_glyphs' which missed the last glyph, due to
1934 the offset-by-1 computation, since the PFR format doesn't
1935 guarantee that glyph index 0 corresponds to the `missing
1936 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001937
Werner Lemberg33779662006-05-26 06:30:05 +000019382006-05-25 Werner Lemberg <wl@gnu.org>
1939
1940 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1941 `-no-undefined'. Reported by Christian Biesinger.
1942
Werner Lemberg24773d62006-05-20 08:53:13 +000019432006-05-19 Brian Weed <bw@imaginengine.com>
1944
1945 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1946 have debug information, and debug libraries use `C7 compatible'
1947 debug info.
1948
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019492006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1950
Werner Lemberga6523a62006-05-20 08:47:01 +00001951 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001952 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001953
Werner Lemberga6523a62006-05-20 08:47:01 +00001954 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1955 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001956
1957 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001958 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001959
19602006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1961
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001962 * build/unix/configure.raw: Add a fallback to disable Carbon
1963 dependency, if configured with no options on Mac OS X.
1964
19652006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1966
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001967 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001968 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001969 the second part of Savannah bug #16590.
1970
Werner Lemberg545c4e52006-05-17 22:55:04 +000019712006-05-18 Werner Lemberg <wl@gnu.org>
1972
1973 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1974 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1975
David Turnerdc3ff312006-05-17 12:59:35 +000019762006-05-17 David Turner <david@freetype.org>
1977
Werner Lemberg545c4e52006-05-17 22:55:04 +00001978 This is a major patch used to drastically improve the performance of
1979 loading glyphs. This both speeds up loading the glyph vectors
1980 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001981
Werner Lemberg545c4e52006-05-17 22:55:04 +00001982 We now use inline assembler code with GCC to implement `FT_MulFix',
1983 which is probably the most important function related to the
1984 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001985
Werner Lemberg545c4e52006-05-17 22:55:04 +00001986 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001987
1988
Werner Lemberg545c4e52006-05-17 22:55:04 +00001989 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1990 `cursor' and `limit'.
1991
1992 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1993 New functions.
1994 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1995 [TEST]: Remove.
1996
1997 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1998 code.
1999
2000 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2001 `FT_ZERO'
2002 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2003 (af_glyph_hints_reload: Rewrite recognition of weak points.
2004
2005 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2006 constant values out of the loops.
2007
2008 * src/autofit/aftypes.h: Updated.
2009
2010 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2011
2012 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2013 product to get orientation.
2014
2015 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2016 (FT_Stream_OpenGzip): Use it to handle small files directly in
2017 memory.
2018
2019 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2020 Improve performance.
2021
2022 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2023 `limit'.
2024
2025 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2026 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2027 exceedingly large values of number of contours. Speed up by
2028 reducing the number of loops.
2029
2030 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2031
2032
2033 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2034 used to detect rogue clients from 4 to 16. This is to prevent some
2035 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2036 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002037
Werner Lembergde2d90a2006-05-17 08:54:30 +000020382007-05-17 Werner Lemberg <wl@gnu.org>
2039
2040 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002041 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002042
20432006-05-16 Werner Lemberg <wl@gnu.org>
2044
2045 * docs/PROBLEMS: Updated icl issues.
2046
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002047----------------------------------------------------------------------------
2048
Werner Lemberg42b63b22007-01-21 21:01:33 +00002049Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002050David Turner, Robert Wilhelm, and Werner Lemberg.
2051
2052This file is part of the FreeType project, and may only be used, modified,
2053and distributed under the terms of the FreeType project license,
2054LICENSE.TXT. By continuing to use, modify, or distribute this file you
2055indicate that you have read the license and understand and accept it
2056fully.
2057
2058
2059Local Variables:
2060version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002061coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002062End: