blob: 15a025cb6486125652ad5fe58eb9bbc6c60e11af [file] [log] [blame]
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000012007-06-19 Werner Lemberg <wl@gnu.org>
2
3 * src/sfnt/ttmtx.c (tt_face_get_metrics)
4 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
5
Werner Lembergb826fa72007-05-19 07:18:48 +000062007-05-19 Derek Clegg <dclegg@apple.com>
7
8 Savannah patch #5929.
9
10 * include/freetype/tttables.h, src/base/ftobjcs.c
11 (FT_Get_CMap_Format): New function.
12
13 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
14 `format' member.
15 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
16 cmap_info->format.
17
Werner Lemberg6f99c882007-05-19 07:01:49 +0000182007-05-19 Werner Lemberg <wl@gnu.org>
19
20 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
21 before handling subglyphs so that it can be reinitialized each time.
22 This fixes Savannah bug #19859.
23
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000242007-05-16 Werner Lemberg <wl@gnu.org>
25
26 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
27 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
28 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
29 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
30 tt_face_get_metrics): Fix type-punning issues.
31
David Turner0a24bd22007-05-15 10:54:10 +0000322007-05-15 David Turner <david@freetype.org>
33
34 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000035 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
36 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000037 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000038 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +000039
Werner Lemberg607dec72007-05-15 06:49:37 +0000402007-05-15 Graham Asher <graham.asher@btinternet.com>
41
42 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
43 variable.
44 * src/autofit/afloader.c (af_loader_load_g): Ditto.
45
46 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
47 (open_face_from_buffer): Initialize `stream'.
48 (FT_Request_Metrics): Remove unused variable.
49 Remove redundant `break' statements.
50 (FT_Get_Track_Kerning): Remove unused variable.
51
52 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
53 afm_parse_kern_data): Remove redundant
54 `break' statements.
55 (afm_parser_parse): Ditto.
56 Don't use uninitialized variables.
57
58 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
59 Use `|' operator instead of `^' to set it.
60 Update all users.
61
62 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
63 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
64
65 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
66 comparison.
67 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
68 (TT_Load_Glyph): Remove unused variable.
69
Werner Lemberg8d463a52007-05-13 16:01:55 +0000702007-05-13 Derek Clegg <dclegg@apple.com>
71
72 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
73 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
74
David Turner711cf842007-05-11 14:36:24 +0000752007-05-11 David Turner <david@freetype.org>
76
Werner Lemberg56ceaa42007-05-14 18:53:58 +000077 * src/cache/ftbasic.c, include/freetype/ftcache.h
78 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
79 functions that allow us to look up glyphs using an FTC_Scaler object
80 to specify the size, making it possible to use fractional pixel
81 sizes.
82
83 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
84 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +000085
Werner Lemberg94be20e2007-05-09 20:02:55 +0000862007-05-09 Graham Asher <graham.asher@btinternet.com>
87
88 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
89 (af_latin_metrics_scale_dim): Fix compiler warnings.
90
Werner Lemberg41271032007-05-06 04:51:48 +0000912007-05-06 Werner Lemberg <wl@gnu.org>
92
93 * builds/win32/visualce/freetype.sln: Removed, as requested by
94 Vincent.
95
Werner Lembergdf49e692007-05-04 06:30:05 +0000962007-05-04 Vincent RICHOMME <richom.v@free.fr>
97
98 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
99 PC targets.
100
101 * docs/CHANGES: Document them.
102
1032007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000104
105 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
106 mmap (which might happen on some RTOS). From Savannah patch #5909.
107
Werner Lemberg106eaf12007-05-03 07:07:47 +00001082007-05-03 Werner Lemberg <wl@gnu.org>
109
110 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
111 * include/freetype/freetype.h (FT_Set_Char_Size): Update
112 documentation.
113
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001142007-04-28 Victor Stinner <victor.stinner@inl.fr>
115
116 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
117 `cmap'.
118
Werner Lembergcc712a22007-04-27 17:16:50 +00001192007-04-27 Werner Lemberg <wl@gnu.org>
120
121 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
122 number of points in contours. Problem reported by Victor Stinner
123 <victor.stinner@haypocalc.com>.
124 (TT_Process_Simple_Glyph): Synchronize variable types.
125
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001262007-04-26 Werner Lemberg <wl@gnu.org>
127
128 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
129 zero in case of error. This fixes Savannah bug #19689.
130
David Turnera8b45e62007-05-11 14:10:30 +00001312007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
132
133 * src/truetype/ttobjs.c: fix a typo that created a speed regression
134 in the TrueType bytecode loader
135
Werner Lembergfcc1f472007-04-10 11:51:50 +00001362007-04-10 Martin Horak <horakm@centrum.cz>
137
138 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
139 Ignore `hhea' table. This fixes Savannah bug #19261.
140
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001412007-04-09 Werner Lemberg <wl@gnu.org>
142
143 * Version 2.3.4 released.
144 =========================
145
146
147 Tag sources with `VER-2-3-4'.
148
149 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
150 version number to 2.3.4.
151
152 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
153 builds/win32/visualc/freetype.dsp,
154 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
155
156 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
157
158 * builds/unix/configure.raw (version_info): Set to 9:15:3.
159
Werner Lembergf4a52a62007-04-09 08:40:11 +00001602007-04-09 Martin Horak <horakm@centrum.cz>
161
162 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
163 memory stream to avoid a crash with the incremental memory
164 interface (Savannah bug #19260).
165
David Turner1dcb4442007-04-06 08:19:04 +00001662007-04-06 David Turner <david@freetype.org>
167
Werner Lembergc81cf612007-04-06 09:28:23 +0000168 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
169 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000170
Werner Lemberg9f83e052007-04-05 02:28:23 +00001712007-04-04 Werner Lemberg <wl@gnu.org>
172
173 * Version 2.3.3 released.
174 =========================
175
176
177 Tag sources with `VER-2-3-3'.
178
179 * docs/CHANGES: Mention CVE-2007-1351.
180
David Turner7338ec22007-04-03 14:30:34 +00001812007-04-03 David Turner <david@freetype.org>
182
183 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000184 if one of the resolution values is 0, treat it as if it were the
185 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000186
David Turnere6472c12007-04-02 13:13:54 +00001872007-04-02 David Turner <david@freetype.org>
188
Werner Lemberg94f12272007-04-03 07:19:53 +0000189 Add special code to detect `extra-light' fonts and do not snap their
190 stem widths too much to avoid bizarre hinting effects.
191
192 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
193 `extra_light' members.
194
195 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
196 them.
197 (af_latin_metrics_scale_dim): Set `extra_light'.
198 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000199
David Turner3f539692007-03-28 14:53:40 +00002002007-03-28 David Turner <david@freetype.org>
201
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000202 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000203 padding.
204
Werner Lemberga08b2172007-03-28 07:17:17 +00002052007-03-28 Werner Lemberg <wl@gnu.org>
206
207 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
208 gracefully.
209 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000210 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000211 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
212 number of code points in Unicode.
213
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000214 * builds/win32/visualc/index.html,
215 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000216 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000217 s/232/233/.
218
219 * docs/CHANGES: Mention ftdiff.
220
David Turner3b242d32007-03-26 12:03:04 +00002212007-03-26 David Turner <david@freetype.org>
222
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000223 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
224 corresponding code.
225 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000226
Werner Lemberga08b2172007-03-28 07:17:17 +0000227 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000228 computations in order to ignore single-point contours. These are
229 never rasterized and correspond in certain fonts to mark-attach
230 points that are very far from the glyph's real outline, ruining the
231 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000232
Werner Lemberga08b2172007-03-28 07:17:17 +0000233 * src/autofit/afloader.c (af_loader_load_g): In the case of
234 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
235 Otherwise code that uses them will most certainly ruin the fixed
236 advance property.
David Turner23553d62007-03-26 13:37:17 +0000237
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000238 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
239 documentation and bump version number to 2.3.3.
240
241 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
242
243 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000244
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002452007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
246
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000247 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
248 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000249 * builds/vms/ftconfig.h: Ditto.
250 * include/freetype/config/ftconfig.h: Ditto.
251
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002522007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
253
Werner Lemberg14ffe092007-03-22 06:12:43 +0000254 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
255 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000256 proposed by Sean McBride:
257 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
258
2592007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
260
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000261 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
262 setjmp, proposed by Sean McBride:
263 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
264
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00002652007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
266
Werner Lembergc9f6c662007-03-21 13:30:14 +0000267 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
268 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
269 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000270
David Turner74c34eb2007-03-18 07:19:31 +00002712007-03-18 David Turner <david@freetype.org>
272
Werner Lembergc9f6c662007-03-21 13:30:14 +0000273 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
274 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000275
Werner Lembergc9f6c662007-03-21 13:30:14 +0000276 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000277
David Turner89020d92007-03-17 17:48:57 +00002782007-03-17 David Turner <david@freetype.org>
279
Werner Lembergc9f6c662007-03-21 13:30:14 +0000280 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
281 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000282
Werner Lemberg25d592a2007-03-09 07:59:35 +00002832007-03-09 Werner Lemberg <wl@gnu.org>
284
285 * Version 2.3.2 released.
286 =========================
287
288
289 Tag sources with `VER-2-3-2'.
290
291 * builds/win32/visualc/index.html,
292 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000293 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000294 s/231/232/.
295
David Turner3a51afa2007-03-08 10:50:38 +00002962007-03-08 David Turner <david@freetype.org>
297
Werner Lemberg25d592a2007-03-09 07:59:35 +0000298 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000299
Werner Lemberg25d592a2007-03-09 07:59:35 +0000300 * builds/unix/configure.raw (version_info): Set to 9:13:3.
301
302 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
303
304 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000305
Werner Lemberg1e259de2007-03-08 15:39:21 +0000306 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
307 function to work properly, over-writing user-provided buffers in
308 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000309
David Turner121cad52007-03-08 16:43:50 +0000310
Werner Lemberg3d92f082007-03-06 11:59:24 +00003112007-03-05 Werner Lemberg <wl@gnu.org>
312
313 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
314 macro for `strstr'.
315
316 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
317 `trick_names', as suggested by Ivan Nincic.
318
David Turner085bc6e2007-03-05 17:40:03 +00003192007-03-05 David Turner <david@freetype.org>
320
Werner Lembergd112cf02007-03-06 12:06:56 +0000321 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
322 case FT_Init_FreeType fails for some reason. Problem reported by
323 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000324
Werner Lembergd112cf02007-03-06 12:06:56 +0000325 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
326 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
327 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
328 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000329
Werner Lembergd112cf02007-03-06 12:06:56 +0000330 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
331 signed values, not unsigned ones. Problem reported by Johannes
332 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000333
David Turner601aefe2007-02-21 16:47:49 +00003342007-02-21 David Turner <david@freetype.org>
335
Werner Lembergde5e6862007-02-25 21:06:43 +0000336 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
337 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000338
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00003392007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
340
341 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
342 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
343 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
344
Werner Lemberga0915172007-02-16 08:12:50 +00003452007-02-16 Werner Lemberg <wl@gnu.org>
346
347 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
348 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
349
David Turner2c4500e2007-02-14 15:08:47 +00003502007-02-14 David Turner <david@freetype.org>
351
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000352 It seems that the following changes fix most of the known
353 interpreter problems with my fonts, but more testing is needed,
354 though.
355
356 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
357 (TT_MulFix14): Rewrite.
358 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
359 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000360
Werner Lembergc6a14082007-02-12 22:08:15 +00003612007-02-12 Werner Lemberg <wl@gnu.org>
362
363 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
364 warnings.
365
366 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
367 (bdf_interpret_style): Ditto.
368
David Turnerc0f9c4a2007-02-12 14:55:03 +00003692007-02-12 David Turner <david@freetype.org>
370
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000371 Simplify projection and dual-projection code interface.
372
Werner Lemberg406d25f2007-02-12 22:01:18 +0000373 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
374 FT_Vector' as argument type.
375 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
376 Updated.
377 (CUR_fast_project, CUR_fast_dualproj): New macros.
378 (Project, Dual_Project, Project_x, Project_y): Updated.
379 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
380 macros.
381
382
383 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
384 adjustments for the non-light auto-hinted modes. Gets rid of
385 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000386
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000387 * src/autofit/aflatin.c (af_latin_hints_link_segments,
388 af_latin_hints_compute_edges): Slight optimization of the segment
389 linker and better handling of serif segments to get rid of broken
390 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000391
David Turnerc0f9c4a2007-02-12 14:55:03 +0000392
Werner Lemberg442bfb82007-02-12 21:44:10 +0000393 Introduce new string functions and the corresponding macros to get
394 rid of various uses of strcpy and other `evil' functions, as well as
395 to simplify a few things.
396
397 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
398 ft_mem_strcpyn): New declarations.
399 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
400 macros.
401 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
402 functions.
403
404 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
405 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
406 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
407 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
408 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
409 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
410 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
411 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000412
Werner Lemberg406d25f2007-02-12 22:01:18 +0000413 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
414
Werner Lemberg582067d2007-02-11 15:03:05 +00004152007-02-11 Werner Lemberg <wl@gnu.org>
416
417 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
418 non-spacing glyphs.
419
Werner Lemberg8f474532007-02-07 08:31:01 +00004202007-02-07 Tom Parker <palfrey@tevp.net>
421
422 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
423 pointer.
424
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004252007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
426
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000427 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
428 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000429 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000430 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
431 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
432 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
433 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000434
435 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
436 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000437 * builds/mac/ftmac.c: Ditto.
438
4392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
440
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000441 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000442 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000443 #include <ftmac.c>.
444
4452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
446
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000447 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
448 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
449 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
450 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
451 FT_GetFilePath_From_Mac_ATS_Name.
452 * builds/mac/ftmac.c: Ditto.
453
4542007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
455
Werner Lembergdcbb7082007-02-08 08:54:09 +0000456 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000457 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
458 for passing to FT_New_Face_From_FSSpec.
459
4602007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
461
Werner Lembergdcbb7082007-02-08 08:54:09 +0000462 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000463 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000464
465 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
466 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000467 * builds/mac/ftmac.c (OS_INLINE): Ditto.
468
Werner Lemberg313d7772007-02-01 08:10:45 +00004692007-02-01 Werner Lemberg <wl@gnu.org>
470
471 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
472 Explain why applications shouldn't use it. Found by Alexei.
473
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004742007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000475
476 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
477 message.
478
479 * src/gxvalid/gxvmort1.c
480 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
481 message.
482
Werner Lemberg53935932007-01-31 08:53:02 +00004832007-01-31 Werner Lemberg <wl@gnu.org>
484
485
486 * Version 2.3.1 released.
487 =========================
488
489
490 Tag sources with `VER-2-3-1-FINAL'.
491
492 * builds/win32/visualc/freetype.dsp,
493 builds/win32/visualc/freetype.vcproj: s/230/231/.
494 * builds/win32/visualc/index.html: s/221/231/.
495
496 * vms_make.com: Add `ftgasp'.
497
David Turnera7ee6082007-01-30 10:33:53 +00004982007-01-30 David Turner <david@freetype.org>
499
Werner Lemberg53935932007-01-31 08:53:02 +0000500 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000501
Werner Lemberg53935932007-01-31 08:53:02 +0000502 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000503
Werner Lemberg25d592a2007-03-09 07:59:35 +0000504 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000505 s/2.3.0/2.3.1/.
506
507 * builds/unix/configure.raw (version_info): Set to 9:12:3.
508
509
510 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
511 (af_loader_load_g): Disable the warper (i.e., the light hinting
512 improvements) to make a 2.3.1 bugfix release before introducing a
513 new feature. This should give us more time to tune and improve the
514 warper for the next release.
515
516 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000517
David Turnerd91eebd2007-01-26 15:05:41 +00005182007-01-25 David Turner <david@freetype.org>
519
Werner Lembergbf241762007-01-26 16:08:49 +0000520 For light auto-hinting, improve glyph advance widths and resurrect
521 normal/full hinting to its normal quality.
522
523 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
524 and `xmax_delta'.
525 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
526 and `xmax_delta'.
527
528 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
529 preprocessor conditional with if-clause, handling both light and
530 normal mode.
531
532 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
533 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000534
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005352007-01-25 Werner Lemberg <wl@gnu.org>
536
537 * docs/release: Updated -- Savannah uses a new uploading scheme.
538
David Turnera42567b2007-01-25 12:23:37 +00005392007-01-25 David Turner <david@freetype.org>
540
Werner Lembergd7855662007-01-25 13:53:56 +0000541 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000542
Werner Lembergd7855662007-01-25 13:53:56 +0000543 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
544 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
545 functions.
David Turnera42567b2007-01-25 12:23:37 +0000546
Werner Lembergd7855662007-01-25 13:53:56 +0000547 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000548
Werner Lembergb1be9e82007-01-25 11:50:00 +00005492007-01-25 Werner Lemberg <wl@gnu.org>
550
551 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000552 correctly in a sanity check. Since this function is only used to
553 load local and global functions, any charstring that called the last
554 local/global function would fail otherwise. This fixes Savannah bug
555 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000556
557 * docs/CHANGES: Document it.
558
David Turnerb6de8d12007-01-23 15:51:50 +00005592007-01-23 David Turner <david@freetype.org>
560
Werner Lembergb1be9e82007-01-25 11:50:00 +0000561 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
562 prevented compilation when disabling both the unpatented and the
563 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000564
Werner Lembergb1be9e82007-01-25 11:50:00 +0000565
566 Fix and enable the warper to improve `light' hinting mode. This is
567 not necessarily a final version, but it seems to work well.
568
569 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
570 Disable code.
571 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
572 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
573
574 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
575 (af_warper_compute_line_best): Fix array size of `scores'.
576 (af_warper_compute): Better handling of border cases.
577 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
578 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000579
Werner Lemberg011d1112007-01-21 09:36:00 +00005802007-01-21 Werner Lemberg <wl@gnu.org>
581
Werner Lemberg42b63b22007-01-21 21:01:33 +0000582 * ChangeLog: Split off older entries into...
583 * ChangeLog.22: This new file.
584
5852007-01-21 Werner Lemberg <wl@gnu.org>
586
Werner Lemberg555258f2007-01-21 09:46:37 +0000587 * docs/CHANGES: Document SHZ fix.
588
5892007-01-21 George Williams <gww@silcom.com>
590
591 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
592 points.
593
5942007-01-21 Werner Lemberg <wl@gnu.org>
595
Werner Lemberg011d1112007-01-21 09:36:00 +0000596 * src/sfnt/ttmtx.c (tt_face_get_metrics)
597 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
598
Werner Lemberg87a5a432007-01-17 12:44:39 +00005992007-01-17 Werner Lemberg <wl@gnu.org>
600
Werner Lembergb8003292007-01-17 12:56:25 +0000601
602 * Version 2.3.0 released.
603 =========================
604
605
606 Tag sources with `VER-2-3-0-FINAL'.
607
6082007-01-17 Werner Lemberg <wl@gnu.org>
609
Werner Lemberg87a5a432007-01-17 12:44:39 +0000610 * docs/release: Updated.
611
David Turner22122722007-01-16 20:06:44 +00006122007-01-16 David Turner <david@freetype.org>
613
Werner Lemberg87a5a432007-01-17 12:44:39 +0000614 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
615 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
616 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
617 warnings.
David Turner22122722007-01-16 20:06:44 +0000618
Werner Lemberg267e1d72007-01-15 07:48:09 +00006192007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
620
621 * builds/amiga/makefile, builds/amiga/makefile.os4,
622 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
623
624 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
625
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006262007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
627
628 Fix various compiler warnings.
629
630 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
631 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
632 s/index/strike_index/.
633 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
634
635 * src/gxvalid/gxvmorx5.c
636 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
637
638 * src/truetype/ttinterp.c (Compute_Point_Displacement),
639 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
640 uninitialized variables.
641
Werner Lemberg6164a9d2007-01-13 23:01:36 +00006422007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
643
644 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
645
Werner Lemberg281c1482007-01-13 22:50:51 +00006462007-01-13 Werner Lemberg <wl@gnu.org>
647
648 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
649 versions up to 0x3FF without complaining.
650
Werner Lembergac250b22007-01-13 14:01:36 +00006512007-01-13 Derek Clegg <dclegg@apple.com>
652
653 Add FT_Get_PS_Font_Info interface to CFF driver.
654
655 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
656 (CFF_FontRec): Add `font_info' field.
657
658 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
659 (cff_font_done): Free font->font_info if necessary.
660
661 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
662 (cff_service_ps_info): Register cff_ps_get_font_info.
663
Werner Lemberg23df31a2007-01-13 08:45:00 +00006642007-01-13 Werner Lemberg <wl@gnu.org>
665
666 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
667 with C++ compiler.
668
669 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
670 af_glyph_hints_dump_edges): Ditto.
671
672 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
673 `modules.cfg').
674
675 * src/sfnt/ttsbit0.h: Remove.
676
677 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
678
Werner Lemberg27cf9de2007-01-13 07:34:23 +00006792007-01-12 David Turner <david@freetype.org>
680
681 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
682 bug in the bitmap emboldener if the pitch of the source bitmap is
683 much larger than its width.
684
685 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
686 compilation warning.
687
Werner Lemberg6d96d312007-01-12 10:30:19 +00006882007-01-12 Werner Lemberg <wl@gnu.org>
689
690 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
691 `automake' CVS module from sources.redhat.com.
692
Werner Lemberg17432b52007-01-12 09:28:44 +00006932007-01-11 Werner Lemberg <wl@gnu.org>
694
695 * src/type1/t1load.c (is_space): Removed.
696 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
697 (parse_charstrings): Use IS_PS_TOKEN.
698
699
700 * autogen.sh: Avoid bash specific syntax.
701
David Turner038ace22007-01-11 15:00:59 +00007022007-01-11 David Turner <david@freetype.org>
703
Werner Lemberg17432b52007-01-12 09:28:44 +0000704 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000705
Werner Lemberg17432b52007-01-12 09:28:44 +0000706 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000707
Werner Lemberg17432b52007-01-12 09:28:44 +0000708 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
709 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000710 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000711
Werner Lemberg17432b52007-01-12 09:28:44 +0000712 * autogen.sh: Small fix to get it working on Mac OS X properly:
713 The issue is that GNU libtool is called `glibtool' on this platform,
714 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000715
David Turner2628ea92007-01-10 13:15:56 +00007162007-01-10 David Turner <david@freetype.org>
717
Werner Lemberg17432b52007-01-12 09:28:44 +0000718 * all-sources: Tag all sources with VER-2-3-0-RC1 and
719 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000720
Werner Lemberg17432b52007-01-12 09:28:44 +0000721 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
722 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
723 version number to 2.3.0.
724
725 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
726 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000727
728 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000729 include/freetype/ftlcdfil.h: Update reference documentation with
730 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000731
Werner Lemberg17432b52007-01-12 09:28:44 +0000732 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
733 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000734
Werner Lembergbf02d392007-01-10 07:07:37 +00007352007-01-10 Derek Clegg <dclegg@apple.com>
736
737 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
738 values.
739
David Turnerf48b60e2007-01-08 15:15:32 +00007402007-01-08 David Turner <david@freetype.org>
741
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000742 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000743
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000744 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
745 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000746 corresponding to a given character pixel size.
747
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000748 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
749 `gasp' table, in order to avoid potential problems with later
750 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000751
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000752 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
753 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000754
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000755 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
756 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
757 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
758 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000759
Werner Lemberge6b6f372007-01-07 00:06:47 +00007602007-01-07 Werner Lemberg <wl@gnu.org>
761
Werner Lembergb8004d22007-01-07 09:13:38 +0000762 * src/cid/cidparse.c (cid_parser_new): Improve error message for
763 Type 11 fonts.
764 Scan for `/sfnts' token.
765
7662007-01-07 Werner Lemberg <wl@gnu.org>
767
768 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000769
Werner Lembergbe5f7972007-01-06 07:51:48 +00007702007-01-06 Werner Lemberg <wl@gnu.org>
771
772 * src/cff/cffload.c (cff_index_init): Remove unused variable.
773 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
774
David Turnera8cf42b2007-01-04 16:46:46 +00007752007-01-04 David Turner <david@freetype.org>
776
Werner Lembergf6294392007-01-06 07:47:45 +0000777 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
778 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000779
Werner Lembergf6294392007-01-06 07:47:45 +0000780
781 Do not allocate interpreter-specific tables in memory if we are not
782 going to load glyphs with the bytecode interpreter anyway.
783
784 * src/truetype/ttgload.c (tt_loader_init): Load execution context
785 only if glyph is hinted.
786 Updated.
787 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
788 and `cvs_ready'.
789 Add `tt_size_ready_bytecode' declaration.
790 * src/truetype/ttobjs.c (tt_size_done_bytecode,
791 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
792 (tt_size_init): Move most code into `tt_size_init_bytecode'.
793 (tt_size_done): Move most code into `tt_size_done_bytecode'.
794 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000795
David Turner91a34022007-01-05 14:47:08 +0000796
Werner Lembergf6294392007-01-06 07:47:45 +0000797 Don't extract the metrics table from the SFNT font file. Instead,
798 reparse it on each glyph load. The runtime difference is not
799 noticeable, and it can save a lot of heap memory when memory-mapped
800 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000801
Werner Lembergf6294392007-01-06 07:47:45 +0000802 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
803 `horz_metrics_offset' and `vert_metrics_ofset'.
804 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
805 Updated.
806
807
808 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
809
810
811 Do not load the CFF index offsets into memory, since this wastes a
812 *lot* of heap memory with large Asian CFF fonts. There is no
813 significant performance loss.
814
815 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
816 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
817 `data_size'.
818 (CFF_CharsetRec): Add field `num_glyphs'.
819
820 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
821 cff_charset_cid_to_gindex): New functions.
822 (cff_new_index): Renamed to...
823 (cff_index_init): This. Update all callers.
824 Updated -- some code has been moved to `cff_index_load_offsets'.
825 (cff_done_index): Renamed to...
826 (cff_index_done): This. Update all callers.
827 (cff_index_get_pointers, cff_index_access_element): Updated to use
828 stream offsets.
829 (cff_charset_compute_cids): Set `num_glyphs' field.
830 (cff_encoding_load): Updated.
831
832 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000833
8342007-01-04 David Turner <david@freetype.org>
835
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000836 * docs/INSTALL.UNIX: Simplify some parts, add reference to
837 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000838
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000839 * README.CVS: Add common problem description and solution
840 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000841
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000842 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000843
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000844 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000845
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000846 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000847
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000848 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
849 (TWorker): This.
850 Remove `count_table' and `memory'.
851 Make `grays' a pointer.
852 (TRaster): New structure.
853 (count_table): New static array.
854 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
855 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
856 ft_black_set_mode, ft_black_render): Updated.
857 (ft_black_init): Don't initialize `count_table'.
858 (ft_black_reset): Use the render pool. This saves about 6KB of
859 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000860
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000861 * src/smooth/ftgrays.c (TRaster): Replaced with...
862 (TWorker): This.
863 Remove `memory'.
864 (TRaster): New structure.
865
866 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
867 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
868 gray_render_span, gray_raster_render): Updated.
869 (gray_raster_reset): Use the render pool. This saves about 6KB of
870 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000871
David Turner8a6c44e2007-01-04 17:03:11 +0000872 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
873 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000874 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
875 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
876 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000877
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000878 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
879 Remove a typo that results in no hinting and a memory leak with some
880 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000881
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000882 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000883 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000884 CFF_Faces in it. We need to close all faces before destroying the
885 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000886
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00008872007-01-02 Werner Lemberg <wl@gnu.org>
888
889 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
890 Remove compiler warning.
891
David Turner9207e002007-01-02 16:58:13 +00008922007-01-02 David Turner <david@freetype.org>
893
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000894 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000895
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00008962006-12-31 Masatake YAMATO <jet@gyve.org>
897
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000898 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
899 function.
900 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000901 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000902 `gxv_kern_subtable_fmt0_pairs_validate'.
903
David Turner115b4422006-12-22 11:37:05 +00009042006-12-22 David Turner <david@freetype.org>
905
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000906 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
907 warnings.
David Turner115b4422006-12-22 11:37:05 +0000908
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000909 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
910 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000911
Werner Lemberg4755bf72006-12-16 08:58:44 +00009122006-12-16 Anders Kaseorg <anders@kaseorg.com>
913
914 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
915 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
916
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009172006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
918
Werner Lemberg9b774e22007-01-16 06:11:27 +0000919 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000920 sync with the modification by Jens Claudius on 2006-08-22; cf.
921 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 +0000922
9232006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
924
925 * src/base/ftmac.c: Specialized for Mac OS X only.
926 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
927 * builds/unix/configure.raw: Ditto. When explicit switches for
928 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
929 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
930
9312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
932
933 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
934 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
935 instead of src/base/ftmac.c
936 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
937 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
938 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
939 that cannot be built at present.
940
9412006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
942
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000943 * src/base/ftobjs.c: Improvement of resource fork handler for
944 POSIX, cf.
945 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000946 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
947 format or .dfont, to simulate the face index number counted by ftmac.c.
948 (IsMacResource): Return the number of scalable faces correctly.
949
Werner Lembergec5b4502006-12-10 07:51:38 +00009502006-12-10 Werner Lemberg <wl@gnu.org>
951
952 * builds/toplevel.mk (version): Protect against `distclean' target.
953
Werner Lembergb26b3142006-12-09 20:01:43 +00009542006-12-09 Werner Lemberg <wl@gnu.org>
955
956 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
957 or `type'.
958
959 * builds/freetype.mk (version): Extracted from freetype.h, using
960 GNU make's built-in string functions.
961 (refdoc): Use $(version) instead of static version number.
962
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00009632006-12-08 Werner Lemberg <wl@gnu.org>
964
965 * builds/toplevel.mk (dist): Extract version number from freetype.h.
966
Werner Lemberg15c29502006-12-09 07:29:54 +00009672006-12-08 Vladimir Volovich <vvv@vsu.ru>
968
969 * src/tools/apinames (State): Remove final comma in structure -- xlc
970 v5 under AIX 4.3 doesn't like this.
971
David Turnerdbf3b432006-12-07 21:18:09 +00009722006-12-07 David Turner <david@freetype.org>
973
Werner Lemberg256a3512006-12-08 06:49:33 +0000974 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
975 to the spacing of auto-fitted glyphs. This only impacts rare
976 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000977
Werner Lemberg11171312006-12-03 09:43:40 +00009782006-12-03 Werner Lemberg <wl@gnu.org>
979
980 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
981
Werner Lemberg960ba592006-12-01 08:20:47 +00009822006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000983
Werner Lemberg960ba592006-12-01 08:20:47 +0000984 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
985 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
986 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000987
David Turner80658e52006-11-28 08:09:20 +0000988
Werner Lemberg960ba592006-12-01 08:20:47 +0000989 * include/freetype/ftxf86.h: Fix and extend comment so that it
990 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000991
Werner Lemberg960ba592006-12-01 08:20:47 +0000992 * include/freetype/ftchapters.h: Add `font_format' section.
993
994
995 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
996 to TOC in index page.
997
9982006-11-28 David Turner <david@freetype.org>
999
1000 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1001 trying to render into a zero-width/height bitmap, not an error code.
1002
1003 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1004
1005 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1006 ones instead.
1007
1008 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1009 variable.
David Turner80658e52006-11-28 08:09:20 +00001010
Werner Lemberg8636c292006-11-26 22:28:13 +000010112006-11-26 Pierre Hanser <hanser@club-internet.fr>
1012
1013 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1014
Werner Lemberg960ba592006-12-01 08:20:47 +000010152006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001016
Werner Lemberg960ba592006-12-01 08:20:47 +00001017 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1018 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1019 Add stubs to link the `ftgrid' test program when debugging is
1020 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001021
Werner Lemberg960ba592006-12-01 08:20:47 +000010222006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001023
1024 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001025 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1026
1027 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1028 Emit more sensible information.
1029
1030 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1031
1032 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1033 rounding of blue values.
1034 (af_latin_hints_compute_segments): Hint segment heights.
1035 (af_latin_hints_link_segments): Reduce `len_score' value.
1036 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1037 value and use `height' member for comparisons.
1038 (af_latin_hint_edges): Extend logging message.
1039 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001040
Werner Lemberg91959bf2006-11-22 10:36:55 +000010412006-11-22 Werner Lemberg <wl@gnu.org>
1042
1043 Fix Savannah bug #15553.
1044
1045 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1046 program after a change from mono to grayscaling (and vice versa).
1047 Use correct constant for comparison to get `exec->grayscale'.
1048
Werner Lemberg913a3652006-11-19 09:19:17 +000010492006-11-18 Werner Lemberg <wl@gnu.org>
1050
1051 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001052 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001053 This patch fixes Savannah bug #18301.
1054
1055 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1056 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1057 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1058 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1059 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1060 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1061 (FNT_Load_Glyph): Check validity of `glyph_index'.
1062
David Turner7bab6ae2006-11-13 11:25:06 +000010632006-11-13 David Turner <david@freetype.org>
1064
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001065 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1066 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001067
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001068 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1069 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1070 when building the library to change the default LCD filter to be
1071 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001072
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001073 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001074
David Turner8765c712006-11-10 16:49:42 +000010752006-11-10 David Turner <david@freetype.org>
1076
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001077 * src/smooth/ftsmooth.c: API change for the LCD
1078 filter. The FT_LcdFilter value is an enumeration describing which
1079 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1080 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1081 algorithm which produces strong color fringes for everything
1082 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001083
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001084 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1085 second parameter to an enum type.
1086
1087 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1088 (_ft_lcd_filter): Rename to...
1089 (_ft_lcd_filter_fir): This.
1090 Update parameters.
1091 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1092 (FT_Library_Set_LcdFilter): Update parameters.
1093 Handle new filter modes.
1094
1095 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1096 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1097 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1098 callback and update other fields.
1099
1100 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1101 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1102 Other minor improvements.
1103
1104 * src/autofit/aflatin.c: Various tiny improvements that drastically
1105 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1106 (af_latin_hints_compute_edges): Fix typo.
1107 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001108
David Turner4e9cc3c2006-11-09 16:31:52 +000011092006-11-09 David Turner <david@freetype.org>
1110
Werner Lemberg49c77a82006-11-09 21:51:57 +00001111 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1112 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001113
Werner Lemberg5e430892006-11-07 09:35:03 +000011142006-11-07 Zhe Su <james.su@gmail.com>
1115
1116 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1117 also.
1118
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011192006-11-03 Werner Lemberg <wl@gnu.org>
1120
1121 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1122
David Turner40604742006-11-02 16:37:35 +000011232006-11-02 David Turner <david@freetype.org>
1124
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001125 Add a few tweaks to better handle serif fonts.
1126 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001127
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001128 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1129 segments that are less than 1.5 pixels high. This gets rid of
1130 *many* corner cases with serifs.
1131 (af_latin_align_linked_edge): Add logging message.
1132 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1133 Add logging messages.
1134 Handle AF_EDGE_FLAG flag specially.
1135
1136 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1137 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1138
1139 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1140 Update external declarations.
1141 (af_corner_orientation, af_corner_is_flat): Replaced by...
1142
1143 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1144 ft_corner_is_flat): These declarations.
1145
1146 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1147 Comment out. Replaced by...
1148
1149 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1150 These functions. Update all callers.
1151 (FT_Add64) [!FT_LONG64]: Simplify.
1152
1153 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1154 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1155 production of garbage by missing lots of segments.
1156
1157 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1158
1159 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1160 [AF_DEBUG]: Set _af_debug_hints.
1161
1162
1163 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1164 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1165 and ft_corner_orientation.
1166
1167
1168 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001169
Werner Lemberge88c5262006-10-24 05:46:26 +000011702006-10-24 Werner Lemberg <wl@gnu.org>
1171
1172 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1173
1174 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1175 as argument.
1176
David Turnera1861392006-10-23 16:00:59 +000011772006-10-23 Zhe Su <zsu@novell.com>
1178
Werner Lemberg715e96e2006-10-24 05:28:45 +00001179 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1180 better deal with broken Asian fonts with strange glyphs, having
1181 self-intersections and other peculiarities. The used algorithm is
1182 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001183
David Turnere140f142006-10-23 08:56:57 +000011842006-10-23 David Turner <david@freetype.org>
1185
Werner Lemberg715e96e2006-10-24 05:28:45 +00001186 Speed up the CFF font loader. With some large CFF fonts,
1187 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001188
Werner Lemberg715e96e2006-10-24 05:28:45 +00001189 * src/cff/cffload.c (cff_get_offset): Removed.
1190 (cff_new_index): Inline functionality of `cff_get_offset'.
1191 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1192 (cff_charset_done): Call `cff_charset_free_cids'.
1193 (cff_charset_load): Call `cff_charset_compute_cids'.
1194 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1195
1196 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1197 with FT_NEXT_XXX.
1198
1199
1200 Speed up the Postscript hinter, with more than 100% speed increase
1201 on my machine.
1202
1203 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1204 psh_corner_orientation): New functions.
1205 (psh_glyph_compute_inflections): Merge loops for efficiency.
1206 Use `psh_corner_orientation'.
1207 (psh_glyph_init): Use `psh_corner_is_flat'.
1208 (psh_hint_table_find_strong_point): Renamed to...
1209 (psh_hint_table_find_strong_points): This.
1210 Rewrite, adding argument to handle all points at once.
1211 Update all callers.
1212 (PSH_MAX_STRONG_INTERNAL): New macro.
1213 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001214
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012152006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1216
1217 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001218 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001219
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012202006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1221
1222 * docs/INSTALL.CROSS: New document file for cross-building.
1223
1224 * builds/unix/configure.raw: Preliminary cross-building support.
1225 Find native C compiler and pass it by CC_BUILD, and
1226 find suffix for native executable and pass it by EXEEXT_BUILD.
1227 Also suffix for target executable is passed by EXEEXT.
1228
Werner Lembergb9e6d692006-10-15 08:58:40 +00001229 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1230 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001231 CC_BUILD and EXEEXT_BUILD.
1232
Werner Lembergb9e6d692006-10-15 08:58:40 +00001233 * builds/exports.mk (APINAMES_EXE): Change the extension for
1234 apinames from the suffix for target (E) to that for building host
1235 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001236
Werner Lemberg82a07e92006-10-12 06:20:44 +000012372006-10-12 Werner Lemberg <wl@gnu.org>
1238
1239 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1240 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1241 which reference those files.
1242
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000012432006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1244
Werner Lembergb9e6d692006-10-15 08:58:40 +00001245 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1246 embedded in freetype2.pc and freetype-config. Use it to record
1247 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001248
1249 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1250
1251 * builds/unix/freetype-config.in: Ditto.
1252
Werner Lemberg28e17d92006-10-11 17:27:47 +000012532006-10-11 Werner Lemberg <wl@gnu.org>
1254
1255 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1256 development.
1257
Jens Claudius336d2292006-10-03 08:53:37 +000012582006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1259
1260 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1261 argument to ft_setjmp.
1262
1263 * include/freetype/internal/ftvalid.h: Add comment that
1264 ft_validator_run must not be used.
1265
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012662006-10-01 Werner Lemberg <wl@gnu.org>
1267
1268 * src/base/ftbase.c: Undo change from 2006-09-30.
1269
1270 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1271
12722006-09-30 David Turner <david@freetype.org>
1273
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001274 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1275 s/unpatented_hinting/ignore_unpatented_hinter/.
1276 Update all callers.
1277
1278 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1279 auto-hinting shall be used or not.
1280
1281 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001282
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012832006-09-30 Werner Lemberg <wl@gnu.org>
1284
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001285 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1286 in use).
1287
1288 * src/base/ftbase.c: Include `ftlcdfil.c'.
1289
Werner Lemberg9b15ea32006-09-29 18:22:11 +000012902006-09-29 Werner Lemberg <wl@gnu.org>
1291
1292 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1293 overlapping segments. Bug reported by Stefan Koch.
1294
David Turnerad830712006-09-27 16:20:59 +000012952006-09-28 David Turner <david@freetype.org>
1296
Werner Lemberg2c002e12006-09-29 21:31:53 +00001297 Fix a bug in the automatic unpatented hinting support which prevents
1298 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001299
Werner Lemberg2c002e12006-09-29 21:31:53 +00001300 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1301 s/force_autohint/unpatented_hinting/. Update all callers.
1302
1303 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1304
1305 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001306
David Turner8a317cf2006-09-27 07:52:48 +000013072006-09-27 David Turner <david@freetype.org>
1308
Werner Lemberg2c002e12006-09-29 21:31:53 +00001309 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001310
David Turner8a317cf2006-09-27 07:52:48 +00001311
David Turnere140f142006-10-23 08:56:57 +00001312 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001313 In a default build, the function `FT_Library_SetLcdFilter' returns
1314 `FT_Err_Unimplemented_Feature'; you need to #define
1315 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1316 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001317
Werner Lemberg2c002e12006-09-29 21:31:53 +00001318 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001319
Werner Lemberg2c002e12006-09-29 21:31:53 +00001320 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1321 typedef.
1322 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1323 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001324
Werner Lemberg2c002e12006-09-29 21:31:53 +00001325 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1326 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001327
Werner Lemberg2c002e12006-09-29 21:31:53 +00001328 Handle subpixel rendering.
1329 Simplify function.
1330 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1331 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1332
1333 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1334 pointing to <freetype/ftlcdfil.h>.
1335
1336 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1337 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1338
1339 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001340
Werner Lemberge20df4a2006-09-27 06:29:21 +000013412006-09-26 David Bustin
1342
1343 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1344 correctly. Reported as Savannah bug #17843.
1345
David Turner6f8c6222006-09-26 15:42:44 +000013462006-09-26 David Turner <david@freetype.org>
1347
Werner Lemberg110246c2006-09-26 21:55:44 +00001348 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1349 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1350 horizontal and vertical hinting for the purpose of debugging the
1351 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001352
Werner Lemberg110246c2006-09-26 21:55:44 +00001353 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1354 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001355
Werner Lemberg110246c2006-09-26 21:55:44 +00001356 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1357
1358 * include/freetype/config/ftoption.h, devel/ftoption.h
1359 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1360 we want to compile LCD-optimized rendering code (à la ClearType) or
1361 not. The macro *must* be disabled in default builds of the library
1362 for patent reasons.
1363
1364 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1365 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1366 isn't defined at compile time. This only changes the content of the
1367 rendered glyph to match the one of normal gray-level rendering,
1368 hence clients should not need to be modified.
1369
1370 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001371
Werner Lemberg745ff2c2006-09-19 05:48:02 +000013722006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1373
1374 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1375 LWFN fails and both are available.
1376
David Turnerf3050052006-09-11 12:00:32 +000013772006-09-11 David Turner <david@freetype.org>
1378
Werner Lembergf9644552006-09-12 13:48:10 +00001379 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1380 report their English names through an Apple Roman
1381 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001382
Werner Lembergf9644552006-09-12 13:48:10 +00001383 If the font uses another name entry with language_id == English, it
1384 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001385
Werner Lembergf9644552006-09-12 13:48:10 +00001386 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1387 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001388
Werner Lemberg36d2eab2006-09-05 19:24:34 +000013892006-09-05 Werner Lemberg <wl@gnu.org>
1390
1391 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001392 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001393 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1394 `HAN NOM B.ttf').
1395
1396 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1397
David Turner772e55d2006-09-05 09:45:15 +000013982006-09-05 David Turner <david@freetype.org>
1399
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001400 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001401
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001402 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1403 (TRaster): Remove `count_ex' and `count_ey'.
1404 (gray_find_cell): Remove 2nd and 3rd argument.
1405 (gray_alloc_cell): Merged with `gray_find_cell'.
1406 (gray_record_cell): Simplify.
1407 (gray_set_cell): Rewrite.
1408 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1409 (gray_render_span): Don't use FT_MEM_SET for small values.
1410 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1411 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1412 bitmap scanline.
1413 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001414
David Turneraa557a92006-09-04 16:42:44 +000014152006-09-04 David Turner <david@freetype.org>
1416
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001417 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1418 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001419
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014202006-09-03 Werner Lemberg <wl@gnu.org>
1421
1422 * devel/ftoption.h: Synchronize with
1423 include/freetype/config/ftoption.h.
1424
1425 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1426 variable declaration.
1427 (gray_convert_glyph): Fix compiler warnings.
1428
David Turner6d79f212006-09-01 14:09:35 +000014292006-09-01 David Turner <david@freetype.org>
1430
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001431 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1432 to recognize a few fonts that require the automatic unpatented
1433 loader.
David Turnerbd502952006-09-01 19:05:24 +00001434
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001435 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1436 rasterizer. The speed improvement is between 15% and 25%, depending
1437 on the font data.
1438
1439 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1440 (TCell): Redefine.
1441 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1442 (gray_init_cells): Updated.
1443 (gray_find_cell, gray_alloc_cell): New functions.
1444 (gray_record_cell): Rewritten to use `gray_find_cell' and
1445 `gray_alloc_cell'.
1446 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1447 QSORT_THRESHOLD):
1448 Removed.
1449 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1450 gray_dump_cells): Removed.
1451 (gray_sweep): Rewritten.
1452 (gray_convert_glyph): Rewrite code which used one of the sorting
1453 functions.
1454 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001455
Werner Lembergd898aed2006-08-29 09:50:34 +000014562006-08-29 Dr. Werner Fink <werner@suse.de>
1457
1458 * configure: Make it possible to handle configure options which
1459 have strings containing spaces.
1460
14612006-08-27 David Turner <david@freetype.org>
1462
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001463 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1464 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1465 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1466
1467 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1468 src/truetype/truetype.c, src/truetype/ttdriver.c,
1469 src/truetype/ttgload.c, src/truetype/ttgload.h,
1470 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1471 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1472 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1473
1474 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1475 member `force_autohint'.
1476
1477 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1478
1479 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1480 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001481
Jens Claudiusa787f452006-08-27 11:26:18 +000014822006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1483
1484 Fix miscellaneous compiler warnings.
1485
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001486 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1487 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001488
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001489 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1490 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1491 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001492
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001493 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1494 volatileness of argument to ft_longjmp. Spotted by Werner
1495 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001496
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001497 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1498 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001499
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001500 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1501 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001502
Werner Lembergc4c35b72006-08-27 08:03:46 +000015032006-08-27 Werner Lemberg <wl@gnu.org>
1504
1505 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1506 Reported by Jens.
1507
Jens Claudius088e44e2006-08-22 14:24:30 +000015082006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001509
Jens Claudius088e44e2006-08-22 14:24:30 +00001510 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001511 about addresses of volatile objects passed as function arguments as
1512 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001513
Werner Lembergc4c35b72006-08-27 08:03:46 +00001514 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1515 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001516
1517 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1518 argument `table' a pointer to a volatile object.
1519
1520 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1521 argument `table' a pointer to a volatile object.
1522
Jens Claudius2652bd52006-08-18 17:20:37 +000015232006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1524
1525 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1526 variable `_sfnt' as volatile since it must keep its value across
1527 a call to ft_setjmp.
1528 (gxv_validate): Same for local variables `memory' and `valid'.
1529 (classic_kern_validate): Same for local variables `memory',
1530 `ckern', and `valid'.
1531
1532 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1533 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1534 `jstf', and 'valid'.
1535
1536 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1537 local variable `cmap'.
1538
David Turner9fbfc6a2006-08-16 09:11:31 +000015392006-08-16 David Turner <david@freetype.org>
1540
Werner Lemberg12342992006-08-19 11:18:09 +00001541 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1542 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001543
Werner Lemberg12342992006-08-19 11:18:09 +00001544 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1545 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001546
David Turner33f5f242006-08-16 16:50:55 +00001547
Werner Lemberg12342992006-08-19 11:18:09 +00001548 Improvements to native TrueType hinting. This is a first try,
1549 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1550
1551 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1552 `extra_points2'.
1553
1554 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1555 `orus'.
1556
1557 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1558 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1559 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1560 handle `extra_points2'.
1561
1562 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1563 Remove compiler warning.
1564 (cur_to_arg): Remove macro.
1565 (TT_Hint_Glyph): Updated.
1566 (TT_Process_Simple_Glyph): Handle `orus'.
1567
1568 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1569 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1570 (LOC_Ins_IUP): Renamed to...
1571 (IUP_WorkerRec): This.
1572 Add `orus' member.
1573 (Shift): Renamed to...
1574 (_iup_worker_shift): This.
1575 Updated.
1576 (Interp): Renamed to...
1577 (_iup_worker_interpolate): This.
1578 Updated to handle `orus'.
1579 (Ins_IUP): Updated.
1580
1581 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1582 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001583
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000015842006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1585
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001586 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001587 build ftvalid in ft2demos. This has been inadvertedly changed
1588 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001589
15902006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1591
Werner Lemberg12342992006-08-19 11:18:09 +00001592 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1593 Jens:
1594 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001595
Werner Lemberg12342992006-08-19 11:18:09 +00001596 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1597 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001598
1599 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1600
Jens Claudius9950adc2006-08-13 12:14:36 +000016012006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1602
Werner Lemberg12342992006-08-19 11:18:09 +00001603 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1604 T1_TOKEN_TYPE_KEY.
1605 (T1_FieldRec): Add `dict'.
1606 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1607 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1608 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001609
Werner Lemberg12342992006-08-19 11:18:09 +00001610 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1611 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001612
1613 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1614
1615 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001616 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1617 not T1_TOKEN_TYPE_ANY.
1618 (ps_parser_load_field): Make sure a token that should be a string or
1619 name is really a string or name.
1620 Avoid memory leak if a keyword has been already encountered and its
1621 value is overwritten.
1622 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1623 T1_FIELD_XXX.
1624 (parse_dict): Ignore keywords that occur in the wrong dictionary
1625 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001626
Werner Lemberg12342992006-08-19 11:18:09 +00001627 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1628 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001629
Werner Lemberg12342992006-08-19 11:18:09 +00001630 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1631 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001632
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016332006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1634
1635 Move creation of field `buildchar' of T1_DecoderRec out of
1636 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1637 of it.
1638
1639 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1640 and `T1_Compute_Max_Advance'.
1641
1642 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1643 Remove field `face', add `len_buildchar'.
1644
1645 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1646 field `buildchar'.
1647
1648 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1649 finisher for T1_Decoder.
1650 (cid_slot_load_glyph): Do not ignore failure when initializing the
1651 T1_Decoder.
1652
1653 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1654 Updated.
1655 (t1_decoder_init): Remove initialization of fields `buildchar' and
1656 `len_buildchar'.
1657 (t1_decoder_done): Remove deallocation of field `buildchar'.
1658
1659 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1660 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1661 T1_Decoder.
1662 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1663 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1664 case of error.
1665
1666 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1667 `buildchar' of T1_FaceRec.
1668
1669 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1670 `buildchar' of T1_FaceRec.
1671
Werner Lemberg1a380e02006-07-14 18:28:08 +000016722006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1673
1674 * freetype2/include/freetype/internal/psaux.h: New macros
1675 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1676 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1677 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1678 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1679 (T1_DecoderRec): New fields `buildchar' and `face'.
1680 (IS_PS_TOKEN): New macro.
1681
1682 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1683 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1684
1685 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1686 `default_design_vector' and `num_default_design_vector'.
1687
1688 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1689 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1690 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1691
1692 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1693 `token' argument to be NULL if we want only to count the number of
1694 tokens.
1695 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1696 want to skip the array.
1697 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1698 want to skip the array.
1699
1700 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1701 support for (partially commented out) othersubrs 19-25, 27, and 28.
1702 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1703 (t1_decoder_done): Release new field `buildchar'.
1704
1705 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1706 functions.
1707 (t1_keywords): Register them.
1708 (t1_allocate_blend): Updated.
1709 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1710 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1711 (parse_dict): Remove `keyword_flags' argument.
1712 Use new macro IS_PS_TOKEN.
1713 Changed function so that later PostScript definitions override
1714 earlier ones.
1715 (t1_init_loader): Initialize new field `keywords_encountered'.
1716 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1717 `len_buildchar'.
1718 Remove `keywords_flags'.
1719
1720 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1721 `keywords_encountered'.
1722 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1723
1724 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1725 New entries for parsing /NDV, /CDV, and /DesignVector.
1726
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017272006-07-07 Werner Lemberg <wl@gnu.org>
1728
1729 Add many checks to protect against malformed PCF files.
1730
1731 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1732 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1733
1734 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1735 data and check that tables don't overlap (using a simple
1736 bubblesort).
1737 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1738 New macros which give the size of data structures in the data
1739 stream.
1740 (pcf_get_properties): Use rough estimates to get array size limits.
1741 Assign `face->nprops' and `face->properties' earlier so that a call
1742 to PCF_Face_Done can do the clean-up in case of error.
1743 Protect against invalid string offsets.
1744 (pcf_get_metrics): Clean up code.
1745 Adjust tracing message levels.
1746 Use rough estimate to get array size limit.
1747 (pcf_get_bitmaps): Clean up code.
1748 Adjust tracing message levels.
1749 Use rough estimates to get offset limits.
1750 (pcf_get_encodings): Adjust tracing message level.
1751 (pcf_get_accel): Clean up code.
1752
Werner Lemberg8eb05252006-06-27 06:20:01 +000017532006-06-26 Werner Lemberg <wl@gnu.org>
1754
1755 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1756 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1757
Werner Lemberg24703f82006-06-26 19:12:51 +000017582006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1759
1760 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1761 (t1_decoder_parse_charstrings): Operator with
1762 opcode 15 pops its two arguments.
1763 Handle the case where the pops of an othersubr may be part of a
1764 subroutine.
1765 Handle unknown othersubrs gracefully: count their operands and let
1766 the following pop operators push the operands as the results onto
1767 the Type1 stack.
1768 Improve handling of setcurrentpoint opcode.
1769
Werner Lembergc011f4c2006-06-26 09:40:00 +000017702006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1771
1772 The Type 1 parser now skips over top-level procedures as required
1773 for a `Simplified Parser'. This makes the parser more robust as it
1774 doesn't poke around in PostScript code. Additionally, it makes the
1775 FontDirectory hackery in src/type1/t1load.c unnecessary.
1776
1777 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1778 (skip_literal_string): Add FT_Error as return value.
1779 Handle escapes better.
1780 (skip_string): Add FT_Error as return value.
1781 Don't set `parser->error' but return error code directly.
1782 (skip_procedure): New function.
1783 (ps_parser_skip_PS_token): Handle procedures.
1784 Update code.
1785 (ps_parser_to_token): Update code.
1786 (ps_parser_load_field_table): Handle bbox entries also.
1787
1788 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1789 Add commented-out code for synthetic fonts.
1790
Werner Lemberga2da05c2006-06-25 06:27:27 +000017912006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1792
1793 Fix two hinting bugs as reported in
1794 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1795
1796 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1797 `first_point' member.
1798
1799 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1800 `first_point'.
1801 (TT_Process_Composite_Glyph): Always untouch points.
1802
1803 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1804 `first_point' and `last_point' in case of composite glyphs.
1805 (Ins_IUP): Fix computation of `end_point'.
1806
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018072006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1808
Werner Lembergef3d2c22006-06-25 06:07:14 +00001809 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1810 Mac. The original patch was written by David Sachitano and Lawrence
1811 Coopet, and modified by Sean McBride for MPW compatibility. Only
1812 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001813
Werner Lembergef3d2c22006-06-25 06:07:14 +00001814 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1815 Mac OS X platforms.
1816 (OS_INLINE): Undefine before definition.
1817 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1818 FontAssociation table in FOND resource.
1819 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1820 and fontSize at each entry of FontAssociation table in FOND
1821 resource.
1822 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1823 ffStylOff of FamilyRecord header of FOND resource, the header,
1824 fontSize, fontID at each entry of FontAssociation table, and
1825 StyleMapping table.
1826 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001827
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018282006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1829
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001830 Public API of TrueTypeGX, OpenType, and classic kern table validator
1831 should return `FT_Err_Unimplemented_Feature' if validation service
1832 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001833 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001834 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1835
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001836 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1837 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1838 unavailable.
1839 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1840 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001841
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001842 * src/base/ftotval.c (FT_OpenType_Validate): Return
1843 FT_Err_Unimplemented_Feature if OpenType validation service is
1844 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001845
Werner Lembergb10e45a2006-06-08 07:32:56 +000018462006-06-08 Werner Lemberg <wl@gnu.org>
1847
1848 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1849 errors.
1850
David Turner5f1f7502006-06-07 05:11:50 +000018512006-06-07 David Turner <david@freetype.org>
1852
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001853 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1854 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1855 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001856
David Turner457b4a82006-06-06 08:14:14 +000018572006-06-06 David Turner <david@freetype.org>
1858
Werner Lemberg4836f952006-06-06 12:54:08 +00001859 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001860
Werner Lemberg4836f952006-06-06 12:54:08 +00001861 We change `ps_unicodes_init' so that it also takes a
1862 `free_glyph_name' callback to release the glyph names returned by
1863 `get_glyph_name'
1864
1865 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1866 Renamed to ...
1867 (PS_GetGlyphNameFunc): This.
1868 (PS_FreeGlyphNameFunc): New typedef.
1869 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1870
1871 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1872 argument.
1873 (cff_sid_free_glyph_name): New function.
1874 (cff_cmap_unicode_init): Updated.
1875
1876 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1877
1878 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1879 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001880
1881
David Turner09717352006-06-04 14:33:08 +000018822006-06-04 David Turner <david@freetype.org>
1883
Werner Lembergd724f202006-06-04 15:17:41 +00001884 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1885 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001886 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001887
Werner Lembergd724f202006-06-04 15:17:41 +00001888 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1889 of `face->num_glyphs' which missed the last glyph, due to
1890 the offset-by-1 computation, since the PFR format doesn't
1891 guarantee that glyph index 0 corresponds to the `missing
1892 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001893
Werner Lemberg33779662006-05-26 06:30:05 +000018942006-05-25 Werner Lemberg <wl@gnu.org>
1895
1896 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1897 `-no-undefined'. Reported by Christian Biesinger.
1898
Werner Lemberg24773d62006-05-20 08:53:13 +000018992006-05-19 Brian Weed <bw@imaginengine.com>
1900
1901 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1902 have debug information, and debug libraries use `C7 compatible'
1903 debug info.
1904
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019052006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1906
Werner Lemberga6523a62006-05-20 08:47:01 +00001907 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001908 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001909
Werner Lemberga6523a62006-05-20 08:47:01 +00001910 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1911 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001912
1913 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001914 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001915
19162006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1917
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001918 * build/unix/configure.raw: Add a fallback to disable Carbon
1919 dependency, if configured with no options on Mac OS X.
1920
19212006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1922
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001923 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001924 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001925 the second part of Savannah bug #16590.
1926
Werner Lemberg545c4e52006-05-17 22:55:04 +000019272006-05-18 Werner Lemberg <wl@gnu.org>
1928
1929 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1930 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1931
David Turnerdc3ff312006-05-17 12:59:35 +000019322006-05-17 David Turner <david@freetype.org>
1933
Werner Lemberg545c4e52006-05-17 22:55:04 +00001934 This is a major patch used to drastically improve the performance of
1935 loading glyphs. This both speeds up loading the glyph vectors
1936 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001937
Werner Lemberg545c4e52006-05-17 22:55:04 +00001938 We now use inline assembler code with GCC to implement `FT_MulFix',
1939 which is probably the most important function related to the
1940 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001941
Werner Lemberg545c4e52006-05-17 22:55:04 +00001942 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001943
1944
Werner Lemberg545c4e52006-05-17 22:55:04 +00001945 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1946 `cursor' and `limit'.
1947
1948 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1949 New functions.
1950 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1951 [TEST]: Remove.
1952
1953 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1954 code.
1955
1956 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1957 `FT_ZERO'
1958 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1959 (af_glyph_hints_reload: Rewrite recognition of weak points.
1960
1961 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1962 constant values out of the loops.
1963
1964 * src/autofit/aftypes.h: Updated.
1965
1966 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1967
1968 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1969 product to get orientation.
1970
1971 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1972 (FT_Stream_OpenGzip): Use it to handle small files directly in
1973 memory.
1974
1975 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1976 Improve performance.
1977
1978 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1979 `limit'.
1980
1981 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1982 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1983 exceedingly large values of number of contours. Speed up by
1984 reducing the number of loops.
1985
1986 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1987
1988
1989 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1990 used to detect rogue clients from 4 to 16. This is to prevent some
1991 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1992 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001993
Werner Lembergde2d90a2006-05-17 08:54:30 +000019942007-05-17 Werner Lemberg <wl@gnu.org>
1995
1996 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001997 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001998
19992006-05-16 Werner Lemberg <wl@gnu.org>
2000
2001 * docs/PROBLEMS: Updated icl issues.
2002
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002003----------------------------------------------------------------------------
2004
Werner Lemberg42b63b22007-01-21 21:01:33 +00002005Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002006David Turner, Robert Wilhelm, and Werner Lemberg.
2007
2008This file is part of the FreeType project, and may only be used, modified,
2009and distributed under the terms of the FreeType project license,
2010LICENSE.TXT. By continuing to use, modify, or distribute this file you
2011indicate that you have read the license and understand and accept it
2012fully.
2013
2014
2015Local Variables:
2016version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002017coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002018End: