blob: 77d01acc74b9ff8e7d4af4b4e98d7fcb36a98e16 [file] [log] [blame]
Werner Lembergb826fa72007-05-19 07:18:48 +000012007-05-19 Derek Clegg <dclegg@apple.com>
2
3 Savannah patch #5929.
4
5 * include/freetype/tttables.h, src/base/ftobjcs.c
6 (FT_Get_CMap_Format): New function.
7
8 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
9 `format' member.
10 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
11 cmap_info->format.
12
Werner Lemberg6f99c882007-05-19 07:01:49 +0000132007-05-19 Werner Lemberg <wl@gnu.org>
14
15 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
16 before handling subglyphs so that it can be reinitialized each time.
17 This fixes Savannah bug #19859.
18
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000192007-05-16 Werner Lemberg <wl@gnu.org>
20
21 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
22 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
23 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
24 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
25 tt_face_get_metrics): Fix type-punning issues.
26
David Turner0a24bd22007-05-15 10:54:10 +0000272007-05-15 David Turner <david@freetype.org>
28
29 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000030 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
31 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000032 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000033 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +000034
Werner Lemberg607dec72007-05-15 06:49:37 +0000352007-05-15 Graham Asher <graham.asher@btinternet.com>
36
37 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
38 variable.
39 * src/autofit/afloader.c (af_loader_load_g): Ditto.
40
41 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
42 (open_face_from_buffer): Initialize `stream'.
43 (FT_Request_Metrics): Remove unused variable.
44 Remove redundant `break' statements.
45 (FT_Get_Track_Kerning): Remove unused variable.
46
47 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
48 afm_parse_kern_data): Remove redundant
49 `break' statements.
50 (afm_parser_parse): Ditto.
51 Don't use uninitialized variables.
52
53 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
54 Use `|' operator instead of `^' to set it.
55 Update all users.
56
57 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
58 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
59
60 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
61 comparison.
62 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
63 (TT_Load_Glyph): Remove unused variable.
64
Werner Lemberg8d463a52007-05-13 16:01:55 +0000652007-05-13 Derek Clegg <dclegg@apple.com>
66
67 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
68 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
69
David Turner711cf842007-05-11 14:36:24 +0000702007-05-11 David Turner <david@freetype.org>
71
Werner Lemberg56ceaa42007-05-14 18:53:58 +000072 * src/cache/ftbasic.c, include/freetype/ftcache.h
73 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
74 functions that allow us to look up glyphs using an FTC_Scaler object
75 to specify the size, making it possible to use fractional pixel
76 sizes.
77
78 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
79 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +000080
Werner Lemberg94be20e2007-05-09 20:02:55 +0000812007-05-09 Graham Asher <graham.asher@btinternet.com>
82
83 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
84 (af_latin_metrics_scale_dim): Fix compiler warnings.
85
Werner Lemberg41271032007-05-06 04:51:48 +0000862007-05-06 Werner Lemberg <wl@gnu.org>
87
88 * builds/win32/visualce/freetype.sln: Removed, as requested by
89 Vincent.
90
Werner Lembergdf49e692007-05-04 06:30:05 +0000912007-05-04 Vincent RICHOMME <richom.v@free.fr>
92
93 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
94 PC targets.
95
96 * docs/CHANGES: Document them.
97
982007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +000099
100 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
101 mmap (which might happen on some RTOS). From Savannah patch #5909.
102
Werner Lemberg106eaf12007-05-03 07:07:47 +00001032007-05-03 Werner Lemberg <wl@gnu.org>
104
105 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
106 * include/freetype/freetype.h (FT_Set_Char_Size): Update
107 documentation.
108
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001092007-04-28 Victor Stinner <victor.stinner@inl.fr>
110
111 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
112 `cmap'.
113
Werner Lembergcc712a22007-04-27 17:16:50 +00001142007-04-27 Werner Lemberg <wl@gnu.org>
115
116 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
117 number of points in contours. Problem reported by Victor Stinner
118 <victor.stinner@haypocalc.com>.
119 (TT_Process_Simple_Glyph): Synchronize variable types.
120
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001212007-04-26 Werner Lemberg <wl@gnu.org>
122
123 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
124 zero in case of error. This fixes Savannah bug #19689.
125
David Turnera8b45e62007-05-11 14:10:30 +00001262007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
127
128 * src/truetype/ttobjs.c: fix a typo that created a speed regression
129 in the TrueType bytecode loader
130
Werner Lembergfcc1f472007-04-10 11:51:50 +00001312007-04-10 Martin Horak <horakm@centrum.cz>
132
133 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
134 Ignore `hhea' table. This fixes Savannah bug #19261.
135
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001362007-04-09 Werner Lemberg <wl@gnu.org>
137
138 * Version 2.3.4 released.
139 =========================
140
141
142 Tag sources with `VER-2-3-4'.
143
144 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
145 version number to 2.3.4.
146
147 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
148 builds/win32/visualc/freetype.dsp,
149 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
150
151 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
152
153 * builds/unix/configure.raw (version_info): Set to 9:15:3.
154
Werner Lembergf4a52a62007-04-09 08:40:11 +00001552007-04-09 Martin Horak <horakm@centrum.cz>
156
157 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
158 memory stream to avoid a crash with the incremental memory
159 interface (Savannah bug #19260).
160
David Turner1dcb4442007-04-06 08:19:04 +00001612007-04-06 David Turner <david@freetype.org>
162
Werner Lembergc81cf612007-04-06 09:28:23 +0000163 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
164 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000165
Werner Lemberg9f83e052007-04-05 02:28:23 +00001662007-04-04 Werner Lemberg <wl@gnu.org>
167
168 * Version 2.3.3 released.
169 =========================
170
171
172 Tag sources with `VER-2-3-3'.
173
174 * docs/CHANGES: Mention CVE-2007-1351.
175
David Turner7338ec22007-04-03 14:30:34 +00001762007-04-03 David Turner <david@freetype.org>
177
178 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000179 if one of the resolution values is 0, treat it as if it were the
180 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000181
David Turnere6472c12007-04-02 13:13:54 +00001822007-04-02 David Turner <david@freetype.org>
183
Werner Lemberg94f12272007-04-03 07:19:53 +0000184 Add special code to detect `extra-light' fonts and do not snap their
185 stem widths too much to avoid bizarre hinting effects.
186
187 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
188 `extra_light' members.
189
190 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
191 them.
192 (af_latin_metrics_scale_dim): Set `extra_light'.
193 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000194
David Turner3f539692007-03-28 14:53:40 +00001952007-03-28 David Turner <david@freetype.org>
196
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000197 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000198 padding.
199
Werner Lemberga08b2172007-03-28 07:17:17 +00002002007-03-28 Werner Lemberg <wl@gnu.org>
201
202 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
203 gracefully.
204 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000205 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000206 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
207 number of code points in Unicode.
208
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000209 * builds/win32/visualc/index.html,
210 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000211 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000212 s/232/233/.
213
214 * docs/CHANGES: Mention ftdiff.
215
David Turner3b242d32007-03-26 12:03:04 +00002162007-03-26 David Turner <david@freetype.org>
217
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000218 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
219 corresponding code.
220 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000221
Werner Lemberga08b2172007-03-28 07:17:17 +0000222 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000223 computations in order to ignore single-point contours. These are
224 never rasterized and correspond in certain fonts to mark-attach
225 points that are very far from the glyph's real outline, ruining the
226 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000227
Werner Lemberga08b2172007-03-28 07:17:17 +0000228 * src/autofit/afloader.c (af_loader_load_g): In the case of
229 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
230 Otherwise code that uses them will most certainly ruin the fixed
231 advance property.
David Turner23553d62007-03-26 13:37:17 +0000232
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000233 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
234 documentation and bump version number to 2.3.3.
235
236 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
237
238 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000239
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002402007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
241
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000242 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
243 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000244 * builds/vms/ftconfig.h: Ditto.
245 * include/freetype/config/ftconfig.h: Ditto.
246
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002472007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
248
Werner Lemberg14ffe092007-03-22 06:12:43 +0000249 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
250 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000251 proposed by Sean McBride:
252 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
253
2542007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
255
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000256 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
257 setjmp, proposed by Sean McBride:
258 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
259
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00002602007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
261
Werner Lembergc9f6c662007-03-21 13:30:14 +0000262 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
263 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
264 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000265
David Turner74c34eb2007-03-18 07:19:31 +00002662007-03-18 David Turner <david@freetype.org>
267
Werner Lembergc9f6c662007-03-21 13:30:14 +0000268 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
269 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000270
Werner Lembergc9f6c662007-03-21 13:30:14 +0000271 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000272
David Turner89020d92007-03-17 17:48:57 +00002732007-03-17 David Turner <david@freetype.org>
274
Werner Lembergc9f6c662007-03-21 13:30:14 +0000275 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
276 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000277
Werner Lemberg25d592a2007-03-09 07:59:35 +00002782007-03-09 Werner Lemberg <wl@gnu.org>
279
280 * Version 2.3.2 released.
281 =========================
282
283
284 Tag sources with `VER-2-3-2'.
285
286 * builds/win32/visualc/index.html,
287 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000288 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000289 s/231/232/.
290
David Turner3a51afa2007-03-08 10:50:38 +00002912007-03-08 David Turner <david@freetype.org>
292
Werner Lemberg25d592a2007-03-09 07:59:35 +0000293 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000294
Werner Lemberg25d592a2007-03-09 07:59:35 +0000295 * builds/unix/configure.raw (version_info): Set to 9:13:3.
296
297 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
298
299 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000300
Werner Lemberg1e259de2007-03-08 15:39:21 +0000301 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
302 function to work properly, over-writing user-provided buffers in
303 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000304
David Turner121cad52007-03-08 16:43:50 +0000305
Werner Lemberg3d92f082007-03-06 11:59:24 +00003062007-03-05 Werner Lemberg <wl@gnu.org>
307
308 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
309 macro for `strstr'.
310
311 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
312 `trick_names', as suggested by Ivan Nincic.
313
David Turner085bc6e2007-03-05 17:40:03 +00003142007-03-05 David Turner <david@freetype.org>
315
Werner Lembergd112cf02007-03-06 12:06:56 +0000316 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
317 case FT_Init_FreeType fails for some reason. Problem reported by
318 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000319
Werner Lembergd112cf02007-03-06 12:06:56 +0000320 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
321 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
322 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
323 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000324
Werner Lembergd112cf02007-03-06 12:06:56 +0000325 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
326 signed values, not unsigned ones. Problem reported by Johannes
327 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000328
David Turner601aefe2007-02-21 16:47:49 +00003292007-02-21 David Turner <david@freetype.org>
330
Werner Lembergde5e6862007-02-25 21:06:43 +0000331 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
332 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000333
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00003342007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
335
336 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
337 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
338 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
339
Werner Lemberga0915172007-02-16 08:12:50 +00003402007-02-16 Werner Lemberg <wl@gnu.org>
341
342 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
343 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
344
David Turner2c4500e2007-02-14 15:08:47 +00003452007-02-14 David Turner <david@freetype.org>
346
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000347 It seems that the following changes fix most of the known
348 interpreter problems with my fonts, but more testing is needed,
349 though.
350
351 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
352 (TT_MulFix14): Rewrite.
353 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
354 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000355
Werner Lembergc6a14082007-02-12 22:08:15 +00003562007-02-12 Werner Lemberg <wl@gnu.org>
357
358 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
359 warnings.
360
361 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
362 (bdf_interpret_style): Ditto.
363
David Turnerc0f9c4a2007-02-12 14:55:03 +00003642007-02-12 David Turner <david@freetype.org>
365
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000366 Simplify projection and dual-projection code interface.
367
Werner Lemberg406d25f2007-02-12 22:01:18 +0000368 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
369 FT_Vector' as argument type.
370 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
371 Updated.
372 (CUR_fast_project, CUR_fast_dualproj): New macros.
373 (Project, Dual_Project, Project_x, Project_y): Updated.
374 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
375 macros.
376
377
378 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
379 adjustments for the non-light auto-hinted modes. Gets rid of
380 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000381
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000382 * src/autofit/aflatin.c (af_latin_hints_link_segments,
383 af_latin_hints_compute_edges): Slight optimization of the segment
384 linker and better handling of serif segments to get rid of broken
385 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000386
David Turnerc0f9c4a2007-02-12 14:55:03 +0000387
Werner Lemberg442bfb82007-02-12 21:44:10 +0000388 Introduce new string functions and the corresponding macros to get
389 rid of various uses of strcpy and other `evil' functions, as well as
390 to simplify a few things.
391
392 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
393 ft_mem_strcpyn): New declarations.
394 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
395 macros.
396 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
397 functions.
398
399 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
400 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
401 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
402 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
403 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
404 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
405 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
406 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000407
Werner Lemberg406d25f2007-02-12 22:01:18 +0000408 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
409
Werner Lemberg582067d2007-02-11 15:03:05 +00004102007-02-11 Werner Lemberg <wl@gnu.org>
411
412 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
413 non-spacing glyphs.
414
Werner Lemberg8f474532007-02-07 08:31:01 +00004152007-02-07 Tom Parker <palfrey@tevp.net>
416
417 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
418 pointer.
419
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004202007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
421
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000422 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
423 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000424 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000425 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
426 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
427 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
428 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000429
430 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
431 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000432 * builds/mac/ftmac.c: Ditto.
433
4342007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
435
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000436 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000437 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000438 #include <ftmac.c>.
439
4402007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
441
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000442 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
443 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
444 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
445 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
446 FT_GetFilePath_From_Mac_ATS_Name.
447 * builds/mac/ftmac.c: Ditto.
448
4492007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
450
Werner Lembergdcbb7082007-02-08 08:54:09 +0000451 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000452 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
453 for passing to FT_New_Face_From_FSSpec.
454
4552007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
456
Werner Lembergdcbb7082007-02-08 08:54:09 +0000457 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000458 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000459
460 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
461 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000462 * builds/mac/ftmac.c (OS_INLINE): Ditto.
463
Werner Lemberg313d7772007-02-01 08:10:45 +00004642007-02-01 Werner Lemberg <wl@gnu.org>
465
466 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
467 Explain why applications shouldn't use it. Found by Alexei.
468
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004692007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000470
471 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
472 message.
473
474 * src/gxvalid/gxvmort1.c
475 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
476 message.
477
Werner Lemberg53935932007-01-31 08:53:02 +00004782007-01-31 Werner Lemberg <wl@gnu.org>
479
480
481 * Version 2.3.1 released.
482 =========================
483
484
485 Tag sources with `VER-2-3-1-FINAL'.
486
487 * builds/win32/visualc/freetype.dsp,
488 builds/win32/visualc/freetype.vcproj: s/230/231/.
489 * builds/win32/visualc/index.html: s/221/231/.
490
491 * vms_make.com: Add `ftgasp'.
492
David Turnera7ee6082007-01-30 10:33:53 +00004932007-01-30 David Turner <david@freetype.org>
494
Werner Lemberg53935932007-01-31 08:53:02 +0000495 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000496
Werner Lemberg53935932007-01-31 08:53:02 +0000497 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000498
Werner Lemberg25d592a2007-03-09 07:59:35 +0000499 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000500 s/2.3.0/2.3.1/.
501
502 * builds/unix/configure.raw (version_info): Set to 9:12:3.
503
504
505 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
506 (af_loader_load_g): Disable the warper (i.e., the light hinting
507 improvements) to make a 2.3.1 bugfix release before introducing a
508 new feature. This should give us more time to tune and improve the
509 warper for the next release.
510
511 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000512
David Turnerd91eebd2007-01-26 15:05:41 +00005132007-01-25 David Turner <david@freetype.org>
514
Werner Lembergbf241762007-01-26 16:08:49 +0000515 For light auto-hinting, improve glyph advance widths and resurrect
516 normal/full hinting to its normal quality.
517
518 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
519 and `xmax_delta'.
520 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
521 and `xmax_delta'.
522
523 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
524 preprocessor conditional with if-clause, handling both light and
525 normal mode.
526
527 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
528 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000529
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005302007-01-25 Werner Lemberg <wl@gnu.org>
531
532 * docs/release: Updated -- Savannah uses a new uploading scheme.
533
David Turnera42567b2007-01-25 12:23:37 +00005342007-01-25 David Turner <david@freetype.org>
535
Werner Lembergd7855662007-01-25 13:53:56 +0000536 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000537
Werner Lembergd7855662007-01-25 13:53:56 +0000538 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
539 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
540 functions.
David Turnera42567b2007-01-25 12:23:37 +0000541
Werner Lembergd7855662007-01-25 13:53:56 +0000542 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000543
Werner Lembergb1be9e82007-01-25 11:50:00 +00005442007-01-25 Werner Lemberg <wl@gnu.org>
545
546 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000547 correctly in a sanity check. Since this function is only used to
548 load local and global functions, any charstring that called the last
549 local/global function would fail otherwise. This fixes Savannah bug
550 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000551
552 * docs/CHANGES: Document it.
553
David Turnerb6de8d12007-01-23 15:51:50 +00005542007-01-23 David Turner <david@freetype.org>
555
Werner Lembergb1be9e82007-01-25 11:50:00 +0000556 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
557 prevented compilation when disabling both the unpatented and the
558 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000559
Werner Lembergb1be9e82007-01-25 11:50:00 +0000560
561 Fix and enable the warper to improve `light' hinting mode. This is
562 not necessarily a final version, but it seems to work well.
563
564 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
565 Disable code.
566 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
567 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
568
569 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
570 (af_warper_compute_line_best): Fix array size of `scores'.
571 (af_warper_compute): Better handling of border cases.
572 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
573 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000574
Werner Lemberg011d1112007-01-21 09:36:00 +00005752007-01-21 Werner Lemberg <wl@gnu.org>
576
Werner Lemberg42b63b22007-01-21 21:01:33 +0000577 * ChangeLog: Split off older entries into...
578 * ChangeLog.22: This new file.
579
5802007-01-21 Werner Lemberg <wl@gnu.org>
581
Werner Lemberg555258f2007-01-21 09:46:37 +0000582 * docs/CHANGES: Document SHZ fix.
583
5842007-01-21 George Williams <gww@silcom.com>
585
586 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
587 points.
588
5892007-01-21 Werner Lemberg <wl@gnu.org>
590
Werner Lemberg011d1112007-01-21 09:36:00 +0000591 * src/sfnt/ttmtx.c (tt_face_get_metrics)
592 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
593
Werner Lemberg87a5a432007-01-17 12:44:39 +00005942007-01-17 Werner Lemberg <wl@gnu.org>
595
Werner Lembergb8003292007-01-17 12:56:25 +0000596
597 * Version 2.3.0 released.
598 =========================
599
600
601 Tag sources with `VER-2-3-0-FINAL'.
602
6032007-01-17 Werner Lemberg <wl@gnu.org>
604
Werner Lemberg87a5a432007-01-17 12:44:39 +0000605 * docs/release: Updated.
606
David Turner22122722007-01-16 20:06:44 +00006072007-01-16 David Turner <david@freetype.org>
608
Werner Lemberg87a5a432007-01-17 12:44:39 +0000609 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
610 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
611 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
612 warnings.
David Turner22122722007-01-16 20:06:44 +0000613
Werner Lemberg267e1d72007-01-15 07:48:09 +00006142007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
615
616 * builds/amiga/makefile, builds/amiga/makefile.os4,
617 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
618
619 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
620
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006212007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
622
623 Fix various compiler warnings.
624
625 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
626 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
627 s/index/strike_index/.
628 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
629
630 * src/gxvalid/gxvmorx5.c
631 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
632
633 * src/truetype/ttinterp.c (Compute_Point_Displacement),
634 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
635 uninitialized variables.
636
Werner Lemberg6164a9d2007-01-13 23:01:36 +00006372007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
638
639 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
640
Werner Lemberg281c1482007-01-13 22:50:51 +00006412007-01-13 Werner Lemberg <wl@gnu.org>
642
643 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
644 versions up to 0x3FF without complaining.
645
Werner Lembergac250b22007-01-13 14:01:36 +00006462007-01-13 Derek Clegg <dclegg@apple.com>
647
648 Add FT_Get_PS_Font_Info interface to CFF driver.
649
650 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
651 (CFF_FontRec): Add `font_info' field.
652
653 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
654 (cff_font_done): Free font->font_info if necessary.
655
656 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
657 (cff_service_ps_info): Register cff_ps_get_font_info.
658
Werner Lemberg23df31a2007-01-13 08:45:00 +00006592007-01-13 Werner Lemberg <wl@gnu.org>
660
661 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
662 with C++ compiler.
663
664 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
665 af_glyph_hints_dump_edges): Ditto.
666
667 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
668 `modules.cfg').
669
670 * src/sfnt/ttsbit0.h: Remove.
671
672 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
673
Werner Lemberg27cf9de2007-01-13 07:34:23 +00006742007-01-12 David Turner <david@freetype.org>
675
676 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
677 bug in the bitmap emboldener if the pitch of the source bitmap is
678 much larger than its width.
679
680 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
681 compilation warning.
682
Werner Lemberg6d96d312007-01-12 10:30:19 +00006832007-01-12 Werner Lemberg <wl@gnu.org>
684
685 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
686 `automake' CVS module from sources.redhat.com.
687
Werner Lemberg17432b52007-01-12 09:28:44 +00006882007-01-11 Werner Lemberg <wl@gnu.org>
689
690 * src/type1/t1load.c (is_space): Removed.
691 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
692 (parse_charstrings): Use IS_PS_TOKEN.
693
694
695 * autogen.sh: Avoid bash specific syntax.
696
David Turner038ace22007-01-11 15:00:59 +00006972007-01-11 David Turner <david@freetype.org>
698
Werner Lemberg17432b52007-01-12 09:28:44 +0000699 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000700
Werner Lemberg17432b52007-01-12 09:28:44 +0000701 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000702
Werner Lemberg17432b52007-01-12 09:28:44 +0000703 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
704 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000705 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000706
Werner Lemberg17432b52007-01-12 09:28:44 +0000707 * autogen.sh: Small fix to get it working on Mac OS X properly:
708 The issue is that GNU libtool is called `glibtool' on this platform,
709 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000710
David Turner2628ea92007-01-10 13:15:56 +00007112007-01-10 David Turner <david@freetype.org>
712
Werner Lemberg17432b52007-01-12 09:28:44 +0000713 * all-sources: Tag all sources with VER-2-3-0-RC1 and
714 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000715
Werner Lemberg17432b52007-01-12 09:28:44 +0000716 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
717 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
718 version number to 2.3.0.
719
720 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
721 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000722
723 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000724 include/freetype/ftlcdfil.h: Update reference documentation with
725 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000726
Werner Lemberg17432b52007-01-12 09:28:44 +0000727 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
728 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000729
Werner Lembergbf02d392007-01-10 07:07:37 +00007302007-01-10 Derek Clegg <dclegg@apple.com>
731
732 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
733 values.
734
David Turnerf48b60e2007-01-08 15:15:32 +00007352007-01-08 David Turner <david@freetype.org>
736
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000737 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000738
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000739 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
740 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000741 corresponding to a given character pixel size.
742
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000743 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
744 `gasp' table, in order to avoid potential problems with later
745 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000746
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000747 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
748 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000749
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000750 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
751 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
752 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
753 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000754
Werner Lemberge6b6f372007-01-07 00:06:47 +00007552007-01-07 Werner Lemberg <wl@gnu.org>
756
Werner Lembergb8004d22007-01-07 09:13:38 +0000757 * src/cid/cidparse.c (cid_parser_new): Improve error message for
758 Type 11 fonts.
759 Scan for `/sfnts' token.
760
7612007-01-07 Werner Lemberg <wl@gnu.org>
762
763 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000764
Werner Lembergbe5f7972007-01-06 07:51:48 +00007652007-01-06 Werner Lemberg <wl@gnu.org>
766
767 * src/cff/cffload.c (cff_index_init): Remove unused variable.
768 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
769
David Turnera8cf42b2007-01-04 16:46:46 +00007702007-01-04 David Turner <david@freetype.org>
771
Werner Lembergf6294392007-01-06 07:47:45 +0000772 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
773 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000774
Werner Lembergf6294392007-01-06 07:47:45 +0000775
776 Do not allocate interpreter-specific tables in memory if we are not
777 going to load glyphs with the bytecode interpreter anyway.
778
779 * src/truetype/ttgload.c (tt_loader_init): Load execution context
780 only if glyph is hinted.
781 Updated.
782 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
783 and `cvs_ready'.
784 Add `tt_size_ready_bytecode' declaration.
785 * src/truetype/ttobjs.c (tt_size_done_bytecode,
786 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
787 (tt_size_init): Move most code into `tt_size_init_bytecode'.
788 (tt_size_done): Move most code into `tt_size_done_bytecode'.
789 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000790
David Turner91a34022007-01-05 14:47:08 +0000791
Werner Lembergf6294392007-01-06 07:47:45 +0000792 Don't extract the metrics table from the SFNT font file. Instead,
793 reparse it on each glyph load. The runtime difference is not
794 noticeable, and it can save a lot of heap memory when memory-mapped
795 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000796
Werner Lembergf6294392007-01-06 07:47:45 +0000797 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
798 `horz_metrics_offset' and `vert_metrics_ofset'.
799 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
800 Updated.
801
802
803 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
804
805
806 Do not load the CFF index offsets into memory, since this wastes a
807 *lot* of heap memory with large Asian CFF fonts. There is no
808 significant performance loss.
809
810 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
811 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
812 `data_size'.
813 (CFF_CharsetRec): Add field `num_glyphs'.
814
815 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
816 cff_charset_cid_to_gindex): New functions.
817 (cff_new_index): Renamed to...
818 (cff_index_init): This. Update all callers.
819 Updated -- some code has been moved to `cff_index_load_offsets'.
820 (cff_done_index): Renamed to...
821 (cff_index_done): This. Update all callers.
822 (cff_index_get_pointers, cff_index_access_element): Updated to use
823 stream offsets.
824 (cff_charset_compute_cids): Set `num_glyphs' field.
825 (cff_encoding_load): Updated.
826
827 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000828
8292007-01-04 David Turner <david@freetype.org>
830
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000831 * docs/INSTALL.UNIX: Simplify some parts, add reference to
832 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000833
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000834 * README.CVS: Add common problem description and solution
835 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000836
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000837 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000838
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000839 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000840
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000841 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000842
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000843 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
844 (TWorker): This.
845 Remove `count_table' and `memory'.
846 Make `grays' a pointer.
847 (TRaster): New structure.
848 (count_table): New static array.
849 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
850 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
851 ft_black_set_mode, ft_black_render): Updated.
852 (ft_black_init): Don't initialize `count_table'.
853 (ft_black_reset): Use the render pool. This saves about 6KB of
854 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000855
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000856 * src/smooth/ftgrays.c (TRaster): Replaced with...
857 (TWorker): This.
858 Remove `memory'.
859 (TRaster): New structure.
860
861 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
862 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
863 gray_render_span, gray_raster_render): Updated.
864 (gray_raster_reset): Use the render pool. This saves about 6KB of
865 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000866
David Turner8a6c44e2007-01-04 17:03:11 +0000867 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
868 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000869 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
870 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
871 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000872
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000873 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
874 Remove a typo that results in no hinting and a memory leak with some
875 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000876
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000877 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000878 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000879 CFF_Faces in it. We need to close all faces before destroying the
880 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000881
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00008822007-01-02 Werner Lemberg <wl@gnu.org>
883
884 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
885 Remove compiler warning.
886
David Turner9207e002007-01-02 16:58:13 +00008872007-01-02 David Turner <david@freetype.org>
888
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000889 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000890
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00008912006-12-31 Masatake YAMATO <jet@gyve.org>
892
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000893 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
894 function.
895 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000896 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000897 `gxv_kern_subtable_fmt0_pairs_validate'.
898
David Turner115b4422006-12-22 11:37:05 +00008992006-12-22 David Turner <david@freetype.org>
900
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000901 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
902 warnings.
David Turner115b4422006-12-22 11:37:05 +0000903
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000904 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
905 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000906
Werner Lemberg4755bf72006-12-16 08:58:44 +00009072006-12-16 Anders Kaseorg <anders@kaseorg.com>
908
909 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
910 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
911
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009122006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
913
Werner Lemberg9b774e22007-01-16 06:11:27 +0000914 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000915 sync with the modification by Jens Claudius on 2006-08-22; cf.
916 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 +0000917
9182006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
919
920 * src/base/ftmac.c: Specialized for Mac OS X only.
921 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
922 * builds/unix/configure.raw: Ditto. When explicit switches for
923 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
924 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
925
9262006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
927
928 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
929 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
930 instead of src/base/ftmac.c
931 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
932 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
933 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
934 that cannot be built at present.
935
9362006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
937
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000938 * src/base/ftobjs.c: Improvement of resource fork handler for
939 POSIX, cf.
940 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000941 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
942 format or .dfont, to simulate the face index number counted by ftmac.c.
943 (IsMacResource): Return the number of scalable faces correctly.
944
Werner Lembergec5b4502006-12-10 07:51:38 +00009452006-12-10 Werner Lemberg <wl@gnu.org>
946
947 * builds/toplevel.mk (version): Protect against `distclean' target.
948
Werner Lembergb26b3142006-12-09 20:01:43 +00009492006-12-09 Werner Lemberg <wl@gnu.org>
950
951 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
952 or `type'.
953
954 * builds/freetype.mk (version): Extracted from freetype.h, using
955 GNU make's built-in string functions.
956 (refdoc): Use $(version) instead of static version number.
957
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00009582006-12-08 Werner Lemberg <wl@gnu.org>
959
960 * builds/toplevel.mk (dist): Extract version number from freetype.h.
961
Werner Lemberg15c29502006-12-09 07:29:54 +00009622006-12-08 Vladimir Volovich <vvv@vsu.ru>
963
964 * src/tools/apinames (State): Remove final comma in structure -- xlc
965 v5 under AIX 4.3 doesn't like this.
966
David Turnerdbf3b432006-12-07 21:18:09 +00009672006-12-07 David Turner <david@freetype.org>
968
Werner Lemberg256a3512006-12-08 06:49:33 +0000969 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
970 to the spacing of auto-fitted glyphs. This only impacts rare
971 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000972
Werner Lemberg11171312006-12-03 09:43:40 +00009732006-12-03 Werner Lemberg <wl@gnu.org>
974
975 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
976
Werner Lemberg960ba592006-12-01 08:20:47 +00009772006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000978
Werner Lemberg960ba592006-12-01 08:20:47 +0000979 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
980 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
981 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000982
David Turner80658e52006-11-28 08:09:20 +0000983
Werner Lemberg960ba592006-12-01 08:20:47 +0000984 * include/freetype/ftxf86.h: Fix and extend comment so that it
985 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000986
Werner Lemberg960ba592006-12-01 08:20:47 +0000987 * include/freetype/ftchapters.h: Add `font_format' section.
988
989
990 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
991 to TOC in index page.
992
9932006-11-28 David Turner <david@freetype.org>
994
995 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
996 trying to render into a zero-width/height bitmap, not an error code.
997
998 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
999
1000 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1001 ones instead.
1002
1003 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1004 variable.
David Turner80658e52006-11-28 08:09:20 +00001005
Werner Lemberg8636c292006-11-26 22:28:13 +000010062006-11-26 Pierre Hanser <hanser@club-internet.fr>
1007
1008 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1009
Werner Lemberg960ba592006-12-01 08:20:47 +000010102006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001011
Werner Lemberg960ba592006-12-01 08:20:47 +00001012 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1013 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1014 Add stubs to link the `ftgrid' test program when debugging is
1015 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001016
Werner Lemberg960ba592006-12-01 08:20:47 +000010172006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001018
1019 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001020 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1021
1022 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1023 Emit more sensible information.
1024
1025 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1026
1027 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1028 rounding of blue values.
1029 (af_latin_hints_compute_segments): Hint segment heights.
1030 (af_latin_hints_link_segments): Reduce `len_score' value.
1031 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1032 value and use `height' member for comparisons.
1033 (af_latin_hint_edges): Extend logging message.
1034 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001035
Werner Lemberg91959bf2006-11-22 10:36:55 +000010362006-11-22 Werner Lemberg <wl@gnu.org>
1037
1038 Fix Savannah bug #15553.
1039
1040 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1041 program after a change from mono to grayscaling (and vice versa).
1042 Use correct constant for comparison to get `exec->grayscale'.
1043
Werner Lemberg913a3652006-11-19 09:19:17 +000010442006-11-18 Werner Lemberg <wl@gnu.org>
1045
1046 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001047 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001048 This patch fixes Savannah bug #18301.
1049
1050 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1051 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1052 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1053 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1054 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1055 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1056 (FNT_Load_Glyph): Check validity of `glyph_index'.
1057
David Turner7bab6ae2006-11-13 11:25:06 +000010582006-11-13 David Turner <david@freetype.org>
1059
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001060 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1061 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001062
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001063 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1064 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1065 when building the library to change the default LCD filter to be
1066 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001067
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001068 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001069
David Turner8765c712006-11-10 16:49:42 +000010702006-11-10 David Turner <david@freetype.org>
1071
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001072 * src/smooth/ftsmooth.c: API change for the LCD
1073 filter. The FT_LcdFilter value is an enumeration describing which
1074 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1075 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1076 algorithm which produces strong color fringes for everything
1077 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001078
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001079 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1080 second parameter to an enum type.
1081
1082 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1083 (_ft_lcd_filter): Rename to...
1084 (_ft_lcd_filter_fir): This.
1085 Update parameters.
1086 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1087 (FT_Library_Set_LcdFilter): Update parameters.
1088 Handle new filter modes.
1089
1090 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1091 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1092 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1093 callback and update other fields.
1094
1095 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1096 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1097 Other minor improvements.
1098
1099 * src/autofit/aflatin.c: Various tiny improvements that drastically
1100 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1101 (af_latin_hints_compute_edges): Fix typo.
1102 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001103
David Turner4e9cc3c2006-11-09 16:31:52 +000011042006-11-09 David Turner <david@freetype.org>
1105
Werner Lemberg49c77a82006-11-09 21:51:57 +00001106 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1107 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001108
Werner Lemberg5e430892006-11-07 09:35:03 +000011092006-11-07 Zhe Su <james.su@gmail.com>
1110
1111 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1112 also.
1113
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011142006-11-03 Werner Lemberg <wl@gnu.org>
1115
1116 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1117
David Turner40604742006-11-02 16:37:35 +000011182006-11-02 David Turner <david@freetype.org>
1119
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001120 Add a few tweaks to better handle serif fonts.
1121 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001122
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001123 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1124 segments that are less than 1.5 pixels high. This gets rid of
1125 *many* corner cases with serifs.
1126 (af_latin_align_linked_edge): Add logging message.
1127 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1128 Add logging messages.
1129 Handle AF_EDGE_FLAG flag specially.
1130
1131 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1132 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1133
1134 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1135 Update external declarations.
1136 (af_corner_orientation, af_corner_is_flat): Replaced by...
1137
1138 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1139 ft_corner_is_flat): These declarations.
1140
1141 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1142 Comment out. Replaced by...
1143
1144 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1145 These functions. Update all callers.
1146 (FT_Add64) [!FT_LONG64]: Simplify.
1147
1148 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1149 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1150 production of garbage by missing lots of segments.
1151
1152 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1153
1154 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1155 [AF_DEBUG]: Set _af_debug_hints.
1156
1157
1158 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1159 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1160 and ft_corner_orientation.
1161
1162
1163 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001164
Werner Lemberge88c5262006-10-24 05:46:26 +000011652006-10-24 Werner Lemberg <wl@gnu.org>
1166
1167 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1168
1169 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1170 as argument.
1171
David Turnera1861392006-10-23 16:00:59 +000011722006-10-23 Zhe Su <zsu@novell.com>
1173
Werner Lemberg715e96e2006-10-24 05:28:45 +00001174 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1175 better deal with broken Asian fonts with strange glyphs, having
1176 self-intersections and other peculiarities. The used algorithm is
1177 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001178
David Turnere140f142006-10-23 08:56:57 +000011792006-10-23 David Turner <david@freetype.org>
1180
Werner Lemberg715e96e2006-10-24 05:28:45 +00001181 Speed up the CFF font loader. With some large CFF fonts,
1182 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001183
Werner Lemberg715e96e2006-10-24 05:28:45 +00001184 * src/cff/cffload.c (cff_get_offset): Removed.
1185 (cff_new_index): Inline functionality of `cff_get_offset'.
1186 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1187 (cff_charset_done): Call `cff_charset_free_cids'.
1188 (cff_charset_load): Call `cff_charset_compute_cids'.
1189 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1190
1191 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1192 with FT_NEXT_XXX.
1193
1194
1195 Speed up the Postscript hinter, with more than 100% speed increase
1196 on my machine.
1197
1198 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1199 psh_corner_orientation): New functions.
1200 (psh_glyph_compute_inflections): Merge loops for efficiency.
1201 Use `psh_corner_orientation'.
1202 (psh_glyph_init): Use `psh_corner_is_flat'.
1203 (psh_hint_table_find_strong_point): Renamed to...
1204 (psh_hint_table_find_strong_points): This.
1205 Rewrite, adding argument to handle all points at once.
1206 Update all callers.
1207 (PSH_MAX_STRONG_INTERNAL): New macro.
1208 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001209
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012102006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1211
1212 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001213 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001214
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012152006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1216
1217 * docs/INSTALL.CROSS: New document file for cross-building.
1218
1219 * builds/unix/configure.raw: Preliminary cross-building support.
1220 Find native C compiler and pass it by CC_BUILD, and
1221 find suffix for native executable and pass it by EXEEXT_BUILD.
1222 Also suffix for target executable is passed by EXEEXT.
1223
Werner Lembergb9e6d692006-10-15 08:58:40 +00001224 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1225 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001226 CC_BUILD and EXEEXT_BUILD.
1227
Werner Lembergb9e6d692006-10-15 08:58:40 +00001228 * builds/exports.mk (APINAMES_EXE): Change the extension for
1229 apinames from the suffix for target (E) to that for building host
1230 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001231
Werner Lemberg82a07e92006-10-12 06:20:44 +000012322006-10-12 Werner Lemberg <wl@gnu.org>
1233
1234 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1235 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1236 which reference those files.
1237
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000012382006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1239
Werner Lembergb9e6d692006-10-15 08:58:40 +00001240 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1241 embedded in freetype2.pc and freetype-config. Use it to record
1242 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001243
1244 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1245
1246 * builds/unix/freetype-config.in: Ditto.
1247
Werner Lemberg28e17d92006-10-11 17:27:47 +000012482006-10-11 Werner Lemberg <wl@gnu.org>
1249
1250 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1251 development.
1252
Jens Claudius336d2292006-10-03 08:53:37 +000012532006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1254
1255 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1256 argument to ft_setjmp.
1257
1258 * include/freetype/internal/ftvalid.h: Add comment that
1259 ft_validator_run must not be used.
1260
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012612006-10-01 Werner Lemberg <wl@gnu.org>
1262
1263 * src/base/ftbase.c: Undo change from 2006-09-30.
1264
1265 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1266
12672006-09-30 David Turner <david@freetype.org>
1268
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001269 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1270 s/unpatented_hinting/ignore_unpatented_hinter/.
1271 Update all callers.
1272
1273 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1274 auto-hinting shall be used or not.
1275
1276 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001277
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012782006-09-30 Werner Lemberg <wl@gnu.org>
1279
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001280 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1281 in use).
1282
1283 * src/base/ftbase.c: Include `ftlcdfil.c'.
1284
Werner Lemberg9b15ea32006-09-29 18:22:11 +000012852006-09-29 Werner Lemberg <wl@gnu.org>
1286
1287 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1288 overlapping segments. Bug reported by Stefan Koch.
1289
David Turnerad830712006-09-27 16:20:59 +000012902006-09-28 David Turner <david@freetype.org>
1291
Werner Lemberg2c002e12006-09-29 21:31:53 +00001292 Fix a bug in the automatic unpatented hinting support which prevents
1293 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001294
Werner Lemberg2c002e12006-09-29 21:31:53 +00001295 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1296 s/force_autohint/unpatented_hinting/. Update all callers.
1297
1298 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1299
1300 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001301
David Turner8a317cf2006-09-27 07:52:48 +000013022006-09-27 David Turner <david@freetype.org>
1303
Werner Lemberg2c002e12006-09-29 21:31:53 +00001304 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001305
David Turner8a317cf2006-09-27 07:52:48 +00001306
David Turnere140f142006-10-23 08:56:57 +00001307 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001308 In a default build, the function `FT_Library_SetLcdFilter' returns
1309 `FT_Err_Unimplemented_Feature'; you need to #define
1310 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1311 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001312
Werner Lemberg2c002e12006-09-29 21:31:53 +00001313 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001314
Werner Lemberg2c002e12006-09-29 21:31:53 +00001315 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1316 typedef.
1317 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1318 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001319
Werner Lemberg2c002e12006-09-29 21:31:53 +00001320 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1321 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001322
Werner Lemberg2c002e12006-09-29 21:31:53 +00001323 Handle subpixel rendering.
1324 Simplify function.
1325 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1326 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1327
1328 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1329 pointing to <freetype/ftlcdfil.h>.
1330
1331 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1332 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1333
1334 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001335
Werner Lemberge20df4a2006-09-27 06:29:21 +000013362006-09-26 David Bustin
1337
1338 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1339 correctly. Reported as Savannah bug #17843.
1340
David Turner6f8c6222006-09-26 15:42:44 +000013412006-09-26 David Turner <david@freetype.org>
1342
Werner Lemberg110246c2006-09-26 21:55:44 +00001343 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1344 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1345 horizontal and vertical hinting for the purpose of debugging the
1346 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001347
Werner Lemberg110246c2006-09-26 21:55:44 +00001348 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1349 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001350
Werner Lemberg110246c2006-09-26 21:55:44 +00001351 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1352
1353 * include/freetype/config/ftoption.h, devel/ftoption.h
1354 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1355 we want to compile LCD-optimized rendering code (à la ClearType) or
1356 not. The macro *must* be disabled in default builds of the library
1357 for patent reasons.
1358
1359 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1360 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1361 isn't defined at compile time. This only changes the content of the
1362 rendered glyph to match the one of normal gray-level rendering,
1363 hence clients should not need to be modified.
1364
1365 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001366
Werner Lemberg745ff2c2006-09-19 05:48:02 +000013672006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1368
1369 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1370 LWFN fails and both are available.
1371
David Turnerf3050052006-09-11 12:00:32 +000013722006-09-11 David Turner <david@freetype.org>
1373
Werner Lembergf9644552006-09-12 13:48:10 +00001374 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1375 report their English names through an Apple Roman
1376 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001377
Werner Lembergf9644552006-09-12 13:48:10 +00001378 If the font uses another name entry with language_id == English, it
1379 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001380
Werner Lembergf9644552006-09-12 13:48:10 +00001381 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1382 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001383
Werner Lemberg36d2eab2006-09-05 19:24:34 +000013842006-09-05 Werner Lemberg <wl@gnu.org>
1385
1386 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001387 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001388 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1389 `HAN NOM B.ttf').
1390
1391 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1392
David Turner772e55d2006-09-05 09:45:15 +000013932006-09-05 David Turner <david@freetype.org>
1394
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001395 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001396
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001397 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1398 (TRaster): Remove `count_ex' and `count_ey'.
1399 (gray_find_cell): Remove 2nd and 3rd argument.
1400 (gray_alloc_cell): Merged with `gray_find_cell'.
1401 (gray_record_cell): Simplify.
1402 (gray_set_cell): Rewrite.
1403 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1404 (gray_render_span): Don't use FT_MEM_SET for small values.
1405 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1406 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1407 bitmap scanline.
1408 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001409
David Turneraa557a92006-09-04 16:42:44 +000014102006-09-04 David Turner <david@freetype.org>
1411
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001412 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1413 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001414
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014152006-09-03 Werner Lemberg <wl@gnu.org>
1416
1417 * devel/ftoption.h: Synchronize with
1418 include/freetype/config/ftoption.h.
1419
1420 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1421 variable declaration.
1422 (gray_convert_glyph): Fix compiler warnings.
1423
David Turner6d79f212006-09-01 14:09:35 +000014242006-09-01 David Turner <david@freetype.org>
1425
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001426 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1427 to recognize a few fonts that require the automatic unpatented
1428 loader.
David Turnerbd502952006-09-01 19:05:24 +00001429
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001430 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1431 rasterizer. The speed improvement is between 15% and 25%, depending
1432 on the font data.
1433
1434 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1435 (TCell): Redefine.
1436 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1437 (gray_init_cells): Updated.
1438 (gray_find_cell, gray_alloc_cell): New functions.
1439 (gray_record_cell): Rewritten to use `gray_find_cell' and
1440 `gray_alloc_cell'.
1441 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1442 QSORT_THRESHOLD):
1443 Removed.
1444 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1445 gray_dump_cells): Removed.
1446 (gray_sweep): Rewritten.
1447 (gray_convert_glyph): Rewrite code which used one of the sorting
1448 functions.
1449 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001450
Werner Lembergd898aed2006-08-29 09:50:34 +000014512006-08-29 Dr. Werner Fink <werner@suse.de>
1452
1453 * configure: Make it possible to handle configure options which
1454 have strings containing spaces.
1455
14562006-08-27 David Turner <david@freetype.org>
1457
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001458 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1459 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1460 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1461
1462 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1463 src/truetype/truetype.c, src/truetype/ttdriver.c,
1464 src/truetype/ttgload.c, src/truetype/ttgload.h,
1465 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1466 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1467 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1468
1469 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1470 member `force_autohint'.
1471
1472 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1473
1474 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1475 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001476
Jens Claudiusa787f452006-08-27 11:26:18 +000014772006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1478
1479 Fix miscellaneous compiler warnings.
1480
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001481 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1482 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001483
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001484 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1485 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1486 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001487
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001488 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1489 volatileness of argument to ft_longjmp. Spotted by Werner
1490 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001491
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001492 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1493 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001494
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001495 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1496 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001497
Werner Lembergc4c35b72006-08-27 08:03:46 +000014982006-08-27 Werner Lemberg <wl@gnu.org>
1499
1500 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1501 Reported by Jens.
1502
Jens Claudius088e44e2006-08-22 14:24:30 +000015032006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001504
Jens Claudius088e44e2006-08-22 14:24:30 +00001505 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001506 about addresses of volatile objects passed as function arguments as
1507 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001508
Werner Lembergc4c35b72006-08-27 08:03:46 +00001509 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1510 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001511
1512 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1513 argument `table' a pointer to a volatile object.
1514
1515 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1516 argument `table' a pointer to a volatile object.
1517
Jens Claudius2652bd52006-08-18 17:20:37 +000015182006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1519
1520 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1521 variable `_sfnt' as volatile since it must keep its value across
1522 a call to ft_setjmp.
1523 (gxv_validate): Same for local variables `memory' and `valid'.
1524 (classic_kern_validate): Same for local variables `memory',
1525 `ckern', and `valid'.
1526
1527 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1528 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1529 `jstf', and 'valid'.
1530
1531 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1532 local variable `cmap'.
1533
David Turner9fbfc6a2006-08-16 09:11:31 +000015342006-08-16 David Turner <david@freetype.org>
1535
Werner Lemberg12342992006-08-19 11:18:09 +00001536 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1537 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001538
Werner Lemberg12342992006-08-19 11:18:09 +00001539 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1540 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001541
David Turner33f5f242006-08-16 16:50:55 +00001542
Werner Lemberg12342992006-08-19 11:18:09 +00001543 Improvements to native TrueType hinting. This is a first try,
1544 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1545
1546 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1547 `extra_points2'.
1548
1549 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1550 `orus'.
1551
1552 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1553 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1554 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1555 handle `extra_points2'.
1556
1557 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1558 Remove compiler warning.
1559 (cur_to_arg): Remove macro.
1560 (TT_Hint_Glyph): Updated.
1561 (TT_Process_Simple_Glyph): Handle `orus'.
1562
1563 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1564 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1565 (LOC_Ins_IUP): Renamed to...
1566 (IUP_WorkerRec): This.
1567 Add `orus' member.
1568 (Shift): Renamed to...
1569 (_iup_worker_shift): This.
1570 Updated.
1571 (Interp): Renamed to...
1572 (_iup_worker_interpolate): This.
1573 Updated to handle `orus'.
1574 (Ins_IUP): Updated.
1575
1576 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1577 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001578
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000015792006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1580
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001581 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001582 build ftvalid in ft2demos. This has been inadvertedly changed
1583 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001584
15852006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1586
Werner Lemberg12342992006-08-19 11:18:09 +00001587 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1588 Jens:
1589 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001590
Werner Lemberg12342992006-08-19 11:18:09 +00001591 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1592 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001593
1594 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1595
Jens Claudius9950adc2006-08-13 12:14:36 +000015962006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1597
Werner Lemberg12342992006-08-19 11:18:09 +00001598 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1599 T1_TOKEN_TYPE_KEY.
1600 (T1_FieldRec): Add `dict'.
1601 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1602 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1603 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001604
Werner Lemberg12342992006-08-19 11:18:09 +00001605 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1606 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001607
1608 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1609
1610 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001611 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1612 not T1_TOKEN_TYPE_ANY.
1613 (ps_parser_load_field): Make sure a token that should be a string or
1614 name is really a string or name.
1615 Avoid memory leak if a keyword has been already encountered and its
1616 value is overwritten.
1617 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1618 T1_FIELD_XXX.
1619 (parse_dict): Ignore keywords that occur in the wrong dictionary
1620 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001621
Werner Lemberg12342992006-08-19 11:18:09 +00001622 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1623 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001624
Werner Lemberg12342992006-08-19 11:18:09 +00001625 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1626 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001627
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016282006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1629
1630 Move creation of field `buildchar' of T1_DecoderRec out of
1631 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1632 of it.
1633
1634 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1635 and `T1_Compute_Max_Advance'.
1636
1637 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1638 Remove field `face', add `len_buildchar'.
1639
1640 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1641 field `buildchar'.
1642
1643 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1644 finisher for T1_Decoder.
1645 (cid_slot_load_glyph): Do not ignore failure when initializing the
1646 T1_Decoder.
1647
1648 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1649 Updated.
1650 (t1_decoder_init): Remove initialization of fields `buildchar' and
1651 `len_buildchar'.
1652 (t1_decoder_done): Remove deallocation of field `buildchar'.
1653
1654 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1655 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1656 T1_Decoder.
1657 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1658 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1659 case of error.
1660
1661 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1662 `buildchar' of T1_FaceRec.
1663
1664 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1665 `buildchar' of T1_FaceRec.
1666
Werner Lemberg1a380e02006-07-14 18:28:08 +000016672006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1668
1669 * freetype2/include/freetype/internal/psaux.h: New macros
1670 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1671 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1672 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1673 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1674 (T1_DecoderRec): New fields `buildchar' and `face'.
1675 (IS_PS_TOKEN): New macro.
1676
1677 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1678 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1679
1680 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1681 `default_design_vector' and `num_default_design_vector'.
1682
1683 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1684 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1685 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1686
1687 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1688 `token' argument to be NULL if we want only to count the number of
1689 tokens.
1690 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1691 want to skip the array.
1692 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1693 want to skip the array.
1694
1695 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1696 support for (partially commented out) othersubrs 19-25, 27, and 28.
1697 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1698 (t1_decoder_done): Release new field `buildchar'.
1699
1700 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1701 functions.
1702 (t1_keywords): Register them.
1703 (t1_allocate_blend): Updated.
1704 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1705 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1706 (parse_dict): Remove `keyword_flags' argument.
1707 Use new macro IS_PS_TOKEN.
1708 Changed function so that later PostScript definitions override
1709 earlier ones.
1710 (t1_init_loader): Initialize new field `keywords_encountered'.
1711 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1712 `len_buildchar'.
1713 Remove `keywords_flags'.
1714
1715 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1716 `keywords_encountered'.
1717 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1718
1719 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1720 New entries for parsing /NDV, /CDV, and /DesignVector.
1721
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017222006-07-07 Werner Lemberg <wl@gnu.org>
1723
1724 Add many checks to protect against malformed PCF files.
1725
1726 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1727 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1728
1729 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1730 data and check that tables don't overlap (using a simple
1731 bubblesort).
1732 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1733 New macros which give the size of data structures in the data
1734 stream.
1735 (pcf_get_properties): Use rough estimates to get array size limits.
1736 Assign `face->nprops' and `face->properties' earlier so that a call
1737 to PCF_Face_Done can do the clean-up in case of error.
1738 Protect against invalid string offsets.
1739 (pcf_get_metrics): Clean up code.
1740 Adjust tracing message levels.
1741 Use rough estimate to get array size limit.
1742 (pcf_get_bitmaps): Clean up code.
1743 Adjust tracing message levels.
1744 Use rough estimates to get offset limits.
1745 (pcf_get_encodings): Adjust tracing message level.
1746 (pcf_get_accel): Clean up code.
1747
Werner Lemberg8eb05252006-06-27 06:20:01 +000017482006-06-26 Werner Lemberg <wl@gnu.org>
1749
1750 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1751 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1752
Werner Lemberg24703f82006-06-26 19:12:51 +000017532006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1754
1755 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1756 (t1_decoder_parse_charstrings): Operator with
1757 opcode 15 pops its two arguments.
1758 Handle the case where the pops of an othersubr may be part of a
1759 subroutine.
1760 Handle unknown othersubrs gracefully: count their operands and let
1761 the following pop operators push the operands as the results onto
1762 the Type1 stack.
1763 Improve handling of setcurrentpoint opcode.
1764
Werner Lembergc011f4c2006-06-26 09:40:00 +000017652006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1766
1767 The Type 1 parser now skips over top-level procedures as required
1768 for a `Simplified Parser'. This makes the parser more robust as it
1769 doesn't poke around in PostScript code. Additionally, it makes the
1770 FontDirectory hackery in src/type1/t1load.c unnecessary.
1771
1772 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1773 (skip_literal_string): Add FT_Error as return value.
1774 Handle escapes better.
1775 (skip_string): Add FT_Error as return value.
1776 Don't set `parser->error' but return error code directly.
1777 (skip_procedure): New function.
1778 (ps_parser_skip_PS_token): Handle procedures.
1779 Update code.
1780 (ps_parser_to_token): Update code.
1781 (ps_parser_load_field_table): Handle bbox entries also.
1782
1783 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1784 Add commented-out code for synthetic fonts.
1785
Werner Lemberga2da05c2006-06-25 06:27:27 +000017862006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1787
1788 Fix two hinting bugs as reported in
1789 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1790
1791 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1792 `first_point' member.
1793
1794 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1795 `first_point'.
1796 (TT_Process_Composite_Glyph): Always untouch points.
1797
1798 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1799 `first_point' and `last_point' in case of composite glyphs.
1800 (Ins_IUP): Fix computation of `end_point'.
1801
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018022006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1803
Werner Lembergef3d2c22006-06-25 06:07:14 +00001804 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1805 Mac. The original patch was written by David Sachitano and Lawrence
1806 Coopet, and modified by Sean McBride for MPW compatibility. Only
1807 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001808
Werner Lembergef3d2c22006-06-25 06:07:14 +00001809 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1810 Mac OS X platforms.
1811 (OS_INLINE): Undefine before definition.
1812 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1813 FontAssociation table in FOND resource.
1814 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1815 and fontSize at each entry of FontAssociation table in FOND
1816 resource.
1817 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1818 ffStylOff of FamilyRecord header of FOND resource, the header,
1819 fontSize, fontID at each entry of FontAssociation table, and
1820 StyleMapping table.
1821 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001822
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018232006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1824
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001825 Public API of TrueTypeGX, OpenType, and classic kern table validator
1826 should return `FT_Err_Unimplemented_Feature' if validation service
1827 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001828 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001829 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1830
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001831 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1832 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1833 unavailable.
1834 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1835 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001836
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001837 * src/base/ftotval.c (FT_OpenType_Validate): Return
1838 FT_Err_Unimplemented_Feature if OpenType validation service is
1839 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001840
Werner Lembergb10e45a2006-06-08 07:32:56 +000018412006-06-08 Werner Lemberg <wl@gnu.org>
1842
1843 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1844 errors.
1845
David Turner5f1f7502006-06-07 05:11:50 +000018462006-06-07 David Turner <david@freetype.org>
1847
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001848 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1849 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1850 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001851
David Turner457b4a82006-06-06 08:14:14 +000018522006-06-06 David Turner <david@freetype.org>
1853
Werner Lemberg4836f952006-06-06 12:54:08 +00001854 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001855
Werner Lemberg4836f952006-06-06 12:54:08 +00001856 We change `ps_unicodes_init' so that it also takes a
1857 `free_glyph_name' callback to release the glyph names returned by
1858 `get_glyph_name'
1859
1860 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1861 Renamed to ...
1862 (PS_GetGlyphNameFunc): This.
1863 (PS_FreeGlyphNameFunc): New typedef.
1864 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1865
1866 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1867 argument.
1868 (cff_sid_free_glyph_name): New function.
1869 (cff_cmap_unicode_init): Updated.
1870
1871 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1872
1873 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1874 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001875
1876
David Turner09717352006-06-04 14:33:08 +000018772006-06-04 David Turner <david@freetype.org>
1878
Werner Lembergd724f202006-06-04 15:17:41 +00001879 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1880 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001881 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001882
Werner Lembergd724f202006-06-04 15:17:41 +00001883 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1884 of `face->num_glyphs' which missed the last glyph, due to
1885 the offset-by-1 computation, since the PFR format doesn't
1886 guarantee that glyph index 0 corresponds to the `missing
1887 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001888
Werner Lemberg33779662006-05-26 06:30:05 +000018892006-05-25 Werner Lemberg <wl@gnu.org>
1890
1891 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1892 `-no-undefined'. Reported by Christian Biesinger.
1893
Werner Lemberg24773d62006-05-20 08:53:13 +000018942006-05-19 Brian Weed <bw@imaginengine.com>
1895
1896 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1897 have debug information, and debug libraries use `C7 compatible'
1898 debug info.
1899
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019002006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1901
Werner Lemberga6523a62006-05-20 08:47:01 +00001902 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001903 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001904
Werner Lemberga6523a62006-05-20 08:47:01 +00001905 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1906 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001907
1908 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001909 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001910
19112006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1912
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001913 * build/unix/configure.raw: Add a fallback to disable Carbon
1914 dependency, if configured with no options on Mac OS X.
1915
19162006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1917
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001918 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001919 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001920 the second part of Savannah bug #16590.
1921
Werner Lemberg545c4e52006-05-17 22:55:04 +000019222006-05-18 Werner Lemberg <wl@gnu.org>
1923
1924 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1925 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1926
David Turnerdc3ff312006-05-17 12:59:35 +000019272006-05-17 David Turner <david@freetype.org>
1928
Werner Lemberg545c4e52006-05-17 22:55:04 +00001929 This is a major patch used to drastically improve the performance of
1930 loading glyphs. This both speeds up loading the glyph vectors
1931 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001932
Werner Lemberg545c4e52006-05-17 22:55:04 +00001933 We now use inline assembler code with GCC to implement `FT_MulFix',
1934 which is probably the most important function related to the
1935 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001936
Werner Lemberg545c4e52006-05-17 22:55:04 +00001937 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001938
1939
Werner Lemberg545c4e52006-05-17 22:55:04 +00001940 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1941 `cursor' and `limit'.
1942
1943 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1944 New functions.
1945 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1946 [TEST]: Remove.
1947
1948 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1949 code.
1950
1951 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1952 `FT_ZERO'
1953 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1954 (af_glyph_hints_reload: Rewrite recognition of weak points.
1955
1956 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1957 constant values out of the loops.
1958
1959 * src/autofit/aftypes.h: Updated.
1960
1961 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1962
1963 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1964 product to get orientation.
1965
1966 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1967 (FT_Stream_OpenGzip): Use it to handle small files directly in
1968 memory.
1969
1970 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1971 Improve performance.
1972
1973 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1974 `limit'.
1975
1976 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1977 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1978 exceedingly large values of number of contours. Speed up by
1979 reducing the number of loops.
1980
1981 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1982
1983
1984 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1985 used to detect rogue clients from 4 to 16. This is to prevent some
1986 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1987 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001988
Werner Lembergde2d90a2006-05-17 08:54:30 +000019892007-05-17 Werner Lemberg <wl@gnu.org>
1990
1991 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001992 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001993
19942006-05-16 Werner Lemberg <wl@gnu.org>
1995
1996 * docs/PROBLEMS: Updated icl issues.
1997
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001998----------------------------------------------------------------------------
1999
Werner Lemberg42b63b22007-01-21 21:01:33 +00002000Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002001David Turner, Robert Wilhelm, and Werner Lemberg.
2002
2003This file is part of the FreeType project, and may only be used, modified,
2004and distributed under the terms of the FreeType project license,
2005LICENSE.TXT. By continuing to use, modify, or distribute this file you
2006indicate that you have read the license and understand and accept it
2007fully.
2008
2009
2010Local Variables:
2011version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002012coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002013End: