blob: dd600cbcd4cd13b49a7d4bcda1a18a33d3f93a5e [file] [log] [blame]
David Turner0d0365e2007-05-22 09:53:44 +000012007-05-22 David Turner <david@freetype.org>
2
David Turner78906862007-05-22 14:08:09 +00003 * src/truetype/ttgload.c: fix Werner's recent graphics state
4 patch to avoid crashes when we don't use the bytecode interpreter !
5
David Turner3e2f9532007-05-22 13:10:59 +00006 * src/lzw/ftzopen.h, src/lzw/ftzopen.c: fix for bug #19910
7 (heap blowup with very large .Z font file). The .Z format is
8 *really* crappy :-(
David Turner0d0365e2007-05-22 09:53:44 +00009
102007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +000011
12 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
13 (ps_dimension_set_mask_bits): Remove `const'.
14
David Turner0d0365e2007-05-22 09:53:44 +0000152007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000016
17 * src/sfnt/ttmtx.c (tt_face_get_metrics)
18 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
19
Werner Lembergb826fa72007-05-19 07:18:48 +0000202007-05-19 Derek Clegg <dclegg@apple.com>
21
22 Savannah patch #5929.
23
24 * include/freetype/tttables.h, src/base/ftobjcs.c
25 (FT_Get_CMap_Format): New function.
26
27 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
28 `format' member.
29 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
30 cmap_info->format.
31
Werner Lemberg6f99c882007-05-19 07:01:49 +0000322007-05-19 Werner Lemberg <wl@gnu.org>
33
34 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
35 before handling subglyphs so that it can be reinitialized each time.
36 This fixes Savannah bug #19859.
37
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000382007-05-16 Werner Lemberg <wl@gnu.org>
39
40 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
41 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
42 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
43 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
44 tt_face_get_metrics): Fix type-punning issues.
45
David Turner0a24bd22007-05-15 10:54:10 +0000462007-05-15 David Turner <david@freetype.org>
47
48 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000049 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
50 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000051 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000052 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +000053
Werner Lemberg607dec72007-05-15 06:49:37 +0000542007-05-15 Graham Asher <graham.asher@btinternet.com>
55
56 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
57 variable.
58 * src/autofit/afloader.c (af_loader_load_g): Ditto.
59
60 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
61 (open_face_from_buffer): Initialize `stream'.
62 (FT_Request_Metrics): Remove unused variable.
63 Remove redundant `break' statements.
64 (FT_Get_Track_Kerning): Remove unused variable.
65
66 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
67 afm_parse_kern_data): Remove redundant
68 `break' statements.
69 (afm_parser_parse): Ditto.
70 Don't use uninitialized variables.
71
72 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
73 Use `|' operator instead of `^' to set it.
74 Update all users.
75
76 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
77 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
78
79 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
80 comparison.
81 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
82 (TT_Load_Glyph): Remove unused variable.
83
Werner Lemberg8d463a52007-05-13 16:01:55 +0000842007-05-13 Derek Clegg <dclegg@apple.com>
85
86 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
87 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
88
David Turner711cf842007-05-11 14:36:24 +0000892007-05-11 David Turner <david@freetype.org>
90
Werner Lemberg56ceaa42007-05-14 18:53:58 +000091 * src/cache/ftbasic.c, include/freetype/ftcache.h
92 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
93 functions that allow us to look up glyphs using an FTC_Scaler object
94 to specify the size, making it possible to use fractional pixel
95 sizes.
96
97 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
98 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +000099
Werner Lemberg94be20e2007-05-09 20:02:55 +00001002007-05-09 Graham Asher <graham.asher@btinternet.com>
101
102 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
103 (af_latin_metrics_scale_dim): Fix compiler warnings.
104
Werner Lemberg41271032007-05-06 04:51:48 +00001052007-05-06 Werner Lemberg <wl@gnu.org>
106
107 * builds/win32/visualce/freetype.sln: Removed, as requested by
108 Vincent.
109
Werner Lembergdf49e692007-05-04 06:30:05 +00001102007-05-04 Vincent RICHOMME <richom.v@free.fr>
111
112 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
113 PC targets.
114
115 * docs/CHANGES: Document them.
116
1172007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000118
119 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
120 mmap (which might happen on some RTOS). From Savannah patch #5909.
121
Werner Lemberg106eaf12007-05-03 07:07:47 +00001222007-05-03 Werner Lemberg <wl@gnu.org>
123
124 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
125 * include/freetype/freetype.h (FT_Set_Char_Size): Update
126 documentation.
127
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001282007-04-28 Victor Stinner <victor.stinner@inl.fr>
129
130 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
131 `cmap'.
132
Werner Lembergcc712a22007-04-27 17:16:50 +00001332007-04-27 Werner Lemberg <wl@gnu.org>
134
135 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
136 number of points in contours. Problem reported by Victor Stinner
137 <victor.stinner@haypocalc.com>.
138 (TT_Process_Simple_Glyph): Synchronize variable types.
139
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001402007-04-26 Werner Lemberg <wl@gnu.org>
141
142 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
143 zero in case of error. This fixes Savannah bug #19689.
144
David Turnera8b45e62007-05-11 14:10:30 +00001452007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
146
147 * src/truetype/ttobjs.c: fix a typo that created a speed regression
148 in the TrueType bytecode loader
149
Werner Lembergfcc1f472007-04-10 11:51:50 +00001502007-04-10 Martin Horak <horakm@centrum.cz>
151
152 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
153 Ignore `hhea' table. This fixes Savannah bug #19261.
154
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001552007-04-09 Werner Lemberg <wl@gnu.org>
156
157 * Version 2.3.4 released.
158 =========================
159
160
161 Tag sources with `VER-2-3-4'.
162
163 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
164 version number to 2.3.4.
165
166 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
167 builds/win32/visualc/freetype.dsp,
168 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
169
170 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
171
172 * builds/unix/configure.raw (version_info): Set to 9:15:3.
173
Werner Lembergf4a52a62007-04-09 08:40:11 +00001742007-04-09 Martin Horak <horakm@centrum.cz>
175
176 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
177 memory stream to avoid a crash with the incremental memory
178 interface (Savannah bug #19260).
179
David Turner1dcb4442007-04-06 08:19:04 +00001802007-04-06 David Turner <david@freetype.org>
181
Werner Lembergc81cf612007-04-06 09:28:23 +0000182 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
183 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000184
Werner Lemberg9f83e052007-04-05 02:28:23 +00001852007-04-04 Werner Lemberg <wl@gnu.org>
186
187 * Version 2.3.3 released.
188 =========================
189
190
191 Tag sources with `VER-2-3-3'.
192
193 * docs/CHANGES: Mention CVE-2007-1351.
194
David Turner7338ec22007-04-03 14:30:34 +00001952007-04-03 David Turner <david@freetype.org>
196
197 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000198 if one of the resolution values is 0, treat it as if it were the
199 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000200
David Turnere6472c12007-04-02 13:13:54 +00002012007-04-02 David Turner <david@freetype.org>
202
Werner Lemberg94f12272007-04-03 07:19:53 +0000203 Add special code to detect `extra-light' fonts and do not snap their
204 stem widths too much to avoid bizarre hinting effects.
205
206 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
207 `extra_light' members.
208
209 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
210 them.
211 (af_latin_metrics_scale_dim): Set `extra_light'.
212 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000213
David Turner3f539692007-03-28 14:53:40 +00002142007-03-28 David Turner <david@freetype.org>
215
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000216 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000217 padding.
218
Werner Lemberga08b2172007-03-28 07:17:17 +00002192007-03-28 Werner Lemberg <wl@gnu.org>
220
221 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
222 gracefully.
223 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000224 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000225 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
226 number of code points in Unicode.
227
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000228 * builds/win32/visualc/index.html,
229 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000230 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000231 s/232/233/.
232
233 * docs/CHANGES: Mention ftdiff.
234
David Turner3b242d32007-03-26 12:03:04 +00002352007-03-26 David Turner <david@freetype.org>
236
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000237 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
238 corresponding code.
239 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000240
Werner Lemberga08b2172007-03-28 07:17:17 +0000241 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000242 computations in order to ignore single-point contours. These are
243 never rasterized and correspond in certain fonts to mark-attach
244 points that are very far from the glyph's real outline, ruining the
245 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000246
Werner Lemberga08b2172007-03-28 07:17:17 +0000247 * src/autofit/afloader.c (af_loader_load_g): In the case of
248 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
249 Otherwise code that uses them will most certainly ruin the fixed
250 advance property.
David Turner23553d62007-03-26 13:37:17 +0000251
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000252 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
253 documentation and bump version number to 2.3.3.
254
255 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
256
257 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000258
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002592007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
260
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000261 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
262 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000263 * builds/vms/ftconfig.h: Ditto.
264 * include/freetype/config/ftconfig.h: Ditto.
265
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002662007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
267
Werner Lemberg14ffe092007-03-22 06:12:43 +0000268 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
269 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000270 proposed by Sean McBride:
271 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
272
2732007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
274
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000275 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
276 setjmp, proposed by Sean McBride:
277 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
278
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00002792007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
280
Werner Lembergc9f6c662007-03-21 13:30:14 +0000281 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
282 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
283 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000284
David Turner74c34eb2007-03-18 07:19:31 +00002852007-03-18 David Turner <david@freetype.org>
286
Werner Lembergc9f6c662007-03-21 13:30:14 +0000287 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
288 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000289
Werner Lembergc9f6c662007-03-21 13:30:14 +0000290 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000291
David Turner89020d92007-03-17 17:48:57 +00002922007-03-17 David Turner <david@freetype.org>
293
Werner Lembergc9f6c662007-03-21 13:30:14 +0000294 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
295 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000296
Werner Lemberg25d592a2007-03-09 07:59:35 +00002972007-03-09 Werner Lemberg <wl@gnu.org>
298
299 * Version 2.3.2 released.
300 =========================
301
302
303 Tag sources with `VER-2-3-2'.
304
305 * builds/win32/visualc/index.html,
306 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000307 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000308 s/231/232/.
309
David Turner3a51afa2007-03-08 10:50:38 +00003102007-03-08 David Turner <david@freetype.org>
311
Werner Lemberg25d592a2007-03-09 07:59:35 +0000312 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000313
Werner Lemberg25d592a2007-03-09 07:59:35 +0000314 * builds/unix/configure.raw (version_info): Set to 9:13:3.
315
316 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
317
318 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000319
Werner Lemberg1e259de2007-03-08 15:39:21 +0000320 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
321 function to work properly, over-writing user-provided buffers in
322 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000323
David Turner121cad52007-03-08 16:43:50 +0000324
Werner Lemberg3d92f082007-03-06 11:59:24 +00003252007-03-05 Werner Lemberg <wl@gnu.org>
326
327 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
328 macro for `strstr'.
329
330 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
331 `trick_names', as suggested by Ivan Nincic.
332
David Turner085bc6e2007-03-05 17:40:03 +00003332007-03-05 David Turner <david@freetype.org>
334
Werner Lembergd112cf02007-03-06 12:06:56 +0000335 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
336 case FT_Init_FreeType fails for some reason. Problem reported by
337 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000338
Werner Lembergd112cf02007-03-06 12:06:56 +0000339 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
340 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
341 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
342 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000343
Werner Lembergd112cf02007-03-06 12:06:56 +0000344 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
345 signed values, not unsigned ones. Problem reported by Johannes
346 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000347
David Turner601aefe2007-02-21 16:47:49 +00003482007-02-21 David Turner <david@freetype.org>
349
Werner Lembergde5e6862007-02-25 21:06:43 +0000350 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
351 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000352
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00003532007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
354
355 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
356 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
357 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
358
Werner Lemberga0915172007-02-16 08:12:50 +00003592007-02-16 Werner Lemberg <wl@gnu.org>
360
361 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
362 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
363
David Turner2c4500e2007-02-14 15:08:47 +00003642007-02-14 David Turner <david@freetype.org>
365
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000366 It seems that the following changes fix most of the known
367 interpreter problems with my fonts, but more testing is needed,
368 though.
369
370 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
371 (TT_MulFix14): Rewrite.
372 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
373 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000374
Werner Lembergc6a14082007-02-12 22:08:15 +00003752007-02-12 Werner Lemberg <wl@gnu.org>
376
377 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
378 warnings.
379
380 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
381 (bdf_interpret_style): Ditto.
382
David Turnerc0f9c4a2007-02-12 14:55:03 +00003832007-02-12 David Turner <david@freetype.org>
384
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000385 Simplify projection and dual-projection code interface.
386
Werner Lemberg406d25f2007-02-12 22:01:18 +0000387 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
388 FT_Vector' as argument type.
389 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
390 Updated.
391 (CUR_fast_project, CUR_fast_dualproj): New macros.
392 (Project, Dual_Project, Project_x, Project_y): Updated.
393 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
394 macros.
395
396
397 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
398 adjustments for the non-light auto-hinted modes. Gets rid of
399 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000400
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000401 * src/autofit/aflatin.c (af_latin_hints_link_segments,
402 af_latin_hints_compute_edges): Slight optimization of the segment
403 linker and better handling of serif segments to get rid of broken
404 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000405
David Turnerc0f9c4a2007-02-12 14:55:03 +0000406
Werner Lemberg442bfb82007-02-12 21:44:10 +0000407 Introduce new string functions and the corresponding macros to get
408 rid of various uses of strcpy and other `evil' functions, as well as
409 to simplify a few things.
410
411 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
412 ft_mem_strcpyn): New declarations.
413 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
414 macros.
415 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
416 functions.
417
418 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
419 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
420 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
421 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
422 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
423 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
424 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
425 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000426
Werner Lemberg406d25f2007-02-12 22:01:18 +0000427 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
428
Werner Lemberg582067d2007-02-11 15:03:05 +00004292007-02-11 Werner Lemberg <wl@gnu.org>
430
431 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
432 non-spacing glyphs.
433
Werner Lemberg8f474532007-02-07 08:31:01 +00004342007-02-07 Tom Parker <palfrey@tevp.net>
435
436 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
437 pointer.
438
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
440
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000441 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
442 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000443 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000444 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
445 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
446 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
447 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000448
449 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
450 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000451 * builds/mac/ftmac.c: Ditto.
452
4532007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
454
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000455 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000456 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000457 #include <ftmac.c>.
458
4592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
460
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000461 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
462 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
463 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
464 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
465 FT_GetFilePath_From_Mac_ATS_Name.
466 * builds/mac/ftmac.c: Ditto.
467
4682007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
469
Werner Lembergdcbb7082007-02-08 08:54:09 +0000470 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000471 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
472 for passing to FT_New_Face_From_FSSpec.
473
4742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
475
Werner Lembergdcbb7082007-02-08 08:54:09 +0000476 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000477 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000478
479 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
480 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000481 * builds/mac/ftmac.c (OS_INLINE): Ditto.
482
Werner Lemberg313d7772007-02-01 08:10:45 +00004832007-02-01 Werner Lemberg <wl@gnu.org>
484
485 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
486 Explain why applications shouldn't use it. Found by Alexei.
487
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004882007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000489
490 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
491 message.
492
493 * src/gxvalid/gxvmort1.c
494 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
495 message.
496
Werner Lemberg53935932007-01-31 08:53:02 +00004972007-01-31 Werner Lemberg <wl@gnu.org>
498
499
500 * Version 2.3.1 released.
501 =========================
502
503
504 Tag sources with `VER-2-3-1-FINAL'.
505
506 * builds/win32/visualc/freetype.dsp,
507 builds/win32/visualc/freetype.vcproj: s/230/231/.
508 * builds/win32/visualc/index.html: s/221/231/.
509
510 * vms_make.com: Add `ftgasp'.
511
David Turnera7ee6082007-01-30 10:33:53 +00005122007-01-30 David Turner <david@freetype.org>
513
Werner Lemberg53935932007-01-31 08:53:02 +0000514 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000515
Werner Lemberg53935932007-01-31 08:53:02 +0000516 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000517
Werner Lemberg25d592a2007-03-09 07:59:35 +0000518 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000519 s/2.3.0/2.3.1/.
520
521 * builds/unix/configure.raw (version_info): Set to 9:12:3.
522
523
524 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
525 (af_loader_load_g): Disable the warper (i.e., the light hinting
526 improvements) to make a 2.3.1 bugfix release before introducing a
527 new feature. This should give us more time to tune and improve the
528 warper for the next release.
529
530 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000531
David Turnerd91eebd2007-01-26 15:05:41 +00005322007-01-25 David Turner <david@freetype.org>
533
Werner Lembergbf241762007-01-26 16:08:49 +0000534 For light auto-hinting, improve glyph advance widths and resurrect
535 normal/full hinting to its normal quality.
536
537 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
538 and `xmax_delta'.
539 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
540 and `xmax_delta'.
541
542 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
543 preprocessor conditional with if-clause, handling both light and
544 normal mode.
545
546 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
547 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000548
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005492007-01-25 Werner Lemberg <wl@gnu.org>
550
551 * docs/release: Updated -- Savannah uses a new uploading scheme.
552
David Turnera42567b2007-01-25 12:23:37 +00005532007-01-25 David Turner <david@freetype.org>
554
Werner Lembergd7855662007-01-25 13:53:56 +0000555 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000556
Werner Lembergd7855662007-01-25 13:53:56 +0000557 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
558 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
559 functions.
David Turnera42567b2007-01-25 12:23:37 +0000560
Werner Lembergd7855662007-01-25 13:53:56 +0000561 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000562
Werner Lembergb1be9e82007-01-25 11:50:00 +00005632007-01-25 Werner Lemberg <wl@gnu.org>
564
565 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000566 correctly in a sanity check. Since this function is only used to
567 load local and global functions, any charstring that called the last
568 local/global function would fail otherwise. This fixes Savannah bug
569 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000570
571 * docs/CHANGES: Document it.
572
David Turnerb6de8d12007-01-23 15:51:50 +00005732007-01-23 David Turner <david@freetype.org>
574
Werner Lembergb1be9e82007-01-25 11:50:00 +0000575 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
576 prevented compilation when disabling both the unpatented and the
577 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000578
Werner Lembergb1be9e82007-01-25 11:50:00 +0000579
580 Fix and enable the warper to improve `light' hinting mode. This is
581 not necessarily a final version, but it seems to work well.
582
583 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
584 Disable code.
585 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
586 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
587
588 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
589 (af_warper_compute_line_best): Fix array size of `scores'.
590 (af_warper_compute): Better handling of border cases.
591 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
592 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000593
Werner Lemberg011d1112007-01-21 09:36:00 +00005942007-01-21 Werner Lemberg <wl@gnu.org>
595
Werner Lemberg42b63b22007-01-21 21:01:33 +0000596 * ChangeLog: Split off older entries into...
597 * ChangeLog.22: This new file.
598
5992007-01-21 Werner Lemberg <wl@gnu.org>
600
Werner Lemberg555258f2007-01-21 09:46:37 +0000601 * docs/CHANGES: Document SHZ fix.
602
6032007-01-21 George Williams <gww@silcom.com>
604
605 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
606 points.
607
6082007-01-21 Werner Lemberg <wl@gnu.org>
609
Werner Lemberg011d1112007-01-21 09:36:00 +0000610 * src/sfnt/ttmtx.c (tt_face_get_metrics)
611 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
612
Werner Lemberg87a5a432007-01-17 12:44:39 +00006132007-01-17 Werner Lemberg <wl@gnu.org>
614
Werner Lembergb8003292007-01-17 12:56:25 +0000615
616 * Version 2.3.0 released.
617 =========================
618
619
620 Tag sources with `VER-2-3-0-FINAL'.
621
6222007-01-17 Werner Lemberg <wl@gnu.org>
623
Werner Lemberg87a5a432007-01-17 12:44:39 +0000624 * docs/release: Updated.
625
David Turner22122722007-01-16 20:06:44 +00006262007-01-16 David Turner <david@freetype.org>
627
Werner Lemberg87a5a432007-01-17 12:44:39 +0000628 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
629 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
630 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
631 warnings.
David Turner22122722007-01-16 20:06:44 +0000632
Werner Lemberg267e1d72007-01-15 07:48:09 +00006332007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
634
635 * builds/amiga/makefile, builds/amiga/makefile.os4,
636 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
637
638 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
639
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006402007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
641
642 Fix various compiler warnings.
643
644 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
645 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
646 s/index/strike_index/.
647 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
648
649 * src/gxvalid/gxvmorx5.c
650 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
651
652 * src/truetype/ttinterp.c (Compute_Point_Displacement),
653 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
654 uninitialized variables.
655
Werner Lemberg6164a9d2007-01-13 23:01:36 +00006562007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
657
658 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
659
Werner Lemberg281c1482007-01-13 22:50:51 +00006602007-01-13 Werner Lemberg <wl@gnu.org>
661
662 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
663 versions up to 0x3FF without complaining.
664
Werner Lembergac250b22007-01-13 14:01:36 +00006652007-01-13 Derek Clegg <dclegg@apple.com>
666
667 Add FT_Get_PS_Font_Info interface to CFF driver.
668
669 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
670 (CFF_FontRec): Add `font_info' field.
671
672 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
673 (cff_font_done): Free font->font_info if necessary.
674
675 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
676 (cff_service_ps_info): Register cff_ps_get_font_info.
677
Werner Lemberg23df31a2007-01-13 08:45:00 +00006782007-01-13 Werner Lemberg <wl@gnu.org>
679
680 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
681 with C++ compiler.
682
683 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
684 af_glyph_hints_dump_edges): Ditto.
685
686 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
687 `modules.cfg').
688
689 * src/sfnt/ttsbit0.h: Remove.
690
691 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
692
Werner Lemberg27cf9de2007-01-13 07:34:23 +00006932007-01-12 David Turner <david@freetype.org>
694
695 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
696 bug in the bitmap emboldener if the pitch of the source bitmap is
697 much larger than its width.
698
699 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
700 compilation warning.
701
Werner Lemberg6d96d312007-01-12 10:30:19 +00007022007-01-12 Werner Lemberg <wl@gnu.org>
703
704 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
705 `automake' CVS module from sources.redhat.com.
706
Werner Lemberg17432b52007-01-12 09:28:44 +00007072007-01-11 Werner Lemberg <wl@gnu.org>
708
709 * src/type1/t1load.c (is_space): Removed.
710 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
711 (parse_charstrings): Use IS_PS_TOKEN.
712
713
714 * autogen.sh: Avoid bash specific syntax.
715
David Turner038ace22007-01-11 15:00:59 +00007162007-01-11 David Turner <david@freetype.org>
717
Werner Lemberg17432b52007-01-12 09:28:44 +0000718 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000719
Werner Lemberg17432b52007-01-12 09:28:44 +0000720 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000721
Werner Lemberg17432b52007-01-12 09:28:44 +0000722 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
723 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000724 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000725
Werner Lemberg17432b52007-01-12 09:28:44 +0000726 * autogen.sh: Small fix to get it working on Mac OS X properly:
727 The issue is that GNU libtool is called `glibtool' on this platform,
728 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000729
David Turner2628ea92007-01-10 13:15:56 +00007302007-01-10 David Turner <david@freetype.org>
731
Werner Lemberg17432b52007-01-12 09:28:44 +0000732 * all-sources: Tag all sources with VER-2-3-0-RC1 and
733 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000734
Werner Lemberg17432b52007-01-12 09:28:44 +0000735 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
736 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
737 version number to 2.3.0.
738
739 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
740 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000741
742 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000743 include/freetype/ftlcdfil.h: Update reference documentation with
744 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000745
Werner Lemberg17432b52007-01-12 09:28:44 +0000746 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
747 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000748
Werner Lembergbf02d392007-01-10 07:07:37 +00007492007-01-10 Derek Clegg <dclegg@apple.com>
750
751 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
752 values.
753
David Turnerf48b60e2007-01-08 15:15:32 +00007542007-01-08 David Turner <david@freetype.org>
755
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000756 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000757
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000758 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
759 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000760 corresponding to a given character pixel size.
761
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000762 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
763 `gasp' table, in order to avoid potential problems with later
764 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000765
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000766 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
767 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000768
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000769 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
770 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
771 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
772 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000773
Werner Lemberge6b6f372007-01-07 00:06:47 +00007742007-01-07 Werner Lemberg <wl@gnu.org>
775
Werner Lembergb8004d22007-01-07 09:13:38 +0000776 * src/cid/cidparse.c (cid_parser_new): Improve error message for
777 Type 11 fonts.
778 Scan for `/sfnts' token.
779
7802007-01-07 Werner Lemberg <wl@gnu.org>
781
782 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000783
Werner Lembergbe5f7972007-01-06 07:51:48 +00007842007-01-06 Werner Lemberg <wl@gnu.org>
785
786 * src/cff/cffload.c (cff_index_init): Remove unused variable.
787 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
788
David Turnera8cf42b2007-01-04 16:46:46 +00007892007-01-04 David Turner <david@freetype.org>
790
Werner Lembergf6294392007-01-06 07:47:45 +0000791 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
792 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000793
Werner Lembergf6294392007-01-06 07:47:45 +0000794
795 Do not allocate interpreter-specific tables in memory if we are not
796 going to load glyphs with the bytecode interpreter anyway.
797
798 * src/truetype/ttgload.c (tt_loader_init): Load execution context
799 only if glyph is hinted.
800 Updated.
801 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
802 and `cvs_ready'.
803 Add `tt_size_ready_bytecode' declaration.
804 * src/truetype/ttobjs.c (tt_size_done_bytecode,
805 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
806 (tt_size_init): Move most code into `tt_size_init_bytecode'.
807 (tt_size_done): Move most code into `tt_size_done_bytecode'.
808 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000809
David Turner91a34022007-01-05 14:47:08 +0000810
Werner Lembergf6294392007-01-06 07:47:45 +0000811 Don't extract the metrics table from the SFNT font file. Instead,
812 reparse it on each glyph load. The runtime difference is not
813 noticeable, and it can save a lot of heap memory when memory-mapped
814 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000815
Werner Lembergf6294392007-01-06 07:47:45 +0000816 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
817 `horz_metrics_offset' and `vert_metrics_ofset'.
818 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
819 Updated.
820
821
822 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
823
824
825 Do not load the CFF index offsets into memory, since this wastes a
826 *lot* of heap memory with large Asian CFF fonts. There is no
827 significant performance loss.
828
829 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
830 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
831 `data_size'.
832 (CFF_CharsetRec): Add field `num_glyphs'.
833
834 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
835 cff_charset_cid_to_gindex): New functions.
836 (cff_new_index): Renamed to...
837 (cff_index_init): This. Update all callers.
838 Updated -- some code has been moved to `cff_index_load_offsets'.
839 (cff_done_index): Renamed to...
840 (cff_index_done): This. Update all callers.
841 (cff_index_get_pointers, cff_index_access_element): Updated to use
842 stream offsets.
843 (cff_charset_compute_cids): Set `num_glyphs' field.
844 (cff_encoding_load): Updated.
845
846 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000847
8482007-01-04 David Turner <david@freetype.org>
849
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000850 * docs/INSTALL.UNIX: Simplify some parts, add reference to
851 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000852
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000853 * README.CVS: Add common problem description and solution
854 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000855
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000856 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000857
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000858 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000859
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000860 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000861
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000862 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
863 (TWorker): This.
864 Remove `count_table' and `memory'.
865 Make `grays' a pointer.
866 (TRaster): New structure.
867 (count_table): New static array.
868 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
869 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
870 ft_black_set_mode, ft_black_render): Updated.
871 (ft_black_init): Don't initialize `count_table'.
872 (ft_black_reset): Use the render pool. This saves about 6KB of
873 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000874
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000875 * src/smooth/ftgrays.c (TRaster): Replaced with...
876 (TWorker): This.
877 Remove `memory'.
878 (TRaster): New structure.
879
880 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
881 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
882 gray_render_span, gray_raster_render): Updated.
883 (gray_raster_reset): Use the render pool. This saves about 6KB of
884 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000885
David Turner8a6c44e2007-01-04 17:03:11 +0000886 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
887 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000888 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
889 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
890 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000891
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000892 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
893 Remove a typo that results in no hinting and a memory leak with some
894 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000895
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000896 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000897 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000898 CFF_Faces in it. We need to close all faces before destroying the
899 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000900
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00009012007-01-02 Werner Lemberg <wl@gnu.org>
902
903 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
904 Remove compiler warning.
905
David Turner9207e002007-01-02 16:58:13 +00009062007-01-02 David Turner <david@freetype.org>
907
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000908 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000909
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009102006-12-31 Masatake YAMATO <jet@gyve.org>
911
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000912 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
913 function.
914 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000915 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000916 `gxv_kern_subtable_fmt0_pairs_validate'.
917
David Turner115b4422006-12-22 11:37:05 +00009182006-12-22 David Turner <david@freetype.org>
919
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000920 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
921 warnings.
David Turner115b4422006-12-22 11:37:05 +0000922
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000923 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
924 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000925
Werner Lemberg4755bf72006-12-16 08:58:44 +00009262006-12-16 Anders Kaseorg <anders@kaseorg.com>
927
928 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
929 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
930
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
932
Werner Lemberg9b774e22007-01-16 06:11:27 +0000933 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000934 sync with the modification by Jens Claudius on 2006-08-22; cf.
935 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 +0000936
9372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
938
939 * src/base/ftmac.c: Specialized for Mac OS X only.
940 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
941 * builds/unix/configure.raw: Ditto. When explicit switches for
942 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
943 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
944
9452006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
946
947 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
948 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
949 instead of src/base/ftmac.c
950 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
951 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
952 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
953 that cannot be built at present.
954
9552006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
956
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000957 * src/base/ftobjs.c: Improvement of resource fork handler for
958 POSIX, cf.
959 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000960 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
961 format or .dfont, to simulate the face index number counted by ftmac.c.
962 (IsMacResource): Return the number of scalable faces correctly.
963
Werner Lembergec5b4502006-12-10 07:51:38 +00009642006-12-10 Werner Lemberg <wl@gnu.org>
965
966 * builds/toplevel.mk (version): Protect against `distclean' target.
967
Werner Lembergb26b3142006-12-09 20:01:43 +00009682006-12-09 Werner Lemberg <wl@gnu.org>
969
970 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
971 or `type'.
972
973 * builds/freetype.mk (version): Extracted from freetype.h, using
974 GNU make's built-in string functions.
975 (refdoc): Use $(version) instead of static version number.
976
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00009772006-12-08 Werner Lemberg <wl@gnu.org>
978
979 * builds/toplevel.mk (dist): Extract version number from freetype.h.
980
Werner Lemberg15c29502006-12-09 07:29:54 +00009812006-12-08 Vladimir Volovich <vvv@vsu.ru>
982
983 * src/tools/apinames (State): Remove final comma in structure -- xlc
984 v5 under AIX 4.3 doesn't like this.
985
David Turnerdbf3b432006-12-07 21:18:09 +00009862006-12-07 David Turner <david@freetype.org>
987
Werner Lemberg256a3512006-12-08 06:49:33 +0000988 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
989 to the spacing of auto-fitted glyphs. This only impacts rare
990 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000991
Werner Lemberg11171312006-12-03 09:43:40 +00009922006-12-03 Werner Lemberg <wl@gnu.org>
993
994 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
995
Werner Lemberg960ba592006-12-01 08:20:47 +00009962006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000997
Werner Lemberg960ba592006-12-01 08:20:47 +0000998 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
999 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1000 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001001
David Turner80658e52006-11-28 08:09:20 +00001002
Werner Lemberg960ba592006-12-01 08:20:47 +00001003 * include/freetype/ftxf86.h: Fix and extend comment so that it
1004 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001005
Werner Lemberg960ba592006-12-01 08:20:47 +00001006 * include/freetype/ftchapters.h: Add `font_format' section.
1007
1008
1009 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1010 to TOC in index page.
1011
10122006-11-28 David Turner <david@freetype.org>
1013
1014 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1015 trying to render into a zero-width/height bitmap, not an error code.
1016
1017 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1018
1019 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1020 ones instead.
1021
1022 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1023 variable.
David Turner80658e52006-11-28 08:09:20 +00001024
Werner Lemberg8636c292006-11-26 22:28:13 +000010252006-11-26 Pierre Hanser <hanser@club-internet.fr>
1026
1027 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1028
Werner Lemberg960ba592006-12-01 08:20:47 +000010292006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001030
Werner Lemberg960ba592006-12-01 08:20:47 +00001031 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1032 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1033 Add stubs to link the `ftgrid' test program when debugging is
1034 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001035
Werner Lemberg960ba592006-12-01 08:20:47 +000010362006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001037
1038 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001039 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1040
1041 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1042 Emit more sensible information.
1043
1044 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1045
1046 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1047 rounding of blue values.
1048 (af_latin_hints_compute_segments): Hint segment heights.
1049 (af_latin_hints_link_segments): Reduce `len_score' value.
1050 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1051 value and use `height' member for comparisons.
1052 (af_latin_hint_edges): Extend logging message.
1053 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001054
Werner Lemberg91959bf2006-11-22 10:36:55 +000010552006-11-22 Werner Lemberg <wl@gnu.org>
1056
1057 Fix Savannah bug #15553.
1058
1059 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1060 program after a change from mono to grayscaling (and vice versa).
1061 Use correct constant for comparison to get `exec->grayscale'.
1062
Werner Lemberg913a3652006-11-19 09:19:17 +000010632006-11-18 Werner Lemberg <wl@gnu.org>
1064
1065 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001066 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001067 This patch fixes Savannah bug #18301.
1068
1069 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1070 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1071 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1072 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1073 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1074 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1075 (FNT_Load_Glyph): Check validity of `glyph_index'.
1076
David Turner7bab6ae2006-11-13 11:25:06 +000010772006-11-13 David Turner <david@freetype.org>
1078
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001079 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1080 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001081
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001082 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1083 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1084 when building the library to change the default LCD filter to be
1085 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001086
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001087 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001088
David Turner8765c712006-11-10 16:49:42 +000010892006-11-10 David Turner <david@freetype.org>
1090
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001091 * src/smooth/ftsmooth.c: API change for the LCD
1092 filter. The FT_LcdFilter value is an enumeration describing which
1093 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1094 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1095 algorithm which produces strong color fringes for everything
1096 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001097
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001098 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1099 second parameter to an enum type.
1100
1101 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1102 (_ft_lcd_filter): Rename to...
1103 (_ft_lcd_filter_fir): This.
1104 Update parameters.
1105 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1106 (FT_Library_Set_LcdFilter): Update parameters.
1107 Handle new filter modes.
1108
1109 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1110 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1111 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1112 callback and update other fields.
1113
1114 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1115 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1116 Other minor improvements.
1117
1118 * src/autofit/aflatin.c: Various tiny improvements that drastically
1119 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1120 (af_latin_hints_compute_edges): Fix typo.
1121 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001122
David Turner4e9cc3c2006-11-09 16:31:52 +000011232006-11-09 David Turner <david@freetype.org>
1124
Werner Lemberg49c77a82006-11-09 21:51:57 +00001125 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1126 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001127
Werner Lemberg5e430892006-11-07 09:35:03 +000011282006-11-07 Zhe Su <james.su@gmail.com>
1129
1130 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1131 also.
1132
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011332006-11-03 Werner Lemberg <wl@gnu.org>
1134
1135 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1136
David Turner40604742006-11-02 16:37:35 +000011372006-11-02 David Turner <david@freetype.org>
1138
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001139 Add a few tweaks to better handle serif fonts.
1140 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001141
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001142 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1143 segments that are less than 1.5 pixels high. This gets rid of
1144 *many* corner cases with serifs.
1145 (af_latin_align_linked_edge): Add logging message.
1146 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1147 Add logging messages.
1148 Handle AF_EDGE_FLAG flag specially.
1149
1150 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1151 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1152
1153 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1154 Update external declarations.
1155 (af_corner_orientation, af_corner_is_flat): Replaced by...
1156
1157 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1158 ft_corner_is_flat): These declarations.
1159
1160 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1161 Comment out. Replaced by...
1162
1163 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1164 These functions. Update all callers.
1165 (FT_Add64) [!FT_LONG64]: Simplify.
1166
1167 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1168 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1169 production of garbage by missing lots of segments.
1170
1171 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1172
1173 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1174 [AF_DEBUG]: Set _af_debug_hints.
1175
1176
1177 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1178 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1179 and ft_corner_orientation.
1180
1181
1182 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001183
Werner Lemberge88c5262006-10-24 05:46:26 +000011842006-10-24 Werner Lemberg <wl@gnu.org>
1185
1186 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1187
1188 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1189 as argument.
1190
David Turnera1861392006-10-23 16:00:59 +000011912006-10-23 Zhe Su <zsu@novell.com>
1192
Werner Lemberg715e96e2006-10-24 05:28:45 +00001193 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1194 better deal with broken Asian fonts with strange glyphs, having
1195 self-intersections and other peculiarities. The used algorithm is
1196 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001197
David Turnere140f142006-10-23 08:56:57 +000011982006-10-23 David Turner <david@freetype.org>
1199
Werner Lemberg715e96e2006-10-24 05:28:45 +00001200 Speed up the CFF font loader. With some large CFF fonts,
1201 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001202
Werner Lemberg715e96e2006-10-24 05:28:45 +00001203 * src/cff/cffload.c (cff_get_offset): Removed.
1204 (cff_new_index): Inline functionality of `cff_get_offset'.
1205 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1206 (cff_charset_done): Call `cff_charset_free_cids'.
1207 (cff_charset_load): Call `cff_charset_compute_cids'.
1208 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1209
1210 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1211 with FT_NEXT_XXX.
1212
1213
1214 Speed up the Postscript hinter, with more than 100% speed increase
1215 on my machine.
1216
1217 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1218 psh_corner_orientation): New functions.
1219 (psh_glyph_compute_inflections): Merge loops for efficiency.
1220 Use `psh_corner_orientation'.
1221 (psh_glyph_init): Use `psh_corner_is_flat'.
1222 (psh_hint_table_find_strong_point): Renamed to...
1223 (psh_hint_table_find_strong_points): This.
1224 Rewrite, adding argument to handle all points at once.
1225 Update all callers.
1226 (PSH_MAX_STRONG_INTERNAL): New macro.
1227 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001228
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012292006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1230
1231 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001232 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001233
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012342006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1235
1236 * docs/INSTALL.CROSS: New document file for cross-building.
1237
1238 * builds/unix/configure.raw: Preliminary cross-building support.
1239 Find native C compiler and pass it by CC_BUILD, and
1240 find suffix for native executable and pass it by EXEEXT_BUILD.
1241 Also suffix for target executable is passed by EXEEXT.
1242
Werner Lembergb9e6d692006-10-15 08:58:40 +00001243 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1244 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001245 CC_BUILD and EXEEXT_BUILD.
1246
Werner Lembergb9e6d692006-10-15 08:58:40 +00001247 * builds/exports.mk (APINAMES_EXE): Change the extension for
1248 apinames from the suffix for target (E) to that for building host
1249 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001250
Werner Lemberg82a07e92006-10-12 06:20:44 +000012512006-10-12 Werner Lemberg <wl@gnu.org>
1252
1253 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1254 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1255 which reference those files.
1256
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000012572006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1258
Werner Lembergb9e6d692006-10-15 08:58:40 +00001259 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1260 embedded in freetype2.pc and freetype-config. Use it to record
1261 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001262
1263 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1264
1265 * builds/unix/freetype-config.in: Ditto.
1266
Werner Lemberg28e17d92006-10-11 17:27:47 +000012672006-10-11 Werner Lemberg <wl@gnu.org>
1268
1269 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1270 development.
1271
Jens Claudius336d2292006-10-03 08:53:37 +000012722006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1273
1274 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1275 argument to ft_setjmp.
1276
1277 * include/freetype/internal/ftvalid.h: Add comment that
1278 ft_validator_run must not be used.
1279
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012802006-10-01 Werner Lemberg <wl@gnu.org>
1281
1282 * src/base/ftbase.c: Undo change from 2006-09-30.
1283
1284 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1285
12862006-09-30 David Turner <david@freetype.org>
1287
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001288 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1289 s/unpatented_hinting/ignore_unpatented_hinter/.
1290 Update all callers.
1291
1292 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1293 auto-hinting shall be used or not.
1294
1295 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001296
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012972006-09-30 Werner Lemberg <wl@gnu.org>
1298
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001299 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1300 in use).
1301
1302 * src/base/ftbase.c: Include `ftlcdfil.c'.
1303
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013042006-09-29 Werner Lemberg <wl@gnu.org>
1305
1306 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1307 overlapping segments. Bug reported by Stefan Koch.
1308
David Turnerad830712006-09-27 16:20:59 +000013092006-09-28 David Turner <david@freetype.org>
1310
Werner Lemberg2c002e12006-09-29 21:31:53 +00001311 Fix a bug in the automatic unpatented hinting support which prevents
1312 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001313
Werner Lemberg2c002e12006-09-29 21:31:53 +00001314 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1315 s/force_autohint/unpatented_hinting/. Update all callers.
1316
1317 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1318
1319 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001320
David Turner8a317cf2006-09-27 07:52:48 +000013212006-09-27 David Turner <david@freetype.org>
1322
Werner Lemberg2c002e12006-09-29 21:31:53 +00001323 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001324
David Turner8a317cf2006-09-27 07:52:48 +00001325
David Turnere140f142006-10-23 08:56:57 +00001326 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001327 In a default build, the function `FT_Library_SetLcdFilter' returns
1328 `FT_Err_Unimplemented_Feature'; you need to #define
1329 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1330 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001331
Werner Lemberg2c002e12006-09-29 21:31:53 +00001332 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001333
Werner Lemberg2c002e12006-09-29 21:31:53 +00001334 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1335 typedef.
1336 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1337 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001338
Werner Lemberg2c002e12006-09-29 21:31:53 +00001339 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1340 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001341
Werner Lemberg2c002e12006-09-29 21:31:53 +00001342 Handle subpixel rendering.
1343 Simplify function.
1344 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1345 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1346
1347 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1348 pointing to <freetype/ftlcdfil.h>.
1349
1350 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1351 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1352
1353 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001354
Werner Lemberge20df4a2006-09-27 06:29:21 +000013552006-09-26 David Bustin
1356
1357 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1358 correctly. Reported as Savannah bug #17843.
1359
David Turner6f8c6222006-09-26 15:42:44 +000013602006-09-26 David Turner <david@freetype.org>
1361
Werner Lemberg110246c2006-09-26 21:55:44 +00001362 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1363 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1364 horizontal and vertical hinting for the purpose of debugging the
1365 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001366
Werner Lemberg110246c2006-09-26 21:55:44 +00001367 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1368 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001369
Werner Lemberg110246c2006-09-26 21:55:44 +00001370 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1371
1372 * include/freetype/config/ftoption.h, devel/ftoption.h
1373 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1374 we want to compile LCD-optimized rendering code (à la ClearType) or
1375 not. The macro *must* be disabled in default builds of the library
1376 for patent reasons.
1377
1378 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1379 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1380 isn't defined at compile time. This only changes the content of the
1381 rendered glyph to match the one of normal gray-level rendering,
1382 hence clients should not need to be modified.
1383
1384 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001385
Werner Lemberg745ff2c2006-09-19 05:48:02 +000013862006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1387
1388 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1389 LWFN fails and both are available.
1390
David Turnerf3050052006-09-11 12:00:32 +000013912006-09-11 David Turner <david@freetype.org>
1392
Werner Lembergf9644552006-09-12 13:48:10 +00001393 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1394 report their English names through an Apple Roman
1395 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001396
Werner Lembergf9644552006-09-12 13:48:10 +00001397 If the font uses another name entry with language_id == English, it
1398 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001399
Werner Lembergf9644552006-09-12 13:48:10 +00001400 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1401 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001402
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014032006-09-05 Werner Lemberg <wl@gnu.org>
1404
1405 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001406 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001407 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1408 `HAN NOM B.ttf').
1409
1410 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1411
David Turner772e55d2006-09-05 09:45:15 +000014122006-09-05 David Turner <david@freetype.org>
1413
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001414 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001415
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001416 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1417 (TRaster): Remove `count_ex' and `count_ey'.
1418 (gray_find_cell): Remove 2nd and 3rd argument.
1419 (gray_alloc_cell): Merged with `gray_find_cell'.
1420 (gray_record_cell): Simplify.
1421 (gray_set_cell): Rewrite.
1422 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1423 (gray_render_span): Don't use FT_MEM_SET for small values.
1424 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1425 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1426 bitmap scanline.
1427 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001428
David Turneraa557a92006-09-04 16:42:44 +000014292006-09-04 David Turner <david@freetype.org>
1430
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001431 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1432 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001433
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014342006-09-03 Werner Lemberg <wl@gnu.org>
1435
1436 * devel/ftoption.h: Synchronize with
1437 include/freetype/config/ftoption.h.
1438
1439 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1440 variable declaration.
1441 (gray_convert_glyph): Fix compiler warnings.
1442
David Turner6d79f212006-09-01 14:09:35 +000014432006-09-01 David Turner <david@freetype.org>
1444
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001445 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1446 to recognize a few fonts that require the automatic unpatented
1447 loader.
David Turnerbd502952006-09-01 19:05:24 +00001448
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001449 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1450 rasterizer. The speed improvement is between 15% and 25%, depending
1451 on the font data.
1452
1453 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1454 (TCell): Redefine.
1455 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1456 (gray_init_cells): Updated.
1457 (gray_find_cell, gray_alloc_cell): New functions.
1458 (gray_record_cell): Rewritten to use `gray_find_cell' and
1459 `gray_alloc_cell'.
1460 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1461 QSORT_THRESHOLD):
1462 Removed.
1463 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1464 gray_dump_cells): Removed.
1465 (gray_sweep): Rewritten.
1466 (gray_convert_glyph): Rewrite code which used one of the sorting
1467 functions.
1468 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001469
Werner Lembergd898aed2006-08-29 09:50:34 +000014702006-08-29 Dr. Werner Fink <werner@suse.de>
1471
1472 * configure: Make it possible to handle configure options which
1473 have strings containing spaces.
1474
14752006-08-27 David Turner <david@freetype.org>
1476
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001477 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1478 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1479 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1480
1481 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1482 src/truetype/truetype.c, src/truetype/ttdriver.c,
1483 src/truetype/ttgload.c, src/truetype/ttgload.h,
1484 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1485 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1486 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1487
1488 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1489 member `force_autohint'.
1490
1491 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1492
1493 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1494 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001495
Jens Claudiusa787f452006-08-27 11:26:18 +000014962006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1497
1498 Fix miscellaneous compiler warnings.
1499
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001500 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1501 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001502
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001503 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1504 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1505 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001506
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001507 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1508 volatileness of argument to ft_longjmp. Spotted by Werner
1509 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001510
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001511 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1512 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001513
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001514 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1515 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001516
Werner Lembergc4c35b72006-08-27 08:03:46 +000015172006-08-27 Werner Lemberg <wl@gnu.org>
1518
1519 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1520 Reported by Jens.
1521
Jens Claudius088e44e2006-08-22 14:24:30 +000015222006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001523
Jens Claudius088e44e2006-08-22 14:24:30 +00001524 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001525 about addresses of volatile objects passed as function arguments as
1526 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001527
Werner Lembergc4c35b72006-08-27 08:03:46 +00001528 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1529 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001530
1531 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1532 argument `table' a pointer to a volatile object.
1533
1534 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1535 argument `table' a pointer to a volatile object.
1536
Jens Claudius2652bd52006-08-18 17:20:37 +000015372006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1538
1539 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1540 variable `_sfnt' as volatile since it must keep its value across
1541 a call to ft_setjmp.
1542 (gxv_validate): Same for local variables `memory' and `valid'.
1543 (classic_kern_validate): Same for local variables `memory',
1544 `ckern', and `valid'.
1545
1546 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1547 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1548 `jstf', and 'valid'.
1549
1550 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1551 local variable `cmap'.
1552
David Turner9fbfc6a2006-08-16 09:11:31 +000015532006-08-16 David Turner <david@freetype.org>
1554
Werner Lemberg12342992006-08-19 11:18:09 +00001555 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1556 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001557
Werner Lemberg12342992006-08-19 11:18:09 +00001558 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1559 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001560
David Turner33f5f242006-08-16 16:50:55 +00001561
Werner Lemberg12342992006-08-19 11:18:09 +00001562 Improvements to native TrueType hinting. This is a first try,
1563 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1564
1565 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1566 `extra_points2'.
1567
1568 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1569 `orus'.
1570
1571 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1572 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1573 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1574 handle `extra_points2'.
1575
1576 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1577 Remove compiler warning.
1578 (cur_to_arg): Remove macro.
1579 (TT_Hint_Glyph): Updated.
1580 (TT_Process_Simple_Glyph): Handle `orus'.
1581
1582 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1583 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1584 (LOC_Ins_IUP): Renamed to...
1585 (IUP_WorkerRec): This.
1586 Add `orus' member.
1587 (Shift): Renamed to...
1588 (_iup_worker_shift): This.
1589 Updated.
1590 (Interp): Renamed to...
1591 (_iup_worker_interpolate): This.
1592 Updated to handle `orus'.
1593 (Ins_IUP): Updated.
1594
1595 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1596 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001597
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000015982006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1599
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001600 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001601 build ftvalid in ft2demos. This has been inadvertedly changed
1602 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001603
16042006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1605
Werner Lemberg12342992006-08-19 11:18:09 +00001606 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1607 Jens:
1608 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001609
Werner Lemberg12342992006-08-19 11:18:09 +00001610 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1611 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001612
1613 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1614
Jens Claudius9950adc2006-08-13 12:14:36 +000016152006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1616
Werner Lemberg12342992006-08-19 11:18:09 +00001617 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1618 T1_TOKEN_TYPE_KEY.
1619 (T1_FieldRec): Add `dict'.
1620 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1621 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1622 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001623
Werner Lemberg12342992006-08-19 11:18:09 +00001624 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1625 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001626
1627 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1628
1629 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001630 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1631 not T1_TOKEN_TYPE_ANY.
1632 (ps_parser_load_field): Make sure a token that should be a string or
1633 name is really a string or name.
1634 Avoid memory leak if a keyword has been already encountered and its
1635 value is overwritten.
1636 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1637 T1_FIELD_XXX.
1638 (parse_dict): Ignore keywords that occur in the wrong dictionary
1639 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001640
Werner Lemberg12342992006-08-19 11:18:09 +00001641 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1642 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001643
Werner Lemberg12342992006-08-19 11:18:09 +00001644 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1645 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001646
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016472006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1648
1649 Move creation of field `buildchar' of T1_DecoderRec out of
1650 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1651 of it.
1652
1653 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1654 and `T1_Compute_Max_Advance'.
1655
1656 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1657 Remove field `face', add `len_buildchar'.
1658
1659 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1660 field `buildchar'.
1661
1662 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1663 finisher for T1_Decoder.
1664 (cid_slot_load_glyph): Do not ignore failure when initializing the
1665 T1_Decoder.
1666
1667 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1668 Updated.
1669 (t1_decoder_init): Remove initialization of fields `buildchar' and
1670 `len_buildchar'.
1671 (t1_decoder_done): Remove deallocation of field `buildchar'.
1672
1673 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1674 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1675 T1_Decoder.
1676 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1677 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1678 case of error.
1679
1680 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1681 `buildchar' of T1_FaceRec.
1682
1683 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1684 `buildchar' of T1_FaceRec.
1685
Werner Lemberg1a380e02006-07-14 18:28:08 +000016862006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1687
1688 * freetype2/include/freetype/internal/psaux.h: New macros
1689 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1690 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1691 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1692 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1693 (T1_DecoderRec): New fields `buildchar' and `face'.
1694 (IS_PS_TOKEN): New macro.
1695
1696 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1697 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1698
1699 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1700 `default_design_vector' and `num_default_design_vector'.
1701
1702 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1703 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1704 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1705
1706 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1707 `token' argument to be NULL if we want only to count the number of
1708 tokens.
1709 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1710 want to skip the array.
1711 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1712 want to skip the array.
1713
1714 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1715 support for (partially commented out) othersubrs 19-25, 27, and 28.
1716 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1717 (t1_decoder_done): Release new field `buildchar'.
1718
1719 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1720 functions.
1721 (t1_keywords): Register them.
1722 (t1_allocate_blend): Updated.
1723 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1724 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1725 (parse_dict): Remove `keyword_flags' argument.
1726 Use new macro IS_PS_TOKEN.
1727 Changed function so that later PostScript definitions override
1728 earlier ones.
1729 (t1_init_loader): Initialize new field `keywords_encountered'.
1730 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1731 `len_buildchar'.
1732 Remove `keywords_flags'.
1733
1734 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1735 `keywords_encountered'.
1736 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1737
1738 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1739 New entries for parsing /NDV, /CDV, and /DesignVector.
1740
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017412006-07-07 Werner Lemberg <wl@gnu.org>
1742
1743 Add many checks to protect against malformed PCF files.
1744
1745 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1746 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1747
1748 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1749 data and check that tables don't overlap (using a simple
1750 bubblesort).
1751 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1752 New macros which give the size of data structures in the data
1753 stream.
1754 (pcf_get_properties): Use rough estimates to get array size limits.
1755 Assign `face->nprops' and `face->properties' earlier so that a call
1756 to PCF_Face_Done can do the clean-up in case of error.
1757 Protect against invalid string offsets.
1758 (pcf_get_metrics): Clean up code.
1759 Adjust tracing message levels.
1760 Use rough estimate to get array size limit.
1761 (pcf_get_bitmaps): Clean up code.
1762 Adjust tracing message levels.
1763 Use rough estimates to get offset limits.
1764 (pcf_get_encodings): Adjust tracing message level.
1765 (pcf_get_accel): Clean up code.
1766
Werner Lemberg8eb05252006-06-27 06:20:01 +000017672006-06-26 Werner Lemberg <wl@gnu.org>
1768
1769 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1770 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1771
Werner Lemberg24703f82006-06-26 19:12:51 +000017722006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1773
1774 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1775 (t1_decoder_parse_charstrings): Operator with
1776 opcode 15 pops its two arguments.
1777 Handle the case where the pops of an othersubr may be part of a
1778 subroutine.
1779 Handle unknown othersubrs gracefully: count their operands and let
1780 the following pop operators push the operands as the results onto
1781 the Type1 stack.
1782 Improve handling of setcurrentpoint opcode.
1783
Werner Lembergc011f4c2006-06-26 09:40:00 +000017842006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1785
1786 The Type 1 parser now skips over top-level procedures as required
1787 for a `Simplified Parser'. This makes the parser more robust as it
1788 doesn't poke around in PostScript code. Additionally, it makes the
1789 FontDirectory hackery in src/type1/t1load.c unnecessary.
1790
1791 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1792 (skip_literal_string): Add FT_Error as return value.
1793 Handle escapes better.
1794 (skip_string): Add FT_Error as return value.
1795 Don't set `parser->error' but return error code directly.
1796 (skip_procedure): New function.
1797 (ps_parser_skip_PS_token): Handle procedures.
1798 Update code.
1799 (ps_parser_to_token): Update code.
1800 (ps_parser_load_field_table): Handle bbox entries also.
1801
1802 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1803 Add commented-out code for synthetic fonts.
1804
Werner Lemberga2da05c2006-06-25 06:27:27 +000018052006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1806
1807 Fix two hinting bugs as reported in
1808 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1809
1810 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1811 `first_point' member.
1812
1813 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1814 `first_point'.
1815 (TT_Process_Composite_Glyph): Always untouch points.
1816
1817 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1818 `first_point' and `last_point' in case of composite glyphs.
1819 (Ins_IUP): Fix computation of `end_point'.
1820
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018212006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1822
Werner Lembergef3d2c22006-06-25 06:07:14 +00001823 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1824 Mac. The original patch was written by David Sachitano and Lawrence
1825 Coopet, and modified by Sean McBride for MPW compatibility. Only
1826 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001827
Werner Lembergef3d2c22006-06-25 06:07:14 +00001828 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1829 Mac OS X platforms.
1830 (OS_INLINE): Undefine before definition.
1831 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1832 FontAssociation table in FOND resource.
1833 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1834 and fontSize at each entry of FontAssociation table in FOND
1835 resource.
1836 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1837 ffStylOff of FamilyRecord header of FOND resource, the header,
1838 fontSize, fontID at each entry of FontAssociation table, and
1839 StyleMapping table.
1840 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001841
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018422006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1843
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001844 Public API of TrueTypeGX, OpenType, and classic kern table validator
1845 should return `FT_Err_Unimplemented_Feature' if validation service
1846 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001847 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001848 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1849
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001850 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1851 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1852 unavailable.
1853 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1854 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001855
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001856 * src/base/ftotval.c (FT_OpenType_Validate): Return
1857 FT_Err_Unimplemented_Feature if OpenType validation service is
1858 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001859
Werner Lembergb10e45a2006-06-08 07:32:56 +000018602006-06-08 Werner Lemberg <wl@gnu.org>
1861
1862 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1863 errors.
1864
David Turner5f1f7502006-06-07 05:11:50 +000018652006-06-07 David Turner <david@freetype.org>
1866
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001867 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1868 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1869 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001870
David Turner457b4a82006-06-06 08:14:14 +000018712006-06-06 David Turner <david@freetype.org>
1872
Werner Lemberg4836f952006-06-06 12:54:08 +00001873 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001874
Werner Lemberg4836f952006-06-06 12:54:08 +00001875 We change `ps_unicodes_init' so that it also takes a
1876 `free_glyph_name' callback to release the glyph names returned by
1877 `get_glyph_name'
1878
1879 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1880 Renamed to ...
1881 (PS_GetGlyphNameFunc): This.
1882 (PS_FreeGlyphNameFunc): New typedef.
1883 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1884
1885 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1886 argument.
1887 (cff_sid_free_glyph_name): New function.
1888 (cff_cmap_unicode_init): Updated.
1889
1890 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1891
1892 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1893 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001894
1895
David Turner09717352006-06-04 14:33:08 +000018962006-06-04 David Turner <david@freetype.org>
1897
Werner Lembergd724f202006-06-04 15:17:41 +00001898 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1899 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001900 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001901
Werner Lembergd724f202006-06-04 15:17:41 +00001902 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1903 of `face->num_glyphs' which missed the last glyph, due to
1904 the offset-by-1 computation, since the PFR format doesn't
1905 guarantee that glyph index 0 corresponds to the `missing
1906 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001907
Werner Lemberg33779662006-05-26 06:30:05 +000019082006-05-25 Werner Lemberg <wl@gnu.org>
1909
1910 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1911 `-no-undefined'. Reported by Christian Biesinger.
1912
Werner Lemberg24773d62006-05-20 08:53:13 +000019132006-05-19 Brian Weed <bw@imaginengine.com>
1914
1915 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1916 have debug information, and debug libraries use `C7 compatible'
1917 debug info.
1918
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019192006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1920
Werner Lemberga6523a62006-05-20 08:47:01 +00001921 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001922 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001923
Werner Lemberga6523a62006-05-20 08:47:01 +00001924 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1925 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001926
1927 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001928 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001929
19302006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1931
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001932 * build/unix/configure.raw: Add a fallback to disable Carbon
1933 dependency, if configured with no options on Mac OS X.
1934
19352006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1936
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001937 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001938 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001939 the second part of Savannah bug #16590.
1940
Werner Lemberg545c4e52006-05-17 22:55:04 +000019412006-05-18 Werner Lemberg <wl@gnu.org>
1942
1943 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1944 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1945
David Turnerdc3ff312006-05-17 12:59:35 +000019462006-05-17 David Turner <david@freetype.org>
1947
Werner Lemberg545c4e52006-05-17 22:55:04 +00001948 This is a major patch used to drastically improve the performance of
1949 loading glyphs. This both speeds up loading the glyph vectors
1950 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001951
Werner Lemberg545c4e52006-05-17 22:55:04 +00001952 We now use inline assembler code with GCC to implement `FT_MulFix',
1953 which is probably the most important function related to the
1954 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001955
Werner Lemberg545c4e52006-05-17 22:55:04 +00001956 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001957
1958
Werner Lemberg545c4e52006-05-17 22:55:04 +00001959 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1960 `cursor' and `limit'.
1961
1962 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1963 New functions.
1964 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1965 [TEST]: Remove.
1966
1967 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1968 code.
1969
1970 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1971 `FT_ZERO'
1972 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1973 (af_glyph_hints_reload: Rewrite recognition of weak points.
1974
1975 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1976 constant values out of the loops.
1977
1978 * src/autofit/aftypes.h: Updated.
1979
1980 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1981
1982 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1983 product to get orientation.
1984
1985 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1986 (FT_Stream_OpenGzip): Use it to handle small files directly in
1987 memory.
1988
1989 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1990 Improve performance.
1991
1992 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1993 `limit'.
1994
1995 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1996 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1997 exceedingly large values of number of contours. Speed up by
1998 reducing the number of loops.
1999
2000 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2001
2002
2003 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2004 used to detect rogue clients from 4 to 16. This is to prevent some
2005 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2006 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002007
Werner Lembergde2d90a2006-05-17 08:54:30 +000020082007-05-17 Werner Lemberg <wl@gnu.org>
2009
2010 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002011 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002012
20132006-05-16 Werner Lemberg <wl@gnu.org>
2014
2015 * docs/PROBLEMS: Updated icl issues.
2016
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002017----------------------------------------------------------------------------
2018
Werner Lemberg42b63b22007-01-21 21:01:33 +00002019Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002020David Turner, Robert Wilhelm, and Werner Lemberg.
2021
2022This file is part of the FreeType project, and may only be used, modified,
2023and distributed under the terms of the FreeType project license,
2024LICENSE.TXT. By continuing to use, modify, or distribute this file you
2025indicate that you have read the license and understand and accept it
2026fully.
2027
2028
2029Local Variables:
2030version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002031coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002032End: