blob: 42f046952bd07bd52105b51a5a8fa41ea94842fe [file] [log] [blame]
Werner Lemberg1c8980e2007-05-25 07:11:12 +000012007-05-25 Werner Lemberg <wl@gnu.org>
2
3 * docs/CHANGES: Updated.
4
Werner Lemberg6ff2ff52007-05-24 19:39:14 +000052007-05-24 Werner Lemberg <wl@gnu.org>
6
7 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
8 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
9
102007-05-24 Graham Asher <graham.asher@btinternet.com>
11
12 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
13 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
14
David Turner0d0365e2007-05-22 09:53:44 +0000152007-05-22 David Turner <david@freetype.org>
16
Werner Lemberg1c8980e2007-05-25 07:11:12 +000017 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
18 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +000019
Werner Lemberg1c8980e2007-05-25 07:11:12 +000020
21 Avoid heap blowup with very large .Z font files. This fixes
22 Savannah bug #19910.
23
24 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
25 `in_limit', `pad', `pad_bits', and `in_buff' members.
26 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
27 `buf_total' members.
28
29 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
30 only one argument.
31 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +000032
332007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +000034
35 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
36 (ps_dimension_set_mask_bits): Remove `const'.
37
David Turner0d0365e2007-05-22 09:53:44 +0000382007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000039
40 * src/sfnt/ttmtx.c (tt_face_get_metrics)
41 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
42
Werner Lembergb826fa72007-05-19 07:18:48 +0000432007-05-19 Derek Clegg <dclegg@apple.com>
44
45 Savannah patch #5929.
46
47 * include/freetype/tttables.h, src/base/ftobjcs.c
48 (FT_Get_CMap_Format): New function.
49
50 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
51 `format' member.
52 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
53 cmap_info->format.
54
Werner Lemberg6f99c882007-05-19 07:01:49 +0000552007-05-19 Werner Lemberg <wl@gnu.org>
56
57 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
58 before handling subglyphs so that it can be reinitialized each time.
59 This fixes Savannah bug #19859.
60
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000612007-05-16 Werner Lemberg <wl@gnu.org>
62
63 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
64 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
65 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
66 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
67 tt_face_get_metrics): Fix type-punning issues.
68
David Turner0a24bd22007-05-15 10:54:10 +0000692007-05-15 David Turner <david@freetype.org>
70
71 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000072 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
73 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000074 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000075 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +000076
Werner Lemberg607dec72007-05-15 06:49:37 +0000772007-05-15 Graham Asher <graham.asher@btinternet.com>
78
79 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
80 variable.
81 * src/autofit/afloader.c (af_loader_load_g): Ditto.
82
83 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
84 (open_face_from_buffer): Initialize `stream'.
85 (FT_Request_Metrics): Remove unused variable.
86 Remove redundant `break' statements.
87 (FT_Get_Track_Kerning): Remove unused variable.
88
89 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
90 afm_parse_kern_data): Remove redundant
91 `break' statements.
92 (afm_parser_parse): Ditto.
93 Don't use uninitialized variables.
94
95 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
96 Use `|' operator instead of `^' to set it.
97 Update all users.
98
99 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
100 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
101
102 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
103 comparison.
104 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
105 (TT_Load_Glyph): Remove unused variable.
106
Werner Lemberg8d463a52007-05-13 16:01:55 +00001072007-05-13 Derek Clegg <dclegg@apple.com>
108
109 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
110 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
111
David Turner711cf842007-05-11 14:36:24 +00001122007-05-11 David Turner <david@freetype.org>
113
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000114 * src/cache/ftbasic.c, include/freetype/ftcache.h
115 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
116 functions that allow us to look up glyphs using an FTC_Scaler object
117 to specify the size, making it possible to use fractional pixel
118 sizes.
119
120 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
121 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000122
Werner Lemberg94be20e2007-05-09 20:02:55 +00001232007-05-09 Graham Asher <graham.asher@btinternet.com>
124
125 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
126 (af_latin_metrics_scale_dim): Fix compiler warnings.
127
Werner Lemberg41271032007-05-06 04:51:48 +00001282007-05-06 Werner Lemberg <wl@gnu.org>
129
130 * builds/win32/visualce/freetype.sln: Removed, as requested by
131 Vincent.
132
Werner Lembergdf49e692007-05-04 06:30:05 +00001332007-05-04 Vincent RICHOMME <richom.v@free.fr>
134
135 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
136 PC targets.
137
138 * docs/CHANGES: Document them.
139
1402007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000141
142 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
143 mmap (which might happen on some RTOS). From Savannah patch #5909.
144
Werner Lemberg106eaf12007-05-03 07:07:47 +00001452007-05-03 Werner Lemberg <wl@gnu.org>
146
147 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
148 * include/freetype/freetype.h (FT_Set_Char_Size): Update
149 documentation.
150
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001512007-04-28 Victor Stinner <victor.stinner@inl.fr>
152
153 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
154 `cmap'.
155
Werner Lembergcc712a22007-04-27 17:16:50 +00001562007-04-27 Werner Lemberg <wl@gnu.org>
157
158 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
159 number of points in contours. Problem reported by Victor Stinner
160 <victor.stinner@haypocalc.com>.
161 (TT_Process_Simple_Glyph): Synchronize variable types.
162
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001632007-04-26 Werner Lemberg <wl@gnu.org>
164
165 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
166 zero in case of error. This fixes Savannah bug #19689.
167
David Turnera8b45e62007-05-11 14:10:30 +00001682007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
169
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000170 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
171 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000172
Werner Lembergfcc1f472007-04-10 11:51:50 +00001732007-04-10 Martin Horak <horakm@centrum.cz>
174
175 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
176 Ignore `hhea' table. This fixes Savannah bug #19261.
177
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001782007-04-09 Werner Lemberg <wl@gnu.org>
179
180 * Version 2.3.4 released.
181 =========================
182
183
184 Tag sources with `VER-2-3-4'.
185
186 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
187 version number to 2.3.4.
188
189 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
190 builds/win32/visualc/freetype.dsp,
191 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
192
193 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
194
195 * builds/unix/configure.raw (version_info): Set to 9:15:3.
196
Werner Lembergf4a52a62007-04-09 08:40:11 +00001972007-04-09 Martin Horak <horakm@centrum.cz>
198
199 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
200 memory stream to avoid a crash with the incremental memory
201 interface (Savannah bug #19260).
202
David Turner1dcb4442007-04-06 08:19:04 +00002032007-04-06 David Turner <david@freetype.org>
204
Werner Lembergc81cf612007-04-06 09:28:23 +0000205 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
206 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000207
Werner Lemberg9f83e052007-04-05 02:28:23 +00002082007-04-04 Werner Lemberg <wl@gnu.org>
209
210 * Version 2.3.3 released.
211 =========================
212
213
214 Tag sources with `VER-2-3-3'.
215
216 * docs/CHANGES: Mention CVE-2007-1351.
217
David Turner7338ec22007-04-03 14:30:34 +00002182007-04-03 David Turner <david@freetype.org>
219
220 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000221 if one of the resolution values is 0, treat it as if it were the
222 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000223
David Turnere6472c12007-04-02 13:13:54 +00002242007-04-02 David Turner <david@freetype.org>
225
Werner Lemberg94f12272007-04-03 07:19:53 +0000226 Add special code to detect `extra-light' fonts and do not snap their
227 stem widths too much to avoid bizarre hinting effects.
228
229 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
230 `extra_light' members.
231
232 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
233 them.
234 (af_latin_metrics_scale_dim): Set `extra_light'.
235 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000236
David Turner3f539692007-03-28 14:53:40 +00002372007-03-28 David Turner <david@freetype.org>
238
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000239 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000240 padding.
241
Werner Lemberga08b2172007-03-28 07:17:17 +00002422007-03-28 Werner Lemberg <wl@gnu.org>
243
244 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
245 gracefully.
246 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000247 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000248 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
249 number of code points in Unicode.
250
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000251 * builds/win32/visualc/index.html,
252 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000253 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000254 s/232/233/.
255
256 * docs/CHANGES: Mention ftdiff.
257
David Turner3b242d32007-03-26 12:03:04 +00002582007-03-26 David Turner <david@freetype.org>
259
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000260 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
261 corresponding code.
262 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000263
Werner Lemberga08b2172007-03-28 07:17:17 +0000264 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000265 computations in order to ignore single-point contours. These are
266 never rasterized and correspond in certain fonts to mark-attach
267 points that are very far from the glyph's real outline, ruining the
268 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000269
Werner Lemberga08b2172007-03-28 07:17:17 +0000270 * src/autofit/afloader.c (af_loader_load_g): In the case of
271 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
272 Otherwise code that uses them will most certainly ruin the fixed
273 advance property.
David Turner23553d62007-03-26 13:37:17 +0000274
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000275 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
276 documentation and bump version number to 2.3.3.
277
278 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
279
280 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000281
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002822007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
283
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000284 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
285 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000286 * builds/vms/ftconfig.h: Ditto.
287 * include/freetype/config/ftconfig.h: Ditto.
288
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002892007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
290
Werner Lemberg14ffe092007-03-22 06:12:43 +0000291 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
292 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000293 proposed by Sean McBride:
294 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
295
2962007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
297
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000298 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
299 setjmp, proposed by Sean McBride:
300 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
301
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003022007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
303
Werner Lembergc9f6c662007-03-21 13:30:14 +0000304 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
305 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
306 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000307
David Turner74c34eb2007-03-18 07:19:31 +00003082007-03-18 David Turner <david@freetype.org>
309
Werner Lembergc9f6c662007-03-21 13:30:14 +0000310 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
311 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000312
Werner Lembergc9f6c662007-03-21 13:30:14 +0000313 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000314
David Turner89020d92007-03-17 17:48:57 +00003152007-03-17 David Turner <david@freetype.org>
316
Werner Lembergc9f6c662007-03-21 13:30:14 +0000317 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
318 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000319
Werner Lemberg25d592a2007-03-09 07:59:35 +00003202007-03-09 Werner Lemberg <wl@gnu.org>
321
322 * Version 2.3.2 released.
323 =========================
324
325
326 Tag sources with `VER-2-3-2'.
327
328 * builds/win32/visualc/index.html,
329 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000330 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000331 s/231/232/.
332
David Turner3a51afa2007-03-08 10:50:38 +00003332007-03-08 David Turner <david@freetype.org>
334
Werner Lemberg25d592a2007-03-09 07:59:35 +0000335 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000336
Werner Lemberg25d592a2007-03-09 07:59:35 +0000337 * builds/unix/configure.raw (version_info): Set to 9:13:3.
338
339 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
340
341 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000342
Werner Lemberg1e259de2007-03-08 15:39:21 +0000343 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
344 function to work properly, over-writing user-provided buffers in
345 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000346
David Turner121cad52007-03-08 16:43:50 +0000347
Werner Lemberg3d92f082007-03-06 11:59:24 +00003482007-03-05 Werner Lemberg <wl@gnu.org>
349
350 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
351 macro for `strstr'.
352
353 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
354 `trick_names', as suggested by Ivan Nincic.
355
David Turner085bc6e2007-03-05 17:40:03 +00003562007-03-05 David Turner <david@freetype.org>
357
Werner Lembergd112cf02007-03-06 12:06:56 +0000358 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
359 case FT_Init_FreeType fails for some reason. Problem reported by
360 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000361
Werner Lembergd112cf02007-03-06 12:06:56 +0000362 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
363 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
364 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
365 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000366
Werner Lembergd112cf02007-03-06 12:06:56 +0000367 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
368 signed values, not unsigned ones. Problem reported by Johannes
369 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000370
David Turner601aefe2007-02-21 16:47:49 +00003712007-02-21 David Turner <david@freetype.org>
372
Werner Lembergde5e6862007-02-25 21:06:43 +0000373 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
374 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000375
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00003762007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
377
378 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
379 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
380 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
381
Werner Lemberga0915172007-02-16 08:12:50 +00003822007-02-16 Werner Lemberg <wl@gnu.org>
383
384 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
385 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
386
David Turner2c4500e2007-02-14 15:08:47 +00003872007-02-14 David Turner <david@freetype.org>
388
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000389 It seems that the following changes fix most of the known
390 interpreter problems with my fonts, but more testing is needed,
391 though.
392
393 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
394 (TT_MulFix14): Rewrite.
395 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
396 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000397
Werner Lembergc6a14082007-02-12 22:08:15 +00003982007-02-12 Werner Lemberg <wl@gnu.org>
399
400 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
401 warnings.
402
403 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
404 (bdf_interpret_style): Ditto.
405
David Turnerc0f9c4a2007-02-12 14:55:03 +00004062007-02-12 David Turner <david@freetype.org>
407
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000408 Simplify projection and dual-projection code interface.
409
Werner Lemberg406d25f2007-02-12 22:01:18 +0000410 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
411 FT_Vector' as argument type.
412 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
413 Updated.
414 (CUR_fast_project, CUR_fast_dualproj): New macros.
415 (Project, Dual_Project, Project_x, Project_y): Updated.
416 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
417 macros.
418
419
420 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
421 adjustments for the non-light auto-hinted modes. Gets rid of
422 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000423
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000424 * src/autofit/aflatin.c (af_latin_hints_link_segments,
425 af_latin_hints_compute_edges): Slight optimization of the segment
426 linker and better handling of serif segments to get rid of broken
427 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000428
David Turnerc0f9c4a2007-02-12 14:55:03 +0000429
Werner Lemberg442bfb82007-02-12 21:44:10 +0000430 Introduce new string functions and the corresponding macros to get
431 rid of various uses of strcpy and other `evil' functions, as well as
432 to simplify a few things.
433
434 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
435 ft_mem_strcpyn): New declarations.
436 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
437 macros.
438 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
439 functions.
440
441 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
442 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
443 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
444 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
445 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
446 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
447 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
448 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000449
Werner Lemberg406d25f2007-02-12 22:01:18 +0000450 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
451
Werner Lemberg582067d2007-02-11 15:03:05 +00004522007-02-11 Werner Lemberg <wl@gnu.org>
453
454 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
455 non-spacing glyphs.
456
Werner Lemberg8f474532007-02-07 08:31:01 +00004572007-02-07 Tom Parker <palfrey@tevp.net>
458
459 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
460 pointer.
461
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004622007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
463
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000464 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
465 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000466 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000467 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
468 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
469 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
470 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000471
472 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
473 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000474 * builds/mac/ftmac.c: Ditto.
475
4762007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
477
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000478 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000479 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000480 #include <ftmac.c>.
481
4822007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
483
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000484 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
485 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
486 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
487 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
488 FT_GetFilePath_From_Mac_ATS_Name.
489 * builds/mac/ftmac.c: Ditto.
490
4912007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
492
Werner Lembergdcbb7082007-02-08 08:54:09 +0000493 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000494 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
495 for passing to FT_New_Face_From_FSSpec.
496
4972007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
498
Werner Lembergdcbb7082007-02-08 08:54:09 +0000499 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000500 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000501
502 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
503 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000504 * builds/mac/ftmac.c (OS_INLINE): Ditto.
505
Werner Lemberg313d7772007-02-01 08:10:45 +00005062007-02-01 Werner Lemberg <wl@gnu.org>
507
508 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
509 Explain why applications shouldn't use it. Found by Alexei.
510
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005112007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000512
513 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
514 message.
515
516 * src/gxvalid/gxvmort1.c
517 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
518 message.
519
Werner Lemberg53935932007-01-31 08:53:02 +00005202007-01-31 Werner Lemberg <wl@gnu.org>
521
522
523 * Version 2.3.1 released.
524 =========================
525
526
527 Tag sources with `VER-2-3-1-FINAL'.
528
529 * builds/win32/visualc/freetype.dsp,
530 builds/win32/visualc/freetype.vcproj: s/230/231/.
531 * builds/win32/visualc/index.html: s/221/231/.
532
533 * vms_make.com: Add `ftgasp'.
534
David Turnera7ee6082007-01-30 10:33:53 +00005352007-01-30 David Turner <david@freetype.org>
536
Werner Lemberg53935932007-01-31 08:53:02 +0000537 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000538
Werner Lemberg53935932007-01-31 08:53:02 +0000539 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000540
Werner Lemberg25d592a2007-03-09 07:59:35 +0000541 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000542 s/2.3.0/2.3.1/.
543
544 * builds/unix/configure.raw (version_info): Set to 9:12:3.
545
546
547 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
548 (af_loader_load_g): Disable the warper (i.e., the light hinting
549 improvements) to make a 2.3.1 bugfix release before introducing a
550 new feature. This should give us more time to tune and improve the
551 warper for the next release.
552
553 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000554
David Turnerd91eebd2007-01-26 15:05:41 +00005552007-01-25 David Turner <david@freetype.org>
556
Werner Lembergbf241762007-01-26 16:08:49 +0000557 For light auto-hinting, improve glyph advance widths and resurrect
558 normal/full hinting to its normal quality.
559
560 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
561 and `xmax_delta'.
562 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
563 and `xmax_delta'.
564
565 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
566 preprocessor conditional with if-clause, handling both light and
567 normal mode.
568
569 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
570 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000571
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005722007-01-25 Werner Lemberg <wl@gnu.org>
573
574 * docs/release: Updated -- Savannah uses a new uploading scheme.
575
David Turnera42567b2007-01-25 12:23:37 +00005762007-01-25 David Turner <david@freetype.org>
577
Werner Lembergd7855662007-01-25 13:53:56 +0000578 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000579
Werner Lembergd7855662007-01-25 13:53:56 +0000580 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
581 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
582 functions.
David Turnera42567b2007-01-25 12:23:37 +0000583
Werner Lembergd7855662007-01-25 13:53:56 +0000584 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000585
Werner Lembergb1be9e82007-01-25 11:50:00 +00005862007-01-25 Werner Lemberg <wl@gnu.org>
587
588 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000589 correctly in a sanity check. Since this function is only used to
590 load local and global functions, any charstring that called the last
591 local/global function would fail otherwise. This fixes Savannah bug
592 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000593
594 * docs/CHANGES: Document it.
595
David Turnerb6de8d12007-01-23 15:51:50 +00005962007-01-23 David Turner <david@freetype.org>
597
Werner Lembergb1be9e82007-01-25 11:50:00 +0000598 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
599 prevented compilation when disabling both the unpatented and the
600 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000601
Werner Lembergb1be9e82007-01-25 11:50:00 +0000602
603 Fix and enable the warper to improve `light' hinting mode. This is
604 not necessarily a final version, but it seems to work well.
605
606 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
607 Disable code.
608 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
609 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
610
611 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
612 (af_warper_compute_line_best): Fix array size of `scores'.
613 (af_warper_compute): Better handling of border cases.
614 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
615 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000616
Werner Lemberg011d1112007-01-21 09:36:00 +00006172007-01-21 Werner Lemberg <wl@gnu.org>
618
Werner Lemberg42b63b22007-01-21 21:01:33 +0000619 * ChangeLog: Split off older entries into...
620 * ChangeLog.22: This new file.
621
6222007-01-21 Werner Lemberg <wl@gnu.org>
623
Werner Lemberg555258f2007-01-21 09:46:37 +0000624 * docs/CHANGES: Document SHZ fix.
625
6262007-01-21 George Williams <gww@silcom.com>
627
628 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
629 points.
630
6312007-01-21 Werner Lemberg <wl@gnu.org>
632
Werner Lemberg011d1112007-01-21 09:36:00 +0000633 * src/sfnt/ttmtx.c (tt_face_get_metrics)
634 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
635
Werner Lemberg87a5a432007-01-17 12:44:39 +00006362007-01-17 Werner Lemberg <wl@gnu.org>
637
Werner Lembergb8003292007-01-17 12:56:25 +0000638
639 * Version 2.3.0 released.
640 =========================
641
642
643 Tag sources with `VER-2-3-0-FINAL'.
644
6452007-01-17 Werner Lemberg <wl@gnu.org>
646
Werner Lemberg87a5a432007-01-17 12:44:39 +0000647 * docs/release: Updated.
648
David Turner22122722007-01-16 20:06:44 +00006492007-01-16 David Turner <david@freetype.org>
650
Werner Lemberg87a5a432007-01-17 12:44:39 +0000651 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
652 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
653 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
654 warnings.
David Turner22122722007-01-16 20:06:44 +0000655
Werner Lemberg267e1d72007-01-15 07:48:09 +00006562007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
657
658 * builds/amiga/makefile, builds/amiga/makefile.os4,
659 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
660
661 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
662
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006632007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
664
665 Fix various compiler warnings.
666
667 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
668 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
669 s/index/strike_index/.
670 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
671
672 * src/gxvalid/gxvmorx5.c
673 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
674
675 * src/truetype/ttinterp.c (Compute_Point_Displacement),
676 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
677 uninitialized variables.
678
Werner Lemberg6164a9d2007-01-13 23:01:36 +00006792007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
680
681 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
682
Werner Lemberg281c1482007-01-13 22:50:51 +00006832007-01-13 Werner Lemberg <wl@gnu.org>
684
685 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
686 versions up to 0x3FF without complaining.
687
Werner Lembergac250b22007-01-13 14:01:36 +00006882007-01-13 Derek Clegg <dclegg@apple.com>
689
690 Add FT_Get_PS_Font_Info interface to CFF driver.
691
692 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
693 (CFF_FontRec): Add `font_info' field.
694
695 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
696 (cff_font_done): Free font->font_info if necessary.
697
698 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
699 (cff_service_ps_info): Register cff_ps_get_font_info.
700
Werner Lemberg23df31a2007-01-13 08:45:00 +00007012007-01-13 Werner Lemberg <wl@gnu.org>
702
703 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
704 with C++ compiler.
705
706 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
707 af_glyph_hints_dump_edges): Ditto.
708
709 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
710 `modules.cfg').
711
712 * src/sfnt/ttsbit0.h: Remove.
713
714 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
715
Werner Lemberg27cf9de2007-01-13 07:34:23 +00007162007-01-12 David Turner <david@freetype.org>
717
718 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
719 bug in the bitmap emboldener if the pitch of the source bitmap is
720 much larger than its width.
721
722 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
723 compilation warning.
724
Werner Lemberg6d96d312007-01-12 10:30:19 +00007252007-01-12 Werner Lemberg <wl@gnu.org>
726
727 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
728 `automake' CVS module from sources.redhat.com.
729
Werner Lemberg17432b52007-01-12 09:28:44 +00007302007-01-11 Werner Lemberg <wl@gnu.org>
731
732 * src/type1/t1load.c (is_space): Removed.
733 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
734 (parse_charstrings): Use IS_PS_TOKEN.
735
736
737 * autogen.sh: Avoid bash specific syntax.
738
David Turner038ace22007-01-11 15:00:59 +00007392007-01-11 David Turner <david@freetype.org>
740
Werner Lemberg17432b52007-01-12 09:28:44 +0000741 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000742
Werner Lemberg17432b52007-01-12 09:28:44 +0000743 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000744
Werner Lemberg17432b52007-01-12 09:28:44 +0000745 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
746 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000747 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000748
Werner Lemberg17432b52007-01-12 09:28:44 +0000749 * autogen.sh: Small fix to get it working on Mac OS X properly:
750 The issue is that GNU libtool is called `glibtool' on this platform,
751 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000752
David Turner2628ea92007-01-10 13:15:56 +00007532007-01-10 David Turner <david@freetype.org>
754
Werner Lemberg17432b52007-01-12 09:28:44 +0000755 * all-sources: Tag all sources with VER-2-3-0-RC1 and
756 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000757
Werner Lemberg17432b52007-01-12 09:28:44 +0000758 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
759 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
760 version number to 2.3.0.
761
762 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
763 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000764
765 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000766 include/freetype/ftlcdfil.h: Update reference documentation with
767 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000768
Werner Lemberg17432b52007-01-12 09:28:44 +0000769 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
770 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000771
Werner Lembergbf02d392007-01-10 07:07:37 +00007722007-01-10 Derek Clegg <dclegg@apple.com>
773
774 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
775 values.
776
David Turnerf48b60e2007-01-08 15:15:32 +00007772007-01-08 David Turner <david@freetype.org>
778
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000779 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000780
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000781 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
782 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000783 corresponding to a given character pixel size.
784
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000785 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
786 `gasp' table, in order to avoid potential problems with later
787 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000788
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000789 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
790 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000791
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000792 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
793 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
794 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
795 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000796
Werner Lemberge6b6f372007-01-07 00:06:47 +00007972007-01-07 Werner Lemberg <wl@gnu.org>
798
Werner Lembergb8004d22007-01-07 09:13:38 +0000799 * src/cid/cidparse.c (cid_parser_new): Improve error message for
800 Type 11 fonts.
801 Scan for `/sfnts' token.
802
8032007-01-07 Werner Lemberg <wl@gnu.org>
804
805 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000806
Werner Lembergbe5f7972007-01-06 07:51:48 +00008072007-01-06 Werner Lemberg <wl@gnu.org>
808
809 * src/cff/cffload.c (cff_index_init): Remove unused variable.
810 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
811
David Turnera8cf42b2007-01-04 16:46:46 +00008122007-01-04 David Turner <david@freetype.org>
813
Werner Lembergf6294392007-01-06 07:47:45 +0000814 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
815 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000816
Werner Lembergf6294392007-01-06 07:47:45 +0000817
818 Do not allocate interpreter-specific tables in memory if we are not
819 going to load glyphs with the bytecode interpreter anyway.
820
821 * src/truetype/ttgload.c (tt_loader_init): Load execution context
822 only if glyph is hinted.
823 Updated.
824 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
825 and `cvs_ready'.
826 Add `tt_size_ready_bytecode' declaration.
827 * src/truetype/ttobjs.c (tt_size_done_bytecode,
828 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
829 (tt_size_init): Move most code into `tt_size_init_bytecode'.
830 (tt_size_done): Move most code into `tt_size_done_bytecode'.
831 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000832
David Turner91a34022007-01-05 14:47:08 +0000833
Werner Lembergf6294392007-01-06 07:47:45 +0000834 Don't extract the metrics table from the SFNT font file. Instead,
835 reparse it on each glyph load. The runtime difference is not
836 noticeable, and it can save a lot of heap memory when memory-mapped
837 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000838
Werner Lembergf6294392007-01-06 07:47:45 +0000839 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
840 `horz_metrics_offset' and `vert_metrics_ofset'.
841 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
842 Updated.
843
844
845 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
846
847
848 Do not load the CFF index offsets into memory, since this wastes a
849 *lot* of heap memory with large Asian CFF fonts. There is no
850 significant performance loss.
851
852 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
853 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
854 `data_size'.
855 (CFF_CharsetRec): Add field `num_glyphs'.
856
857 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
858 cff_charset_cid_to_gindex): New functions.
859 (cff_new_index): Renamed to...
860 (cff_index_init): This. Update all callers.
861 Updated -- some code has been moved to `cff_index_load_offsets'.
862 (cff_done_index): Renamed to...
863 (cff_index_done): This. Update all callers.
864 (cff_index_get_pointers, cff_index_access_element): Updated to use
865 stream offsets.
866 (cff_charset_compute_cids): Set `num_glyphs' field.
867 (cff_encoding_load): Updated.
868
869 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000870
8712007-01-04 David Turner <david@freetype.org>
872
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000873 * docs/INSTALL.UNIX: Simplify some parts, add reference to
874 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000875
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000876 * README.CVS: Add common problem description and solution
877 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000878
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000879 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000880
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000881 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000882
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000883 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000884
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000885 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
886 (TWorker): This.
887 Remove `count_table' and `memory'.
888 Make `grays' a pointer.
889 (TRaster): New structure.
890 (count_table): New static array.
891 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
892 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
893 ft_black_set_mode, ft_black_render): Updated.
894 (ft_black_init): Don't initialize `count_table'.
895 (ft_black_reset): Use the render pool. This saves about 6KB of
896 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000897
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000898 * src/smooth/ftgrays.c (TRaster): Replaced with...
899 (TWorker): This.
900 Remove `memory'.
901 (TRaster): New structure.
902
903 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
904 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
905 gray_render_span, gray_raster_render): Updated.
906 (gray_raster_reset): Use the render pool. This saves about 6KB of
907 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000908
David Turner8a6c44e2007-01-04 17:03:11 +0000909 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
910 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000911 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
912 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
913 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000914
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000915 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
916 Remove a typo that results in no hinting and a memory leak with some
917 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000918
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000919 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000920 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000921 CFF_Faces in it. We need to close all faces before destroying the
922 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000923
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00009242007-01-02 Werner Lemberg <wl@gnu.org>
925
926 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
927 Remove compiler warning.
928
David Turner9207e002007-01-02 16:58:13 +00009292007-01-02 David Turner <david@freetype.org>
930
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000931 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000932
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009332006-12-31 Masatake YAMATO <jet@gyve.org>
934
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000935 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
936 function.
937 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000938 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000939 `gxv_kern_subtable_fmt0_pairs_validate'.
940
David Turner115b4422006-12-22 11:37:05 +00009412006-12-22 David Turner <david@freetype.org>
942
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000943 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
944 warnings.
David Turner115b4422006-12-22 11:37:05 +0000945
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000946 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
947 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000948
Werner Lemberg4755bf72006-12-16 08:58:44 +00009492006-12-16 Anders Kaseorg <anders@kaseorg.com>
950
951 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
952 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
953
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009542006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
955
Werner Lemberg9b774e22007-01-16 06:11:27 +0000956 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000957 sync with the modification by Jens Claudius on 2006-08-22; cf.
958 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 +0000959
9602006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
961
962 * src/base/ftmac.c: Specialized for Mac OS X only.
963 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
964 * builds/unix/configure.raw: Ditto. When explicit switches for
965 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
966 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
967
9682006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
969
970 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
971 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
972 instead of src/base/ftmac.c
973 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
974 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
975 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
976 that cannot be built at present.
977
9782006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
979
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000980 * src/base/ftobjs.c: Improvement of resource fork handler for
981 POSIX, cf.
982 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000983 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
984 format or .dfont, to simulate the face index number counted by ftmac.c.
985 (IsMacResource): Return the number of scalable faces correctly.
986
Werner Lembergec5b4502006-12-10 07:51:38 +00009872006-12-10 Werner Lemberg <wl@gnu.org>
988
989 * builds/toplevel.mk (version): Protect against `distclean' target.
990
Werner Lembergb26b3142006-12-09 20:01:43 +00009912006-12-09 Werner Lemberg <wl@gnu.org>
992
993 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
994 or `type'.
995
996 * builds/freetype.mk (version): Extracted from freetype.h, using
997 GNU make's built-in string functions.
998 (refdoc): Use $(version) instead of static version number.
999
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010002006-12-08 Werner Lemberg <wl@gnu.org>
1001
1002 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1003
Werner Lemberg15c29502006-12-09 07:29:54 +000010042006-12-08 Vladimir Volovich <vvv@vsu.ru>
1005
1006 * src/tools/apinames (State): Remove final comma in structure -- xlc
1007 v5 under AIX 4.3 doesn't like this.
1008
David Turnerdbf3b432006-12-07 21:18:09 +000010092006-12-07 David Turner <david@freetype.org>
1010
Werner Lemberg256a3512006-12-08 06:49:33 +00001011 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1012 to the spacing of auto-fitted glyphs. This only impacts rare
1013 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001014
Werner Lemberg11171312006-12-03 09:43:40 +000010152006-12-03 Werner Lemberg <wl@gnu.org>
1016
1017 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1018
Werner Lemberg960ba592006-12-01 08:20:47 +000010192006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001020
Werner Lemberg960ba592006-12-01 08:20:47 +00001021 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1022 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1023 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001024
David Turner80658e52006-11-28 08:09:20 +00001025
Werner Lemberg960ba592006-12-01 08:20:47 +00001026 * include/freetype/ftxf86.h: Fix and extend comment so that it
1027 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001028
Werner Lemberg960ba592006-12-01 08:20:47 +00001029 * include/freetype/ftchapters.h: Add `font_format' section.
1030
1031
1032 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1033 to TOC in index page.
1034
10352006-11-28 David Turner <david@freetype.org>
1036
1037 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1038 trying to render into a zero-width/height bitmap, not an error code.
1039
1040 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1041
1042 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1043 ones instead.
1044
1045 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1046 variable.
David Turner80658e52006-11-28 08:09:20 +00001047
Werner Lemberg8636c292006-11-26 22:28:13 +000010482006-11-26 Pierre Hanser <hanser@club-internet.fr>
1049
1050 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1051
Werner Lemberg960ba592006-12-01 08:20:47 +000010522006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001053
Werner Lemberg960ba592006-12-01 08:20:47 +00001054 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1055 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1056 Add stubs to link the `ftgrid' test program when debugging is
1057 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001058
Werner Lemberg960ba592006-12-01 08:20:47 +000010592006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001060
1061 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001062 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1063
1064 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1065 Emit more sensible information.
1066
1067 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1068
1069 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1070 rounding of blue values.
1071 (af_latin_hints_compute_segments): Hint segment heights.
1072 (af_latin_hints_link_segments): Reduce `len_score' value.
1073 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1074 value and use `height' member for comparisons.
1075 (af_latin_hint_edges): Extend logging message.
1076 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001077
Werner Lemberg91959bf2006-11-22 10:36:55 +000010782006-11-22 Werner Lemberg <wl@gnu.org>
1079
1080 Fix Savannah bug #15553.
1081
1082 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1083 program after a change from mono to grayscaling (and vice versa).
1084 Use correct constant for comparison to get `exec->grayscale'.
1085
Werner Lemberg913a3652006-11-19 09:19:17 +000010862006-11-18 Werner Lemberg <wl@gnu.org>
1087
1088 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001089 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001090 This patch fixes Savannah bug #18301.
1091
1092 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1093 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1094 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1095 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1096 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1097 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1098 (FNT_Load_Glyph): Check validity of `glyph_index'.
1099
David Turner7bab6ae2006-11-13 11:25:06 +000011002006-11-13 David Turner <david@freetype.org>
1101
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001102 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1103 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001104
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001105 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1106 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1107 when building the library to change the default LCD filter to be
1108 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001109
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001110 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001111
David Turner8765c712006-11-10 16:49:42 +000011122006-11-10 David Turner <david@freetype.org>
1113
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001114 * src/smooth/ftsmooth.c: API change for the LCD
1115 filter. The FT_LcdFilter value is an enumeration describing which
1116 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1117 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1118 algorithm which produces strong color fringes for everything
1119 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001120
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001121 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1122 second parameter to an enum type.
1123
1124 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1125 (_ft_lcd_filter): Rename to...
1126 (_ft_lcd_filter_fir): This.
1127 Update parameters.
1128 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1129 (FT_Library_Set_LcdFilter): Update parameters.
1130 Handle new filter modes.
1131
1132 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1133 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1134 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1135 callback and update other fields.
1136
1137 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1138 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1139 Other minor improvements.
1140
1141 * src/autofit/aflatin.c: Various tiny improvements that drastically
1142 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1143 (af_latin_hints_compute_edges): Fix typo.
1144 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001145
David Turner4e9cc3c2006-11-09 16:31:52 +000011462006-11-09 David Turner <david@freetype.org>
1147
Werner Lemberg49c77a82006-11-09 21:51:57 +00001148 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1149 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001150
Werner Lemberg5e430892006-11-07 09:35:03 +000011512006-11-07 Zhe Su <james.su@gmail.com>
1152
1153 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1154 also.
1155
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011562006-11-03 Werner Lemberg <wl@gnu.org>
1157
1158 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1159
David Turner40604742006-11-02 16:37:35 +000011602006-11-02 David Turner <david@freetype.org>
1161
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001162 Add a few tweaks to better handle serif fonts.
1163 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001164
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001165 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1166 segments that are less than 1.5 pixels high. This gets rid of
1167 *many* corner cases with serifs.
1168 (af_latin_align_linked_edge): Add logging message.
1169 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1170 Add logging messages.
1171 Handle AF_EDGE_FLAG flag specially.
1172
1173 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1174 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1175
1176 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1177 Update external declarations.
1178 (af_corner_orientation, af_corner_is_flat): Replaced by...
1179
1180 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1181 ft_corner_is_flat): These declarations.
1182
1183 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1184 Comment out. Replaced by...
1185
1186 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1187 These functions. Update all callers.
1188 (FT_Add64) [!FT_LONG64]: Simplify.
1189
1190 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1191 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1192 production of garbage by missing lots of segments.
1193
1194 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1195
1196 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1197 [AF_DEBUG]: Set _af_debug_hints.
1198
1199
1200 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1201 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1202 and ft_corner_orientation.
1203
1204
1205 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001206
Werner Lemberge88c5262006-10-24 05:46:26 +000012072006-10-24 Werner Lemberg <wl@gnu.org>
1208
1209 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1210
1211 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1212 as argument.
1213
David Turnera1861392006-10-23 16:00:59 +000012142006-10-23 Zhe Su <zsu@novell.com>
1215
Werner Lemberg715e96e2006-10-24 05:28:45 +00001216 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1217 better deal with broken Asian fonts with strange glyphs, having
1218 self-intersections and other peculiarities. The used algorithm is
1219 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001220
David Turnere140f142006-10-23 08:56:57 +000012212006-10-23 David Turner <david@freetype.org>
1222
Werner Lemberg715e96e2006-10-24 05:28:45 +00001223 Speed up the CFF font loader. With some large CFF fonts,
1224 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001225
Werner Lemberg715e96e2006-10-24 05:28:45 +00001226 * src/cff/cffload.c (cff_get_offset): Removed.
1227 (cff_new_index): Inline functionality of `cff_get_offset'.
1228 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1229 (cff_charset_done): Call `cff_charset_free_cids'.
1230 (cff_charset_load): Call `cff_charset_compute_cids'.
1231 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1232
1233 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1234 with FT_NEXT_XXX.
1235
1236
1237 Speed up the Postscript hinter, with more than 100% speed increase
1238 on my machine.
1239
1240 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1241 psh_corner_orientation): New functions.
1242 (psh_glyph_compute_inflections): Merge loops for efficiency.
1243 Use `psh_corner_orientation'.
1244 (psh_glyph_init): Use `psh_corner_is_flat'.
1245 (psh_hint_table_find_strong_point): Renamed to...
1246 (psh_hint_table_find_strong_points): This.
1247 Rewrite, adding argument to handle all points at once.
1248 Update all callers.
1249 (PSH_MAX_STRONG_INTERNAL): New macro.
1250 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001251
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012522006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1253
1254 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001255 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001256
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012572006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1258
1259 * docs/INSTALL.CROSS: New document file for cross-building.
1260
1261 * builds/unix/configure.raw: Preliminary cross-building support.
1262 Find native C compiler and pass it by CC_BUILD, and
1263 find suffix for native executable and pass it by EXEEXT_BUILD.
1264 Also suffix for target executable is passed by EXEEXT.
1265
Werner Lembergb9e6d692006-10-15 08:58:40 +00001266 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1267 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001268 CC_BUILD and EXEEXT_BUILD.
1269
Werner Lembergb9e6d692006-10-15 08:58:40 +00001270 * builds/exports.mk (APINAMES_EXE): Change the extension for
1271 apinames from the suffix for target (E) to that for building host
1272 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001273
Werner Lemberg82a07e92006-10-12 06:20:44 +000012742006-10-12 Werner Lemberg <wl@gnu.org>
1275
1276 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1277 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1278 which reference those files.
1279
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000012802006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1281
Werner Lembergb9e6d692006-10-15 08:58:40 +00001282 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1283 embedded in freetype2.pc and freetype-config. Use it to record
1284 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001285
1286 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1287
1288 * builds/unix/freetype-config.in: Ditto.
1289
Werner Lemberg28e17d92006-10-11 17:27:47 +000012902006-10-11 Werner Lemberg <wl@gnu.org>
1291
1292 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1293 development.
1294
Jens Claudius336d2292006-10-03 08:53:37 +000012952006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1296
1297 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1298 argument to ft_setjmp.
1299
1300 * include/freetype/internal/ftvalid.h: Add comment that
1301 ft_validator_run must not be used.
1302
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013032006-10-01 Werner Lemberg <wl@gnu.org>
1304
1305 * src/base/ftbase.c: Undo change from 2006-09-30.
1306
1307 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1308
13092006-09-30 David Turner <david@freetype.org>
1310
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001311 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1312 s/unpatented_hinting/ignore_unpatented_hinter/.
1313 Update all callers.
1314
1315 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1316 auto-hinting shall be used or not.
1317
1318 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001319
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013202006-09-30 Werner Lemberg <wl@gnu.org>
1321
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001322 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1323 in use).
1324
1325 * src/base/ftbase.c: Include `ftlcdfil.c'.
1326
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013272006-09-29 Werner Lemberg <wl@gnu.org>
1328
1329 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1330 overlapping segments. Bug reported by Stefan Koch.
1331
David Turnerad830712006-09-27 16:20:59 +000013322006-09-28 David Turner <david@freetype.org>
1333
Werner Lemberg2c002e12006-09-29 21:31:53 +00001334 Fix a bug in the automatic unpatented hinting support which prevents
1335 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001336
Werner Lemberg2c002e12006-09-29 21:31:53 +00001337 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1338 s/force_autohint/unpatented_hinting/. Update all callers.
1339
1340 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1341
1342 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001343
David Turner8a317cf2006-09-27 07:52:48 +000013442006-09-27 David Turner <david@freetype.org>
1345
Werner Lemberg2c002e12006-09-29 21:31:53 +00001346 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001347
David Turner8a317cf2006-09-27 07:52:48 +00001348
David Turnere140f142006-10-23 08:56:57 +00001349 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001350 In a default build, the function `FT_Library_SetLcdFilter' returns
1351 `FT_Err_Unimplemented_Feature'; you need to #define
1352 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1353 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001354
Werner Lemberg2c002e12006-09-29 21:31:53 +00001355 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001356
Werner Lemberg2c002e12006-09-29 21:31:53 +00001357 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1358 typedef.
1359 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1360 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001361
Werner Lemberg2c002e12006-09-29 21:31:53 +00001362 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1363 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001364
Werner Lemberg2c002e12006-09-29 21:31:53 +00001365 Handle subpixel rendering.
1366 Simplify function.
1367 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1368 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1369
1370 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1371 pointing to <freetype/ftlcdfil.h>.
1372
1373 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1374 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1375
1376 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001377
Werner Lemberge20df4a2006-09-27 06:29:21 +000013782006-09-26 David Bustin
1379
1380 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1381 correctly. Reported as Savannah bug #17843.
1382
David Turner6f8c6222006-09-26 15:42:44 +000013832006-09-26 David Turner <david@freetype.org>
1384
Werner Lemberg110246c2006-09-26 21:55:44 +00001385 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1386 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1387 horizontal and vertical hinting for the purpose of debugging the
1388 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001389
Werner Lemberg110246c2006-09-26 21:55:44 +00001390 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1391 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001392
Werner Lemberg110246c2006-09-26 21:55:44 +00001393 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1394
1395 * include/freetype/config/ftoption.h, devel/ftoption.h
1396 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1397 we want to compile LCD-optimized rendering code (à la ClearType) or
1398 not. The macro *must* be disabled in default builds of the library
1399 for patent reasons.
1400
1401 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1402 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1403 isn't defined at compile time. This only changes the content of the
1404 rendered glyph to match the one of normal gray-level rendering,
1405 hence clients should not need to be modified.
1406
1407 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001408
Werner Lemberg745ff2c2006-09-19 05:48:02 +000014092006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1410
1411 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1412 LWFN fails and both are available.
1413
David Turnerf3050052006-09-11 12:00:32 +000014142006-09-11 David Turner <david@freetype.org>
1415
Werner Lembergf9644552006-09-12 13:48:10 +00001416 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1417 report their English names through an Apple Roman
1418 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001419
Werner Lembergf9644552006-09-12 13:48:10 +00001420 If the font uses another name entry with language_id == English, it
1421 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001422
Werner Lembergf9644552006-09-12 13:48:10 +00001423 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1424 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001425
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014262006-09-05 Werner Lemberg <wl@gnu.org>
1427
1428 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001429 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001430 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1431 `HAN NOM B.ttf').
1432
1433 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1434
David Turner772e55d2006-09-05 09:45:15 +000014352006-09-05 David Turner <david@freetype.org>
1436
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001437 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001438
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001439 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1440 (TRaster): Remove `count_ex' and `count_ey'.
1441 (gray_find_cell): Remove 2nd and 3rd argument.
1442 (gray_alloc_cell): Merged with `gray_find_cell'.
1443 (gray_record_cell): Simplify.
1444 (gray_set_cell): Rewrite.
1445 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1446 (gray_render_span): Don't use FT_MEM_SET for small values.
1447 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1448 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1449 bitmap scanline.
1450 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001451
David Turneraa557a92006-09-04 16:42:44 +000014522006-09-04 David Turner <david@freetype.org>
1453
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001454 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1455 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001456
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014572006-09-03 Werner Lemberg <wl@gnu.org>
1458
1459 * devel/ftoption.h: Synchronize with
1460 include/freetype/config/ftoption.h.
1461
1462 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1463 variable declaration.
1464 (gray_convert_glyph): Fix compiler warnings.
1465
David Turner6d79f212006-09-01 14:09:35 +000014662006-09-01 David Turner <david@freetype.org>
1467
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001468 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1469 to recognize a few fonts that require the automatic unpatented
1470 loader.
David Turnerbd502952006-09-01 19:05:24 +00001471
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001472 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1473 rasterizer. The speed improvement is between 15% and 25%, depending
1474 on the font data.
1475
1476 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1477 (TCell): Redefine.
1478 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1479 (gray_init_cells): Updated.
1480 (gray_find_cell, gray_alloc_cell): New functions.
1481 (gray_record_cell): Rewritten to use `gray_find_cell' and
1482 `gray_alloc_cell'.
1483 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1484 QSORT_THRESHOLD):
1485 Removed.
1486 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1487 gray_dump_cells): Removed.
1488 (gray_sweep): Rewritten.
1489 (gray_convert_glyph): Rewrite code which used one of the sorting
1490 functions.
1491 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001492
Werner Lembergd898aed2006-08-29 09:50:34 +000014932006-08-29 Dr. Werner Fink <werner@suse.de>
1494
1495 * configure: Make it possible to handle configure options which
1496 have strings containing spaces.
1497
14982006-08-27 David Turner <david@freetype.org>
1499
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001500 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1501 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1502 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1503
1504 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1505 src/truetype/truetype.c, src/truetype/ttdriver.c,
1506 src/truetype/ttgload.c, src/truetype/ttgload.h,
1507 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1508 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1509 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1510
1511 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1512 member `force_autohint'.
1513
1514 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1515
1516 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1517 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001518
Jens Claudiusa787f452006-08-27 11:26:18 +000015192006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1520
1521 Fix miscellaneous compiler warnings.
1522
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001523 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1524 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001525
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001526 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1527 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1528 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001529
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001530 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1531 volatileness of argument to ft_longjmp. Spotted by Werner
1532 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001533
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001534 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1535 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001536
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001537 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1538 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001539
Werner Lembergc4c35b72006-08-27 08:03:46 +000015402006-08-27 Werner Lemberg <wl@gnu.org>
1541
1542 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1543 Reported by Jens.
1544
Jens Claudius088e44e2006-08-22 14:24:30 +000015452006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001546
Jens Claudius088e44e2006-08-22 14:24:30 +00001547 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001548 about addresses of volatile objects passed as function arguments as
1549 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001550
Werner Lembergc4c35b72006-08-27 08:03:46 +00001551 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1552 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001553
1554 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1555 argument `table' a pointer to a volatile object.
1556
1557 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1558 argument `table' a pointer to a volatile object.
1559
Jens Claudius2652bd52006-08-18 17:20:37 +000015602006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1561
1562 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1563 variable `_sfnt' as volatile since it must keep its value across
1564 a call to ft_setjmp.
1565 (gxv_validate): Same for local variables `memory' and `valid'.
1566 (classic_kern_validate): Same for local variables `memory',
1567 `ckern', and `valid'.
1568
1569 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1570 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1571 `jstf', and 'valid'.
1572
1573 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1574 local variable `cmap'.
1575
David Turner9fbfc6a2006-08-16 09:11:31 +000015762006-08-16 David Turner <david@freetype.org>
1577
Werner Lemberg12342992006-08-19 11:18:09 +00001578 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1579 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001580
Werner Lemberg12342992006-08-19 11:18:09 +00001581 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1582 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001583
David Turner33f5f242006-08-16 16:50:55 +00001584
Werner Lemberg12342992006-08-19 11:18:09 +00001585 Improvements to native TrueType hinting. This is a first try,
1586 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1587
1588 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1589 `extra_points2'.
1590
1591 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1592 `orus'.
1593
1594 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1595 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1596 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1597 handle `extra_points2'.
1598
1599 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1600 Remove compiler warning.
1601 (cur_to_arg): Remove macro.
1602 (TT_Hint_Glyph): Updated.
1603 (TT_Process_Simple_Glyph): Handle `orus'.
1604
1605 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1606 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1607 (LOC_Ins_IUP): Renamed to...
1608 (IUP_WorkerRec): This.
1609 Add `orus' member.
1610 (Shift): Renamed to...
1611 (_iup_worker_shift): This.
1612 Updated.
1613 (Interp): Renamed to...
1614 (_iup_worker_interpolate): This.
1615 Updated to handle `orus'.
1616 (Ins_IUP): Updated.
1617
1618 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1619 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001620
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000016212006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1622
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001623 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001624 build ftvalid in ft2demos. This has been inadvertedly changed
1625 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001626
16272006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1628
Werner Lemberg12342992006-08-19 11:18:09 +00001629 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1630 Jens:
1631 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001632
Werner Lemberg12342992006-08-19 11:18:09 +00001633 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1634 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001635
1636 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1637
Jens Claudius9950adc2006-08-13 12:14:36 +000016382006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1639
Werner Lemberg12342992006-08-19 11:18:09 +00001640 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1641 T1_TOKEN_TYPE_KEY.
1642 (T1_FieldRec): Add `dict'.
1643 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1644 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1645 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001646
Werner Lemberg12342992006-08-19 11:18:09 +00001647 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1648 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001649
1650 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1651
1652 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001653 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1654 not T1_TOKEN_TYPE_ANY.
1655 (ps_parser_load_field): Make sure a token that should be a string or
1656 name is really a string or name.
1657 Avoid memory leak if a keyword has been already encountered and its
1658 value is overwritten.
1659 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1660 T1_FIELD_XXX.
1661 (parse_dict): Ignore keywords that occur in the wrong dictionary
1662 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001663
Werner Lemberg12342992006-08-19 11:18:09 +00001664 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1665 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001666
Werner Lemberg12342992006-08-19 11:18:09 +00001667 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1668 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001669
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016702006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1671
1672 Move creation of field `buildchar' of T1_DecoderRec out of
1673 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1674 of it.
1675
1676 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1677 and `T1_Compute_Max_Advance'.
1678
1679 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1680 Remove field `face', add `len_buildchar'.
1681
1682 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1683 field `buildchar'.
1684
1685 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1686 finisher for T1_Decoder.
1687 (cid_slot_load_glyph): Do not ignore failure when initializing the
1688 T1_Decoder.
1689
1690 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1691 Updated.
1692 (t1_decoder_init): Remove initialization of fields `buildchar' and
1693 `len_buildchar'.
1694 (t1_decoder_done): Remove deallocation of field `buildchar'.
1695
1696 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1697 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1698 T1_Decoder.
1699 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1700 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1701 case of error.
1702
1703 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1704 `buildchar' of T1_FaceRec.
1705
1706 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1707 `buildchar' of T1_FaceRec.
1708
Werner Lemberg1a380e02006-07-14 18:28:08 +000017092006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1710
1711 * freetype2/include/freetype/internal/psaux.h: New macros
1712 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1713 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1714 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1715 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1716 (T1_DecoderRec): New fields `buildchar' and `face'.
1717 (IS_PS_TOKEN): New macro.
1718
1719 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1720 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1721
1722 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1723 `default_design_vector' and `num_default_design_vector'.
1724
1725 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1726 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1727 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1728
1729 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1730 `token' argument to be NULL if we want only to count the number of
1731 tokens.
1732 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1733 want to skip the array.
1734 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1735 want to skip the array.
1736
1737 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1738 support for (partially commented out) othersubrs 19-25, 27, and 28.
1739 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1740 (t1_decoder_done): Release new field `buildchar'.
1741
1742 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1743 functions.
1744 (t1_keywords): Register them.
1745 (t1_allocate_blend): Updated.
1746 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1747 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1748 (parse_dict): Remove `keyword_flags' argument.
1749 Use new macro IS_PS_TOKEN.
1750 Changed function so that later PostScript definitions override
1751 earlier ones.
1752 (t1_init_loader): Initialize new field `keywords_encountered'.
1753 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1754 `len_buildchar'.
1755 Remove `keywords_flags'.
1756
1757 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1758 `keywords_encountered'.
1759 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1760
1761 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1762 New entries for parsing /NDV, /CDV, and /DesignVector.
1763
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017642006-07-07 Werner Lemberg <wl@gnu.org>
1765
1766 Add many checks to protect against malformed PCF files.
1767
1768 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1769 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1770
1771 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1772 data and check that tables don't overlap (using a simple
1773 bubblesort).
1774 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1775 New macros which give the size of data structures in the data
1776 stream.
1777 (pcf_get_properties): Use rough estimates to get array size limits.
1778 Assign `face->nprops' and `face->properties' earlier so that a call
1779 to PCF_Face_Done can do the clean-up in case of error.
1780 Protect against invalid string offsets.
1781 (pcf_get_metrics): Clean up code.
1782 Adjust tracing message levels.
1783 Use rough estimate to get array size limit.
1784 (pcf_get_bitmaps): Clean up code.
1785 Adjust tracing message levels.
1786 Use rough estimates to get offset limits.
1787 (pcf_get_encodings): Adjust tracing message level.
1788 (pcf_get_accel): Clean up code.
1789
Werner Lemberg8eb05252006-06-27 06:20:01 +000017902006-06-26 Werner Lemberg <wl@gnu.org>
1791
1792 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1793 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1794
Werner Lemberg24703f82006-06-26 19:12:51 +000017952006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1796
1797 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1798 (t1_decoder_parse_charstrings): Operator with
1799 opcode 15 pops its two arguments.
1800 Handle the case where the pops of an othersubr may be part of a
1801 subroutine.
1802 Handle unknown othersubrs gracefully: count their operands and let
1803 the following pop operators push the operands as the results onto
1804 the Type1 stack.
1805 Improve handling of setcurrentpoint opcode.
1806
Werner Lembergc011f4c2006-06-26 09:40:00 +000018072006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1808
1809 The Type 1 parser now skips over top-level procedures as required
1810 for a `Simplified Parser'. This makes the parser more robust as it
1811 doesn't poke around in PostScript code. Additionally, it makes the
1812 FontDirectory hackery in src/type1/t1load.c unnecessary.
1813
1814 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1815 (skip_literal_string): Add FT_Error as return value.
1816 Handle escapes better.
1817 (skip_string): Add FT_Error as return value.
1818 Don't set `parser->error' but return error code directly.
1819 (skip_procedure): New function.
1820 (ps_parser_skip_PS_token): Handle procedures.
1821 Update code.
1822 (ps_parser_to_token): Update code.
1823 (ps_parser_load_field_table): Handle bbox entries also.
1824
1825 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1826 Add commented-out code for synthetic fonts.
1827
Werner Lemberga2da05c2006-06-25 06:27:27 +000018282006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1829
1830 Fix two hinting bugs as reported in
1831 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1832
1833 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1834 `first_point' member.
1835
1836 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1837 `first_point'.
1838 (TT_Process_Composite_Glyph): Always untouch points.
1839
1840 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1841 `first_point' and `last_point' in case of composite glyphs.
1842 (Ins_IUP): Fix computation of `end_point'.
1843
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018442006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1845
Werner Lembergef3d2c22006-06-25 06:07:14 +00001846 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1847 Mac. The original patch was written by David Sachitano and Lawrence
1848 Coopet, and modified by Sean McBride for MPW compatibility. Only
1849 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001850
Werner Lembergef3d2c22006-06-25 06:07:14 +00001851 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1852 Mac OS X platforms.
1853 (OS_INLINE): Undefine before definition.
1854 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1855 FontAssociation table in FOND resource.
1856 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1857 and fontSize at each entry of FontAssociation table in FOND
1858 resource.
1859 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1860 ffStylOff of FamilyRecord header of FOND resource, the header,
1861 fontSize, fontID at each entry of FontAssociation table, and
1862 StyleMapping table.
1863 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001864
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018652006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1866
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001867 Public API of TrueTypeGX, OpenType, and classic kern table validator
1868 should return `FT_Err_Unimplemented_Feature' if validation service
1869 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001870 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001871 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1872
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001873 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1874 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1875 unavailable.
1876 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1877 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001878
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001879 * src/base/ftotval.c (FT_OpenType_Validate): Return
1880 FT_Err_Unimplemented_Feature if OpenType validation service is
1881 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001882
Werner Lembergb10e45a2006-06-08 07:32:56 +000018832006-06-08 Werner Lemberg <wl@gnu.org>
1884
1885 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1886 errors.
1887
David Turner5f1f7502006-06-07 05:11:50 +000018882006-06-07 David Turner <david@freetype.org>
1889
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001890 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1891 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1892 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001893
David Turner457b4a82006-06-06 08:14:14 +000018942006-06-06 David Turner <david@freetype.org>
1895
Werner Lemberg4836f952006-06-06 12:54:08 +00001896 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001897
Werner Lemberg4836f952006-06-06 12:54:08 +00001898 We change `ps_unicodes_init' so that it also takes a
1899 `free_glyph_name' callback to release the glyph names returned by
1900 `get_glyph_name'
1901
1902 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1903 Renamed to ...
1904 (PS_GetGlyphNameFunc): This.
1905 (PS_FreeGlyphNameFunc): New typedef.
1906 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1907
1908 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1909 argument.
1910 (cff_sid_free_glyph_name): New function.
1911 (cff_cmap_unicode_init): Updated.
1912
1913 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1914
1915 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1916 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001917
1918
David Turner09717352006-06-04 14:33:08 +000019192006-06-04 David Turner <david@freetype.org>
1920
Werner Lembergd724f202006-06-04 15:17:41 +00001921 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1922 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001923 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001924
Werner Lembergd724f202006-06-04 15:17:41 +00001925 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1926 of `face->num_glyphs' which missed the last glyph, due to
1927 the offset-by-1 computation, since the PFR format doesn't
1928 guarantee that glyph index 0 corresponds to the `missing
1929 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001930
Werner Lemberg33779662006-05-26 06:30:05 +000019312006-05-25 Werner Lemberg <wl@gnu.org>
1932
1933 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1934 `-no-undefined'. Reported by Christian Biesinger.
1935
Werner Lemberg24773d62006-05-20 08:53:13 +000019362006-05-19 Brian Weed <bw@imaginengine.com>
1937
1938 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1939 have debug information, and debug libraries use `C7 compatible'
1940 debug info.
1941
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019422006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1943
Werner Lemberga6523a62006-05-20 08:47:01 +00001944 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001945 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001946
Werner Lemberga6523a62006-05-20 08:47:01 +00001947 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1948 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001949
1950 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001951 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001952
19532006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1954
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001955 * build/unix/configure.raw: Add a fallback to disable Carbon
1956 dependency, if configured with no options on Mac OS X.
1957
19582006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1959
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001960 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001961 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001962 the second part of Savannah bug #16590.
1963
Werner Lemberg545c4e52006-05-17 22:55:04 +000019642006-05-18 Werner Lemberg <wl@gnu.org>
1965
1966 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1967 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1968
David Turnerdc3ff312006-05-17 12:59:35 +000019692006-05-17 David Turner <david@freetype.org>
1970
Werner Lemberg545c4e52006-05-17 22:55:04 +00001971 This is a major patch used to drastically improve the performance of
1972 loading glyphs. This both speeds up loading the glyph vectors
1973 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001974
Werner Lemberg545c4e52006-05-17 22:55:04 +00001975 We now use inline assembler code with GCC to implement `FT_MulFix',
1976 which is probably the most important function related to the
1977 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001978
Werner Lemberg545c4e52006-05-17 22:55:04 +00001979 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001980
1981
Werner Lemberg545c4e52006-05-17 22:55:04 +00001982 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1983 `cursor' and `limit'.
1984
1985 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1986 New functions.
1987 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1988 [TEST]: Remove.
1989
1990 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1991 code.
1992
1993 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1994 `FT_ZERO'
1995 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1996 (af_glyph_hints_reload: Rewrite recognition of weak points.
1997
1998 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1999 constant values out of the loops.
2000
2001 * src/autofit/aftypes.h: Updated.
2002
2003 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2004
2005 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2006 product to get orientation.
2007
2008 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2009 (FT_Stream_OpenGzip): Use it to handle small files directly in
2010 memory.
2011
2012 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2013 Improve performance.
2014
2015 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2016 `limit'.
2017
2018 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2019 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2020 exceedingly large values of number of contours. Speed up by
2021 reducing the number of loops.
2022
2023 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2024
2025
2026 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2027 used to detect rogue clients from 4 to 16. This is to prevent some
2028 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2029 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002030
Werner Lembergde2d90a2006-05-17 08:54:30 +000020312007-05-17 Werner Lemberg <wl@gnu.org>
2032
2033 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002034 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002035
20362006-05-16 Werner Lemberg <wl@gnu.org>
2037
2038 * docs/PROBLEMS: Updated icl issues.
2039
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002040----------------------------------------------------------------------------
2041
Werner Lemberg42b63b22007-01-21 21:01:33 +00002042Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002043David Turner, Robert Wilhelm, and Werner Lemberg.
2044
2045This file is part of the FreeType project, and may only be used, modified,
2046and distributed under the terms of the FreeType project license,
2047LICENSE.TXT. By continuing to use, modify, or distribute this file you
2048indicate that you have read the license and understand and accept it
2049fully.
2050
2051
2052Local Variables:
2053version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002054coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002055End: