blob: 19c96dc78bc2e5dc3bf5425414c99b387a9abfa8 [file] [log] [blame]
Werner Lemberg9df3c222007-05-20 18:07:52 +000012007-06-20 Ismail Dönmez <ismail@pardus.org.tr>
2
3 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
4 (ps_dimension_set_mask_bits): Remove `const'.
5
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000062007-06-19 Werner Lemberg <wl@gnu.org>
7
8 * src/sfnt/ttmtx.c (tt_face_get_metrics)
9 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
10
Werner Lembergb826fa72007-05-19 07:18:48 +0000112007-05-19 Derek Clegg <dclegg@apple.com>
12
13 Savannah patch #5929.
14
15 * include/freetype/tttables.h, src/base/ftobjcs.c
16 (FT_Get_CMap_Format): New function.
17
18 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
19 `format' member.
20 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
21 cmap_info->format.
22
Werner Lemberg6f99c882007-05-19 07:01:49 +0000232007-05-19 Werner Lemberg <wl@gnu.org>
24
25 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
26 before handling subglyphs so that it can be reinitialized each time.
27 This fixes Savannah bug #19859.
28
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000292007-05-16 Werner Lemberg <wl@gnu.org>
30
31 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
32 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
33 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
34 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
35 tt_face_get_metrics): Fix type-punning issues.
36
David Turner0a24bd22007-05-15 10:54:10 +0000372007-05-15 David Turner <david@freetype.org>
38
39 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000040 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
41 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000042 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000043 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +000044
Werner Lemberg607dec72007-05-15 06:49:37 +0000452007-05-15 Graham Asher <graham.asher@btinternet.com>
46
47 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
48 variable.
49 * src/autofit/afloader.c (af_loader_load_g): Ditto.
50
51 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
52 (open_face_from_buffer): Initialize `stream'.
53 (FT_Request_Metrics): Remove unused variable.
54 Remove redundant `break' statements.
55 (FT_Get_Track_Kerning): Remove unused variable.
56
57 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
58 afm_parse_kern_data): Remove redundant
59 `break' statements.
60 (afm_parser_parse): Ditto.
61 Don't use uninitialized variables.
62
63 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
64 Use `|' operator instead of `^' to set it.
65 Update all users.
66
67 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
68 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
69
70 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
71 comparison.
72 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
73 (TT_Load_Glyph): Remove unused variable.
74
Werner Lemberg8d463a52007-05-13 16:01:55 +0000752007-05-13 Derek Clegg <dclegg@apple.com>
76
77 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
78 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
79
David Turner711cf842007-05-11 14:36:24 +0000802007-05-11 David Turner <david@freetype.org>
81
Werner Lemberg56ceaa42007-05-14 18:53:58 +000082 * src/cache/ftbasic.c, include/freetype/ftcache.h
83 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
84 functions that allow us to look up glyphs using an FTC_Scaler object
85 to specify the size, making it possible to use fractional pixel
86 sizes.
87
88 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
89 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +000090
Werner Lemberg94be20e2007-05-09 20:02:55 +0000912007-05-09 Graham Asher <graham.asher@btinternet.com>
92
93 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
94 (af_latin_metrics_scale_dim): Fix compiler warnings.
95
Werner Lemberg41271032007-05-06 04:51:48 +0000962007-05-06 Werner Lemberg <wl@gnu.org>
97
98 * builds/win32/visualce/freetype.sln: Removed, as requested by
99 Vincent.
100
Werner Lembergdf49e692007-05-04 06:30:05 +00001012007-05-04 Vincent RICHOMME <richom.v@free.fr>
102
103 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
104 PC targets.
105
106 * docs/CHANGES: Document them.
107
1082007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000109
110 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
111 mmap (which might happen on some RTOS). From Savannah patch #5909.
112
Werner Lemberg106eaf12007-05-03 07:07:47 +00001132007-05-03 Werner Lemberg <wl@gnu.org>
114
115 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
116 * include/freetype/freetype.h (FT_Set_Char_Size): Update
117 documentation.
118
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001192007-04-28 Victor Stinner <victor.stinner@inl.fr>
120
121 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
122 `cmap'.
123
Werner Lembergcc712a22007-04-27 17:16:50 +00001242007-04-27 Werner Lemberg <wl@gnu.org>
125
126 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
127 number of points in contours. Problem reported by Victor Stinner
128 <victor.stinner@haypocalc.com>.
129 (TT_Process_Simple_Glyph): Synchronize variable types.
130
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001312007-04-26 Werner Lemberg <wl@gnu.org>
132
133 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
134 zero in case of error. This fixes Savannah bug #19689.
135
David Turnera8b45e62007-05-11 14:10:30 +00001362007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
137
138 * src/truetype/ttobjs.c: fix a typo that created a speed regression
139 in the TrueType bytecode loader
140
Werner Lembergfcc1f472007-04-10 11:51:50 +00001412007-04-10 Martin Horak <horakm@centrum.cz>
142
143 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
144 Ignore `hhea' table. This fixes Savannah bug #19261.
145
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001462007-04-09 Werner Lemberg <wl@gnu.org>
147
148 * Version 2.3.4 released.
149 =========================
150
151
152 Tag sources with `VER-2-3-4'.
153
154 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
155 version number to 2.3.4.
156
157 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
158 builds/win32/visualc/freetype.dsp,
159 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
160
161 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
162
163 * builds/unix/configure.raw (version_info): Set to 9:15:3.
164
Werner Lembergf4a52a62007-04-09 08:40:11 +00001652007-04-09 Martin Horak <horakm@centrum.cz>
166
167 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
168 memory stream to avoid a crash with the incremental memory
169 interface (Savannah bug #19260).
170
David Turner1dcb4442007-04-06 08:19:04 +00001712007-04-06 David Turner <david@freetype.org>
172
Werner Lembergc81cf612007-04-06 09:28:23 +0000173 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
174 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000175
Werner Lemberg9f83e052007-04-05 02:28:23 +00001762007-04-04 Werner Lemberg <wl@gnu.org>
177
178 * Version 2.3.3 released.
179 =========================
180
181
182 Tag sources with `VER-2-3-3'.
183
184 * docs/CHANGES: Mention CVE-2007-1351.
185
David Turner7338ec22007-04-03 14:30:34 +00001862007-04-03 David Turner <david@freetype.org>
187
188 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000189 if one of the resolution values is 0, treat it as if it were the
190 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000191
David Turnere6472c12007-04-02 13:13:54 +00001922007-04-02 David Turner <david@freetype.org>
193
Werner Lemberg94f12272007-04-03 07:19:53 +0000194 Add special code to detect `extra-light' fonts and do not snap their
195 stem widths too much to avoid bizarre hinting effects.
196
197 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
198 `extra_light' members.
199
200 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
201 them.
202 (af_latin_metrics_scale_dim): Set `extra_light'.
203 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000204
David Turner3f539692007-03-28 14:53:40 +00002052007-03-28 David Turner <david@freetype.org>
206
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000207 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000208 padding.
209
Werner Lemberga08b2172007-03-28 07:17:17 +00002102007-03-28 Werner Lemberg <wl@gnu.org>
211
212 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
213 gracefully.
214 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000215 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000216 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
217 number of code points in Unicode.
218
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000219 * builds/win32/visualc/index.html,
220 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000221 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000222 s/232/233/.
223
224 * docs/CHANGES: Mention ftdiff.
225
David Turner3b242d32007-03-26 12:03:04 +00002262007-03-26 David Turner <david@freetype.org>
227
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000228 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
229 corresponding code.
230 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000231
Werner Lemberga08b2172007-03-28 07:17:17 +0000232 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000233 computations in order to ignore single-point contours. These are
234 never rasterized and correspond in certain fonts to mark-attach
235 points that are very far from the glyph's real outline, ruining the
236 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000237
Werner Lemberga08b2172007-03-28 07:17:17 +0000238 * src/autofit/afloader.c (af_loader_load_g): In the case of
239 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
240 Otherwise code that uses them will most certainly ruin the fixed
241 advance property.
David Turner23553d62007-03-26 13:37:17 +0000242
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000243 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
244 documentation and bump version number to 2.3.3.
245
246 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
247
248 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000249
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002502007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
251
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000252 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
253 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000254 * builds/vms/ftconfig.h: Ditto.
255 * include/freetype/config/ftconfig.h: Ditto.
256
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002572007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
258
Werner Lemberg14ffe092007-03-22 06:12:43 +0000259 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
260 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000261 proposed by Sean McBride:
262 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
263
2642007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
265
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000266 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
267 setjmp, proposed by Sean McBride:
268 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
269
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00002702007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
271
Werner Lembergc9f6c662007-03-21 13:30:14 +0000272 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
273 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
274 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000275
David Turner74c34eb2007-03-18 07:19:31 +00002762007-03-18 David Turner <david@freetype.org>
277
Werner Lembergc9f6c662007-03-21 13:30:14 +0000278 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
279 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000280
Werner Lembergc9f6c662007-03-21 13:30:14 +0000281 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000282
David Turner89020d92007-03-17 17:48:57 +00002832007-03-17 David Turner <david@freetype.org>
284
Werner Lembergc9f6c662007-03-21 13:30:14 +0000285 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
286 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000287
Werner Lemberg25d592a2007-03-09 07:59:35 +00002882007-03-09 Werner Lemberg <wl@gnu.org>
289
290 * Version 2.3.2 released.
291 =========================
292
293
294 Tag sources with `VER-2-3-2'.
295
296 * builds/win32/visualc/index.html,
297 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000298 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000299 s/231/232/.
300
David Turner3a51afa2007-03-08 10:50:38 +00003012007-03-08 David Turner <david@freetype.org>
302
Werner Lemberg25d592a2007-03-09 07:59:35 +0000303 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000304
Werner Lemberg25d592a2007-03-09 07:59:35 +0000305 * builds/unix/configure.raw (version_info): Set to 9:13:3.
306
307 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
308
309 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000310
Werner Lemberg1e259de2007-03-08 15:39:21 +0000311 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
312 function to work properly, over-writing user-provided buffers in
313 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000314
David Turner121cad52007-03-08 16:43:50 +0000315
Werner Lemberg3d92f082007-03-06 11:59:24 +00003162007-03-05 Werner Lemberg <wl@gnu.org>
317
318 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
319 macro for `strstr'.
320
321 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
322 `trick_names', as suggested by Ivan Nincic.
323
David Turner085bc6e2007-03-05 17:40:03 +00003242007-03-05 David Turner <david@freetype.org>
325
Werner Lembergd112cf02007-03-06 12:06:56 +0000326 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
327 case FT_Init_FreeType fails for some reason. Problem reported by
328 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000329
Werner Lembergd112cf02007-03-06 12:06:56 +0000330 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
331 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
332 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
333 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000334
Werner Lembergd112cf02007-03-06 12:06:56 +0000335 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
336 signed values, not unsigned ones. Problem reported by Johannes
337 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000338
David Turner601aefe2007-02-21 16:47:49 +00003392007-02-21 David Turner <david@freetype.org>
340
Werner Lembergde5e6862007-02-25 21:06:43 +0000341 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
342 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000343
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00003442007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
345
346 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
347 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
348 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
349
Werner Lemberga0915172007-02-16 08:12:50 +00003502007-02-16 Werner Lemberg <wl@gnu.org>
351
352 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
353 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
354
David Turner2c4500e2007-02-14 15:08:47 +00003552007-02-14 David Turner <david@freetype.org>
356
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000357 It seems that the following changes fix most of the known
358 interpreter problems with my fonts, but more testing is needed,
359 though.
360
361 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
362 (TT_MulFix14): Rewrite.
363 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
364 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000365
Werner Lembergc6a14082007-02-12 22:08:15 +00003662007-02-12 Werner Lemberg <wl@gnu.org>
367
368 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
369 warnings.
370
371 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
372 (bdf_interpret_style): Ditto.
373
David Turnerc0f9c4a2007-02-12 14:55:03 +00003742007-02-12 David Turner <david@freetype.org>
375
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000376 Simplify projection and dual-projection code interface.
377
Werner Lemberg406d25f2007-02-12 22:01:18 +0000378 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
379 FT_Vector' as argument type.
380 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
381 Updated.
382 (CUR_fast_project, CUR_fast_dualproj): New macros.
383 (Project, Dual_Project, Project_x, Project_y): Updated.
384 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
385 macros.
386
387
388 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
389 adjustments for the non-light auto-hinted modes. Gets rid of
390 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000391
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000392 * src/autofit/aflatin.c (af_latin_hints_link_segments,
393 af_latin_hints_compute_edges): Slight optimization of the segment
394 linker and better handling of serif segments to get rid of broken
395 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000396
David Turnerc0f9c4a2007-02-12 14:55:03 +0000397
Werner Lemberg442bfb82007-02-12 21:44:10 +0000398 Introduce new string functions and the corresponding macros to get
399 rid of various uses of strcpy and other `evil' functions, as well as
400 to simplify a few things.
401
402 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
403 ft_mem_strcpyn): New declarations.
404 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
405 macros.
406 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
407 functions.
408
409 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
410 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
411 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
412 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
413 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
414 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
415 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
416 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000417
Werner Lemberg406d25f2007-02-12 22:01:18 +0000418 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
419
Werner Lemberg582067d2007-02-11 15:03:05 +00004202007-02-11 Werner Lemberg <wl@gnu.org>
421
422 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
423 non-spacing glyphs.
424
Werner Lemberg8f474532007-02-07 08:31:01 +00004252007-02-07 Tom Parker <palfrey@tevp.net>
426
427 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
428 pointer.
429
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
431
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000432 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
433 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000434 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000435 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
436 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
437 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
438 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000439
440 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
441 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000442 * builds/mac/ftmac.c: Ditto.
443
4442007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
445
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000446 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000447 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000448 #include <ftmac.c>.
449
4502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
451
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000452 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
453 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
454 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
455 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
456 FT_GetFilePath_From_Mac_ATS_Name.
457 * builds/mac/ftmac.c: Ditto.
458
4592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
460
Werner Lembergdcbb7082007-02-08 08:54:09 +0000461 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000462 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
463 for passing to FT_New_Face_From_FSSpec.
464
4652007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
466
Werner Lembergdcbb7082007-02-08 08:54:09 +0000467 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000468 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000469
470 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
471 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000472 * builds/mac/ftmac.c (OS_INLINE): Ditto.
473
Werner Lemberg313d7772007-02-01 08:10:45 +00004742007-02-01 Werner Lemberg <wl@gnu.org>
475
476 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
477 Explain why applications shouldn't use it. Found by Alexei.
478
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004792007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000480
481 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
482 message.
483
484 * src/gxvalid/gxvmort1.c
485 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
486 message.
487
Werner Lemberg53935932007-01-31 08:53:02 +00004882007-01-31 Werner Lemberg <wl@gnu.org>
489
490
491 * Version 2.3.1 released.
492 =========================
493
494
495 Tag sources with `VER-2-3-1-FINAL'.
496
497 * builds/win32/visualc/freetype.dsp,
498 builds/win32/visualc/freetype.vcproj: s/230/231/.
499 * builds/win32/visualc/index.html: s/221/231/.
500
501 * vms_make.com: Add `ftgasp'.
502
David Turnera7ee6082007-01-30 10:33:53 +00005032007-01-30 David Turner <david@freetype.org>
504
Werner Lemberg53935932007-01-31 08:53:02 +0000505 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000506
Werner Lemberg53935932007-01-31 08:53:02 +0000507 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000508
Werner Lemberg25d592a2007-03-09 07:59:35 +0000509 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000510 s/2.3.0/2.3.1/.
511
512 * builds/unix/configure.raw (version_info): Set to 9:12:3.
513
514
515 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
516 (af_loader_load_g): Disable the warper (i.e., the light hinting
517 improvements) to make a 2.3.1 bugfix release before introducing a
518 new feature. This should give us more time to tune and improve the
519 warper for the next release.
520
521 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000522
David Turnerd91eebd2007-01-26 15:05:41 +00005232007-01-25 David Turner <david@freetype.org>
524
Werner Lembergbf241762007-01-26 16:08:49 +0000525 For light auto-hinting, improve glyph advance widths and resurrect
526 normal/full hinting to its normal quality.
527
528 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
529 and `xmax_delta'.
530 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
531 and `xmax_delta'.
532
533 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
534 preprocessor conditional with if-clause, handling both light and
535 normal mode.
536
537 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
538 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000539
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005402007-01-25 Werner Lemberg <wl@gnu.org>
541
542 * docs/release: Updated -- Savannah uses a new uploading scheme.
543
David Turnera42567b2007-01-25 12:23:37 +00005442007-01-25 David Turner <david@freetype.org>
545
Werner Lembergd7855662007-01-25 13:53:56 +0000546 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000547
Werner Lembergd7855662007-01-25 13:53:56 +0000548 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
549 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
550 functions.
David Turnera42567b2007-01-25 12:23:37 +0000551
Werner Lembergd7855662007-01-25 13:53:56 +0000552 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000553
Werner Lembergb1be9e82007-01-25 11:50:00 +00005542007-01-25 Werner Lemberg <wl@gnu.org>
555
556 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000557 correctly in a sanity check. Since this function is only used to
558 load local and global functions, any charstring that called the last
559 local/global function would fail otherwise. This fixes Savannah bug
560 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000561
562 * docs/CHANGES: Document it.
563
David Turnerb6de8d12007-01-23 15:51:50 +00005642007-01-23 David Turner <david@freetype.org>
565
Werner Lembergb1be9e82007-01-25 11:50:00 +0000566 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
567 prevented compilation when disabling both the unpatented and the
568 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000569
Werner Lembergb1be9e82007-01-25 11:50:00 +0000570
571 Fix and enable the warper to improve `light' hinting mode. This is
572 not necessarily a final version, but it seems to work well.
573
574 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
575 Disable code.
576 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
577 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
578
579 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
580 (af_warper_compute_line_best): Fix array size of `scores'.
581 (af_warper_compute): Better handling of border cases.
582 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
583 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000584
Werner Lemberg011d1112007-01-21 09:36:00 +00005852007-01-21 Werner Lemberg <wl@gnu.org>
586
Werner Lemberg42b63b22007-01-21 21:01:33 +0000587 * ChangeLog: Split off older entries into...
588 * ChangeLog.22: This new file.
589
5902007-01-21 Werner Lemberg <wl@gnu.org>
591
Werner Lemberg555258f2007-01-21 09:46:37 +0000592 * docs/CHANGES: Document SHZ fix.
593
5942007-01-21 George Williams <gww@silcom.com>
595
596 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
597 points.
598
5992007-01-21 Werner Lemberg <wl@gnu.org>
600
Werner Lemberg011d1112007-01-21 09:36:00 +0000601 * src/sfnt/ttmtx.c (tt_face_get_metrics)
602 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
603
Werner Lemberg87a5a432007-01-17 12:44:39 +00006042007-01-17 Werner Lemberg <wl@gnu.org>
605
Werner Lembergb8003292007-01-17 12:56:25 +0000606
607 * Version 2.3.0 released.
608 =========================
609
610
611 Tag sources with `VER-2-3-0-FINAL'.
612
6132007-01-17 Werner Lemberg <wl@gnu.org>
614
Werner Lemberg87a5a432007-01-17 12:44:39 +0000615 * docs/release: Updated.
616
David Turner22122722007-01-16 20:06:44 +00006172007-01-16 David Turner <david@freetype.org>
618
Werner Lemberg87a5a432007-01-17 12:44:39 +0000619 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
620 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
621 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
622 warnings.
David Turner22122722007-01-16 20:06:44 +0000623
Werner Lemberg267e1d72007-01-15 07:48:09 +00006242007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
625
626 * builds/amiga/makefile, builds/amiga/makefile.os4,
627 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
628
629 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
630
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006312007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
632
633 Fix various compiler warnings.
634
635 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
636 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
637 s/index/strike_index/.
638 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
639
640 * src/gxvalid/gxvmorx5.c
641 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
642
643 * src/truetype/ttinterp.c (Compute_Point_Displacement),
644 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
645 uninitialized variables.
646
Werner Lemberg6164a9d2007-01-13 23:01:36 +00006472007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
648
649 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
650
Werner Lemberg281c1482007-01-13 22:50:51 +00006512007-01-13 Werner Lemberg <wl@gnu.org>
652
653 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
654 versions up to 0x3FF without complaining.
655
Werner Lembergac250b22007-01-13 14:01:36 +00006562007-01-13 Derek Clegg <dclegg@apple.com>
657
658 Add FT_Get_PS_Font_Info interface to CFF driver.
659
660 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
661 (CFF_FontRec): Add `font_info' field.
662
663 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
664 (cff_font_done): Free font->font_info if necessary.
665
666 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
667 (cff_service_ps_info): Register cff_ps_get_font_info.
668
Werner Lemberg23df31a2007-01-13 08:45:00 +00006692007-01-13 Werner Lemberg <wl@gnu.org>
670
671 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
672 with C++ compiler.
673
674 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
675 af_glyph_hints_dump_edges): Ditto.
676
677 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
678 `modules.cfg').
679
680 * src/sfnt/ttsbit0.h: Remove.
681
682 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
683
Werner Lemberg27cf9de2007-01-13 07:34:23 +00006842007-01-12 David Turner <david@freetype.org>
685
686 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
687 bug in the bitmap emboldener if the pitch of the source bitmap is
688 much larger than its width.
689
690 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
691 compilation warning.
692
Werner Lemberg6d96d312007-01-12 10:30:19 +00006932007-01-12 Werner Lemberg <wl@gnu.org>
694
695 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
696 `automake' CVS module from sources.redhat.com.
697
Werner Lemberg17432b52007-01-12 09:28:44 +00006982007-01-11 Werner Lemberg <wl@gnu.org>
699
700 * src/type1/t1load.c (is_space): Removed.
701 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
702 (parse_charstrings): Use IS_PS_TOKEN.
703
704
705 * autogen.sh: Avoid bash specific syntax.
706
David Turner038ace22007-01-11 15:00:59 +00007072007-01-11 David Turner <david@freetype.org>
708
Werner Lemberg17432b52007-01-12 09:28:44 +0000709 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000710
Werner Lemberg17432b52007-01-12 09:28:44 +0000711 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000712
Werner Lemberg17432b52007-01-12 09:28:44 +0000713 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
714 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000715 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000716
Werner Lemberg17432b52007-01-12 09:28:44 +0000717 * autogen.sh: Small fix to get it working on Mac OS X properly:
718 The issue is that GNU libtool is called `glibtool' on this platform,
719 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000720
David Turner2628ea92007-01-10 13:15:56 +00007212007-01-10 David Turner <david@freetype.org>
722
Werner Lemberg17432b52007-01-12 09:28:44 +0000723 * all-sources: Tag all sources with VER-2-3-0-RC1 and
724 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000725
Werner Lemberg17432b52007-01-12 09:28:44 +0000726 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
727 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
728 version number to 2.3.0.
729
730 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
731 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000732
733 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000734 include/freetype/ftlcdfil.h: Update reference documentation with
735 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000736
Werner Lemberg17432b52007-01-12 09:28:44 +0000737 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
738 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000739
Werner Lembergbf02d392007-01-10 07:07:37 +00007402007-01-10 Derek Clegg <dclegg@apple.com>
741
742 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
743 values.
744
David Turnerf48b60e2007-01-08 15:15:32 +00007452007-01-08 David Turner <david@freetype.org>
746
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000747 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000748
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000749 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
750 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000751 corresponding to a given character pixel size.
752
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000753 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
754 `gasp' table, in order to avoid potential problems with later
755 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000756
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000757 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
758 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000759
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000760 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
761 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
762 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
763 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000764
Werner Lemberge6b6f372007-01-07 00:06:47 +00007652007-01-07 Werner Lemberg <wl@gnu.org>
766
Werner Lembergb8004d22007-01-07 09:13:38 +0000767 * src/cid/cidparse.c (cid_parser_new): Improve error message for
768 Type 11 fonts.
769 Scan for `/sfnts' token.
770
7712007-01-07 Werner Lemberg <wl@gnu.org>
772
773 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000774
Werner Lembergbe5f7972007-01-06 07:51:48 +00007752007-01-06 Werner Lemberg <wl@gnu.org>
776
777 * src/cff/cffload.c (cff_index_init): Remove unused variable.
778 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
779
David Turnera8cf42b2007-01-04 16:46:46 +00007802007-01-04 David Turner <david@freetype.org>
781
Werner Lembergf6294392007-01-06 07:47:45 +0000782 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
783 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000784
Werner Lembergf6294392007-01-06 07:47:45 +0000785
786 Do not allocate interpreter-specific tables in memory if we are not
787 going to load glyphs with the bytecode interpreter anyway.
788
789 * src/truetype/ttgload.c (tt_loader_init): Load execution context
790 only if glyph is hinted.
791 Updated.
792 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
793 and `cvs_ready'.
794 Add `tt_size_ready_bytecode' declaration.
795 * src/truetype/ttobjs.c (tt_size_done_bytecode,
796 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
797 (tt_size_init): Move most code into `tt_size_init_bytecode'.
798 (tt_size_done): Move most code into `tt_size_done_bytecode'.
799 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000800
David Turner91a34022007-01-05 14:47:08 +0000801
Werner Lembergf6294392007-01-06 07:47:45 +0000802 Don't extract the metrics table from the SFNT font file. Instead,
803 reparse it on each glyph load. The runtime difference is not
804 noticeable, and it can save a lot of heap memory when memory-mapped
805 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000806
Werner Lembergf6294392007-01-06 07:47:45 +0000807 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
808 `horz_metrics_offset' and `vert_metrics_ofset'.
809 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
810 Updated.
811
812
813 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
814
815
816 Do not load the CFF index offsets into memory, since this wastes a
817 *lot* of heap memory with large Asian CFF fonts. There is no
818 significant performance loss.
819
820 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
821 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
822 `data_size'.
823 (CFF_CharsetRec): Add field `num_glyphs'.
824
825 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
826 cff_charset_cid_to_gindex): New functions.
827 (cff_new_index): Renamed to...
828 (cff_index_init): This. Update all callers.
829 Updated -- some code has been moved to `cff_index_load_offsets'.
830 (cff_done_index): Renamed to...
831 (cff_index_done): This. Update all callers.
832 (cff_index_get_pointers, cff_index_access_element): Updated to use
833 stream offsets.
834 (cff_charset_compute_cids): Set `num_glyphs' field.
835 (cff_encoding_load): Updated.
836
837 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000838
8392007-01-04 David Turner <david@freetype.org>
840
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000841 * docs/INSTALL.UNIX: Simplify some parts, add reference to
842 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000843
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000844 * README.CVS: Add common problem description and solution
845 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000846
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000847 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000848
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000849 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000850
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000851 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000852
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000853 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
854 (TWorker): This.
855 Remove `count_table' and `memory'.
856 Make `grays' a pointer.
857 (TRaster): New structure.
858 (count_table): New static array.
859 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
860 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
861 ft_black_set_mode, ft_black_render): Updated.
862 (ft_black_init): Don't initialize `count_table'.
863 (ft_black_reset): Use the render pool. This saves about 6KB of
864 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000865
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000866 * src/smooth/ftgrays.c (TRaster): Replaced with...
867 (TWorker): This.
868 Remove `memory'.
869 (TRaster): New structure.
870
871 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
872 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
873 gray_render_span, gray_raster_render): Updated.
874 (gray_raster_reset): Use the render pool. This saves about 6KB of
875 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000876
David Turner8a6c44e2007-01-04 17:03:11 +0000877 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
878 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000879 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
880 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
881 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000882
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000883 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
884 Remove a typo that results in no hinting and a memory leak with some
885 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000886
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000887 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000888 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000889 CFF_Faces in it. We need to close all faces before destroying the
890 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000891
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00008922007-01-02 Werner Lemberg <wl@gnu.org>
893
894 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
895 Remove compiler warning.
896
David Turner9207e002007-01-02 16:58:13 +00008972007-01-02 David Turner <david@freetype.org>
898
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000899 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000900
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009012006-12-31 Masatake YAMATO <jet@gyve.org>
902
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000903 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
904 function.
905 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000906 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000907 `gxv_kern_subtable_fmt0_pairs_validate'.
908
David Turner115b4422006-12-22 11:37:05 +00009092006-12-22 David Turner <david@freetype.org>
910
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000911 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
912 warnings.
David Turner115b4422006-12-22 11:37:05 +0000913
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000914 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
915 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000916
Werner Lemberg4755bf72006-12-16 08:58:44 +00009172006-12-16 Anders Kaseorg <anders@kaseorg.com>
918
919 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
920 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
921
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009222006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
923
Werner Lemberg9b774e22007-01-16 06:11:27 +0000924 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000925 sync with the modification by Jens Claudius on 2006-08-22; cf.
926 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 +0000927
9282006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
929
930 * src/base/ftmac.c: Specialized for Mac OS X only.
931 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
932 * builds/unix/configure.raw: Ditto. When explicit switches for
933 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
934 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
935
9362006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
937
938 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
939 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
940 instead of src/base/ftmac.c
941 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
942 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
943 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
944 that cannot be built at present.
945
9462006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
947
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000948 * src/base/ftobjs.c: Improvement of resource fork handler for
949 POSIX, cf.
950 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000951 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
952 format or .dfont, to simulate the face index number counted by ftmac.c.
953 (IsMacResource): Return the number of scalable faces correctly.
954
Werner Lembergec5b4502006-12-10 07:51:38 +00009552006-12-10 Werner Lemberg <wl@gnu.org>
956
957 * builds/toplevel.mk (version): Protect against `distclean' target.
958
Werner Lembergb26b3142006-12-09 20:01:43 +00009592006-12-09 Werner Lemberg <wl@gnu.org>
960
961 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
962 or `type'.
963
964 * builds/freetype.mk (version): Extracted from freetype.h, using
965 GNU make's built-in string functions.
966 (refdoc): Use $(version) instead of static version number.
967
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00009682006-12-08 Werner Lemberg <wl@gnu.org>
969
970 * builds/toplevel.mk (dist): Extract version number from freetype.h.
971
Werner Lemberg15c29502006-12-09 07:29:54 +00009722006-12-08 Vladimir Volovich <vvv@vsu.ru>
973
974 * src/tools/apinames (State): Remove final comma in structure -- xlc
975 v5 under AIX 4.3 doesn't like this.
976
David Turnerdbf3b432006-12-07 21:18:09 +00009772006-12-07 David Turner <david@freetype.org>
978
Werner Lemberg256a3512006-12-08 06:49:33 +0000979 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
980 to the spacing of auto-fitted glyphs. This only impacts rare
981 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000982
Werner Lemberg11171312006-12-03 09:43:40 +00009832006-12-03 Werner Lemberg <wl@gnu.org>
984
985 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
986
Werner Lemberg960ba592006-12-01 08:20:47 +00009872006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000988
Werner Lemberg960ba592006-12-01 08:20:47 +0000989 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
990 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
991 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000992
David Turner80658e52006-11-28 08:09:20 +0000993
Werner Lemberg960ba592006-12-01 08:20:47 +0000994 * include/freetype/ftxf86.h: Fix and extend comment so that it
995 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000996
Werner Lemberg960ba592006-12-01 08:20:47 +0000997 * include/freetype/ftchapters.h: Add `font_format' section.
998
999
1000 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1001 to TOC in index page.
1002
10032006-11-28 David Turner <david@freetype.org>
1004
1005 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1006 trying to render into a zero-width/height bitmap, not an error code.
1007
1008 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1009
1010 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1011 ones instead.
1012
1013 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1014 variable.
David Turner80658e52006-11-28 08:09:20 +00001015
Werner Lemberg8636c292006-11-26 22:28:13 +000010162006-11-26 Pierre Hanser <hanser@club-internet.fr>
1017
1018 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1019
Werner Lemberg960ba592006-12-01 08:20:47 +000010202006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001021
Werner Lemberg960ba592006-12-01 08:20:47 +00001022 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1023 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1024 Add stubs to link the `ftgrid' test program when debugging is
1025 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001026
Werner Lemberg960ba592006-12-01 08:20:47 +000010272006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001028
1029 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001030 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1031
1032 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1033 Emit more sensible information.
1034
1035 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1036
1037 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1038 rounding of blue values.
1039 (af_latin_hints_compute_segments): Hint segment heights.
1040 (af_latin_hints_link_segments): Reduce `len_score' value.
1041 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1042 value and use `height' member for comparisons.
1043 (af_latin_hint_edges): Extend logging message.
1044 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001045
Werner Lemberg91959bf2006-11-22 10:36:55 +000010462006-11-22 Werner Lemberg <wl@gnu.org>
1047
1048 Fix Savannah bug #15553.
1049
1050 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1051 program after a change from mono to grayscaling (and vice versa).
1052 Use correct constant for comparison to get `exec->grayscale'.
1053
Werner Lemberg913a3652006-11-19 09:19:17 +000010542006-11-18 Werner Lemberg <wl@gnu.org>
1055
1056 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001057 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001058 This patch fixes Savannah bug #18301.
1059
1060 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1061 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1062 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1063 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1064 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1065 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1066 (FNT_Load_Glyph): Check validity of `glyph_index'.
1067
David Turner7bab6ae2006-11-13 11:25:06 +000010682006-11-13 David Turner <david@freetype.org>
1069
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001070 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1071 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001072
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001073 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1074 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1075 when building the library to change the default LCD filter to be
1076 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001077
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001078 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001079
David Turner8765c712006-11-10 16:49:42 +000010802006-11-10 David Turner <david@freetype.org>
1081
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001082 * src/smooth/ftsmooth.c: API change for the LCD
1083 filter. The FT_LcdFilter value is an enumeration describing which
1084 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1085 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1086 algorithm which produces strong color fringes for everything
1087 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001088
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001089 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1090 second parameter to an enum type.
1091
1092 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1093 (_ft_lcd_filter): Rename to...
1094 (_ft_lcd_filter_fir): This.
1095 Update parameters.
1096 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1097 (FT_Library_Set_LcdFilter): Update parameters.
1098 Handle new filter modes.
1099
1100 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1101 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1102 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1103 callback and update other fields.
1104
1105 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1106 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1107 Other minor improvements.
1108
1109 * src/autofit/aflatin.c: Various tiny improvements that drastically
1110 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1111 (af_latin_hints_compute_edges): Fix typo.
1112 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001113
David Turner4e9cc3c2006-11-09 16:31:52 +000011142006-11-09 David Turner <david@freetype.org>
1115
Werner Lemberg49c77a82006-11-09 21:51:57 +00001116 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1117 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001118
Werner Lemberg5e430892006-11-07 09:35:03 +000011192006-11-07 Zhe Su <james.su@gmail.com>
1120
1121 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1122 also.
1123
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011242006-11-03 Werner Lemberg <wl@gnu.org>
1125
1126 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1127
David Turner40604742006-11-02 16:37:35 +000011282006-11-02 David Turner <david@freetype.org>
1129
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001130 Add a few tweaks to better handle serif fonts.
1131 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001132
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001133 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1134 segments that are less than 1.5 pixels high. This gets rid of
1135 *many* corner cases with serifs.
1136 (af_latin_align_linked_edge): Add logging message.
1137 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1138 Add logging messages.
1139 Handle AF_EDGE_FLAG flag specially.
1140
1141 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1142 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1143
1144 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1145 Update external declarations.
1146 (af_corner_orientation, af_corner_is_flat): Replaced by...
1147
1148 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1149 ft_corner_is_flat): These declarations.
1150
1151 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1152 Comment out. Replaced by...
1153
1154 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1155 These functions. Update all callers.
1156 (FT_Add64) [!FT_LONG64]: Simplify.
1157
1158 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1159 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1160 production of garbage by missing lots of segments.
1161
1162 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1163
1164 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1165 [AF_DEBUG]: Set _af_debug_hints.
1166
1167
1168 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1169 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1170 and ft_corner_orientation.
1171
1172
1173 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001174
Werner Lemberge88c5262006-10-24 05:46:26 +000011752006-10-24 Werner Lemberg <wl@gnu.org>
1176
1177 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1178
1179 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1180 as argument.
1181
David Turnera1861392006-10-23 16:00:59 +000011822006-10-23 Zhe Su <zsu@novell.com>
1183
Werner Lemberg715e96e2006-10-24 05:28:45 +00001184 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1185 better deal with broken Asian fonts with strange glyphs, having
1186 self-intersections and other peculiarities. The used algorithm is
1187 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001188
David Turnere140f142006-10-23 08:56:57 +000011892006-10-23 David Turner <david@freetype.org>
1190
Werner Lemberg715e96e2006-10-24 05:28:45 +00001191 Speed up the CFF font loader. With some large CFF fonts,
1192 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001193
Werner Lemberg715e96e2006-10-24 05:28:45 +00001194 * src/cff/cffload.c (cff_get_offset): Removed.
1195 (cff_new_index): Inline functionality of `cff_get_offset'.
1196 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1197 (cff_charset_done): Call `cff_charset_free_cids'.
1198 (cff_charset_load): Call `cff_charset_compute_cids'.
1199 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1200
1201 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1202 with FT_NEXT_XXX.
1203
1204
1205 Speed up the Postscript hinter, with more than 100% speed increase
1206 on my machine.
1207
1208 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1209 psh_corner_orientation): New functions.
1210 (psh_glyph_compute_inflections): Merge loops for efficiency.
1211 Use `psh_corner_orientation'.
1212 (psh_glyph_init): Use `psh_corner_is_flat'.
1213 (psh_hint_table_find_strong_point): Renamed to...
1214 (psh_hint_table_find_strong_points): This.
1215 Rewrite, adding argument to handle all points at once.
1216 Update all callers.
1217 (PSH_MAX_STRONG_INTERNAL): New macro.
1218 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001219
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012202006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1221
1222 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001223 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001224
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012252006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1226
1227 * docs/INSTALL.CROSS: New document file for cross-building.
1228
1229 * builds/unix/configure.raw: Preliminary cross-building support.
1230 Find native C compiler and pass it by CC_BUILD, and
1231 find suffix for native executable and pass it by EXEEXT_BUILD.
1232 Also suffix for target executable is passed by EXEEXT.
1233
Werner Lembergb9e6d692006-10-15 08:58:40 +00001234 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1235 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001236 CC_BUILD and EXEEXT_BUILD.
1237
Werner Lembergb9e6d692006-10-15 08:58:40 +00001238 * builds/exports.mk (APINAMES_EXE): Change the extension for
1239 apinames from the suffix for target (E) to that for building host
1240 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001241
Werner Lemberg82a07e92006-10-12 06:20:44 +000012422006-10-12 Werner Lemberg <wl@gnu.org>
1243
1244 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1245 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1246 which reference those files.
1247
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000012482006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1249
Werner Lembergb9e6d692006-10-15 08:58:40 +00001250 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1251 embedded in freetype2.pc and freetype-config. Use it to record
1252 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001253
1254 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1255
1256 * builds/unix/freetype-config.in: Ditto.
1257
Werner Lemberg28e17d92006-10-11 17:27:47 +000012582006-10-11 Werner Lemberg <wl@gnu.org>
1259
1260 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1261 development.
1262
Jens Claudius336d2292006-10-03 08:53:37 +000012632006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1264
1265 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1266 argument to ft_setjmp.
1267
1268 * include/freetype/internal/ftvalid.h: Add comment that
1269 ft_validator_run must not be used.
1270
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012712006-10-01 Werner Lemberg <wl@gnu.org>
1272
1273 * src/base/ftbase.c: Undo change from 2006-09-30.
1274
1275 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1276
12772006-09-30 David Turner <david@freetype.org>
1278
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001279 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1280 s/unpatented_hinting/ignore_unpatented_hinter/.
1281 Update all callers.
1282
1283 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1284 auto-hinting shall be used or not.
1285
1286 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001287
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012882006-09-30 Werner Lemberg <wl@gnu.org>
1289
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001290 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1291 in use).
1292
1293 * src/base/ftbase.c: Include `ftlcdfil.c'.
1294
Werner Lemberg9b15ea32006-09-29 18:22:11 +000012952006-09-29 Werner Lemberg <wl@gnu.org>
1296
1297 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1298 overlapping segments. Bug reported by Stefan Koch.
1299
David Turnerad830712006-09-27 16:20:59 +000013002006-09-28 David Turner <david@freetype.org>
1301
Werner Lemberg2c002e12006-09-29 21:31:53 +00001302 Fix a bug in the automatic unpatented hinting support which prevents
1303 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001304
Werner Lemberg2c002e12006-09-29 21:31:53 +00001305 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1306 s/force_autohint/unpatented_hinting/. Update all callers.
1307
1308 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1309
1310 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001311
David Turner8a317cf2006-09-27 07:52:48 +000013122006-09-27 David Turner <david@freetype.org>
1313
Werner Lemberg2c002e12006-09-29 21:31:53 +00001314 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001315
David Turner8a317cf2006-09-27 07:52:48 +00001316
David Turnere140f142006-10-23 08:56:57 +00001317 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001318 In a default build, the function `FT_Library_SetLcdFilter' returns
1319 `FT_Err_Unimplemented_Feature'; you need to #define
1320 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1321 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001322
Werner Lemberg2c002e12006-09-29 21:31:53 +00001323 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001324
Werner Lemberg2c002e12006-09-29 21:31:53 +00001325 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1326 typedef.
1327 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1328 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001329
Werner Lemberg2c002e12006-09-29 21:31:53 +00001330 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1331 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001332
Werner Lemberg2c002e12006-09-29 21:31:53 +00001333 Handle subpixel rendering.
1334 Simplify function.
1335 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1336 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1337
1338 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1339 pointing to <freetype/ftlcdfil.h>.
1340
1341 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1342 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1343
1344 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001345
Werner Lemberge20df4a2006-09-27 06:29:21 +000013462006-09-26 David Bustin
1347
1348 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1349 correctly. Reported as Savannah bug #17843.
1350
David Turner6f8c6222006-09-26 15:42:44 +000013512006-09-26 David Turner <david@freetype.org>
1352
Werner Lemberg110246c2006-09-26 21:55:44 +00001353 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1354 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1355 horizontal and vertical hinting for the purpose of debugging the
1356 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001357
Werner Lemberg110246c2006-09-26 21:55:44 +00001358 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1359 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001360
Werner Lemberg110246c2006-09-26 21:55:44 +00001361 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1362
1363 * include/freetype/config/ftoption.h, devel/ftoption.h
1364 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1365 we want to compile LCD-optimized rendering code (à la ClearType) or
1366 not. The macro *must* be disabled in default builds of the library
1367 for patent reasons.
1368
1369 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1370 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1371 isn't defined at compile time. This only changes the content of the
1372 rendered glyph to match the one of normal gray-level rendering,
1373 hence clients should not need to be modified.
1374
1375 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001376
Werner Lemberg745ff2c2006-09-19 05:48:02 +000013772006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1378
1379 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1380 LWFN fails and both are available.
1381
David Turnerf3050052006-09-11 12:00:32 +000013822006-09-11 David Turner <david@freetype.org>
1383
Werner Lembergf9644552006-09-12 13:48:10 +00001384 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1385 report their English names through an Apple Roman
1386 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001387
Werner Lembergf9644552006-09-12 13:48:10 +00001388 If the font uses another name entry with language_id == English, it
1389 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001390
Werner Lembergf9644552006-09-12 13:48:10 +00001391 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1392 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001393
Werner Lemberg36d2eab2006-09-05 19:24:34 +000013942006-09-05 Werner Lemberg <wl@gnu.org>
1395
1396 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001397 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001398 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1399 `HAN NOM B.ttf').
1400
1401 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1402
David Turner772e55d2006-09-05 09:45:15 +000014032006-09-05 David Turner <david@freetype.org>
1404
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001405 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001406
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001407 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1408 (TRaster): Remove `count_ex' and `count_ey'.
1409 (gray_find_cell): Remove 2nd and 3rd argument.
1410 (gray_alloc_cell): Merged with `gray_find_cell'.
1411 (gray_record_cell): Simplify.
1412 (gray_set_cell): Rewrite.
1413 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1414 (gray_render_span): Don't use FT_MEM_SET for small values.
1415 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1416 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1417 bitmap scanline.
1418 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001419
David Turneraa557a92006-09-04 16:42:44 +000014202006-09-04 David Turner <david@freetype.org>
1421
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001422 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1423 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001424
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014252006-09-03 Werner Lemberg <wl@gnu.org>
1426
1427 * devel/ftoption.h: Synchronize with
1428 include/freetype/config/ftoption.h.
1429
1430 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1431 variable declaration.
1432 (gray_convert_glyph): Fix compiler warnings.
1433
David Turner6d79f212006-09-01 14:09:35 +000014342006-09-01 David Turner <david@freetype.org>
1435
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001436 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1437 to recognize a few fonts that require the automatic unpatented
1438 loader.
David Turnerbd502952006-09-01 19:05:24 +00001439
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001440 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1441 rasterizer. The speed improvement is between 15% and 25%, depending
1442 on the font data.
1443
1444 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1445 (TCell): Redefine.
1446 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1447 (gray_init_cells): Updated.
1448 (gray_find_cell, gray_alloc_cell): New functions.
1449 (gray_record_cell): Rewritten to use `gray_find_cell' and
1450 `gray_alloc_cell'.
1451 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1452 QSORT_THRESHOLD):
1453 Removed.
1454 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1455 gray_dump_cells): Removed.
1456 (gray_sweep): Rewritten.
1457 (gray_convert_glyph): Rewrite code which used one of the sorting
1458 functions.
1459 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001460
Werner Lembergd898aed2006-08-29 09:50:34 +000014612006-08-29 Dr. Werner Fink <werner@suse.de>
1462
1463 * configure: Make it possible to handle configure options which
1464 have strings containing spaces.
1465
14662006-08-27 David Turner <david@freetype.org>
1467
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001468 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1469 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1470 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1471
1472 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1473 src/truetype/truetype.c, src/truetype/ttdriver.c,
1474 src/truetype/ttgload.c, src/truetype/ttgload.h,
1475 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1476 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1477 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1478
1479 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1480 member `force_autohint'.
1481
1482 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1483
1484 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1485 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001486
Jens Claudiusa787f452006-08-27 11:26:18 +000014872006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1488
1489 Fix miscellaneous compiler warnings.
1490
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001491 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1492 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001493
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001494 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1495 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1496 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001497
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001498 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1499 volatileness of argument to ft_longjmp. Spotted by Werner
1500 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001501
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001502 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1503 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001504
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001505 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1506 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001507
Werner Lembergc4c35b72006-08-27 08:03:46 +000015082006-08-27 Werner Lemberg <wl@gnu.org>
1509
1510 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1511 Reported by Jens.
1512
Jens Claudius088e44e2006-08-22 14:24:30 +000015132006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001514
Jens Claudius088e44e2006-08-22 14:24:30 +00001515 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001516 about addresses of volatile objects passed as function arguments as
1517 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001518
Werner Lembergc4c35b72006-08-27 08:03:46 +00001519 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1520 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001521
1522 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1523 argument `table' a pointer to a volatile object.
1524
1525 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1526 argument `table' a pointer to a volatile object.
1527
Jens Claudius2652bd52006-08-18 17:20:37 +000015282006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1529
1530 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1531 variable `_sfnt' as volatile since it must keep its value across
1532 a call to ft_setjmp.
1533 (gxv_validate): Same for local variables `memory' and `valid'.
1534 (classic_kern_validate): Same for local variables `memory',
1535 `ckern', and `valid'.
1536
1537 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1538 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1539 `jstf', and 'valid'.
1540
1541 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1542 local variable `cmap'.
1543
David Turner9fbfc6a2006-08-16 09:11:31 +000015442006-08-16 David Turner <david@freetype.org>
1545
Werner Lemberg12342992006-08-19 11:18:09 +00001546 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1547 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001548
Werner Lemberg12342992006-08-19 11:18:09 +00001549 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1550 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001551
David Turner33f5f242006-08-16 16:50:55 +00001552
Werner Lemberg12342992006-08-19 11:18:09 +00001553 Improvements to native TrueType hinting. This is a first try,
1554 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1555
1556 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1557 `extra_points2'.
1558
1559 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1560 `orus'.
1561
1562 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1563 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1564 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1565 handle `extra_points2'.
1566
1567 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1568 Remove compiler warning.
1569 (cur_to_arg): Remove macro.
1570 (TT_Hint_Glyph): Updated.
1571 (TT_Process_Simple_Glyph): Handle `orus'.
1572
1573 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1574 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1575 (LOC_Ins_IUP): Renamed to...
1576 (IUP_WorkerRec): This.
1577 Add `orus' member.
1578 (Shift): Renamed to...
1579 (_iup_worker_shift): This.
1580 Updated.
1581 (Interp): Renamed to...
1582 (_iup_worker_interpolate): This.
1583 Updated to handle `orus'.
1584 (Ins_IUP): Updated.
1585
1586 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1587 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001588
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000015892006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1590
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001591 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001592 build ftvalid in ft2demos. This has been inadvertedly changed
1593 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001594
15952006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1596
Werner Lemberg12342992006-08-19 11:18:09 +00001597 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1598 Jens:
1599 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001600
Werner Lemberg12342992006-08-19 11:18:09 +00001601 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1602 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001603
1604 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1605
Jens Claudius9950adc2006-08-13 12:14:36 +000016062006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1607
Werner Lemberg12342992006-08-19 11:18:09 +00001608 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1609 T1_TOKEN_TYPE_KEY.
1610 (T1_FieldRec): Add `dict'.
1611 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1612 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1613 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001614
Werner Lemberg12342992006-08-19 11:18:09 +00001615 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1616 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001617
1618 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1619
1620 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001621 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1622 not T1_TOKEN_TYPE_ANY.
1623 (ps_parser_load_field): Make sure a token that should be a string or
1624 name is really a string or name.
1625 Avoid memory leak if a keyword has been already encountered and its
1626 value is overwritten.
1627 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1628 T1_FIELD_XXX.
1629 (parse_dict): Ignore keywords that occur in the wrong dictionary
1630 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001631
Werner Lemberg12342992006-08-19 11:18:09 +00001632 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1633 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001634
Werner Lemberg12342992006-08-19 11:18:09 +00001635 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1636 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001637
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016382006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1639
1640 Move creation of field `buildchar' of T1_DecoderRec out of
1641 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1642 of it.
1643
1644 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1645 and `T1_Compute_Max_Advance'.
1646
1647 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1648 Remove field `face', add `len_buildchar'.
1649
1650 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1651 field `buildchar'.
1652
1653 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1654 finisher for T1_Decoder.
1655 (cid_slot_load_glyph): Do not ignore failure when initializing the
1656 T1_Decoder.
1657
1658 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1659 Updated.
1660 (t1_decoder_init): Remove initialization of fields `buildchar' and
1661 `len_buildchar'.
1662 (t1_decoder_done): Remove deallocation of field `buildchar'.
1663
1664 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1665 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1666 T1_Decoder.
1667 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1668 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1669 case of error.
1670
1671 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1672 `buildchar' of T1_FaceRec.
1673
1674 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1675 `buildchar' of T1_FaceRec.
1676
Werner Lemberg1a380e02006-07-14 18:28:08 +000016772006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1678
1679 * freetype2/include/freetype/internal/psaux.h: New macros
1680 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1681 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1682 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1683 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1684 (T1_DecoderRec): New fields `buildchar' and `face'.
1685 (IS_PS_TOKEN): New macro.
1686
1687 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1688 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1689
1690 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1691 `default_design_vector' and `num_default_design_vector'.
1692
1693 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1694 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1695 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1696
1697 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1698 `token' argument to be NULL if we want only to count the number of
1699 tokens.
1700 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1701 want to skip the array.
1702 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1703 want to skip the array.
1704
1705 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1706 support for (partially commented out) othersubrs 19-25, 27, and 28.
1707 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1708 (t1_decoder_done): Release new field `buildchar'.
1709
1710 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1711 functions.
1712 (t1_keywords): Register them.
1713 (t1_allocate_blend): Updated.
1714 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1715 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1716 (parse_dict): Remove `keyword_flags' argument.
1717 Use new macro IS_PS_TOKEN.
1718 Changed function so that later PostScript definitions override
1719 earlier ones.
1720 (t1_init_loader): Initialize new field `keywords_encountered'.
1721 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1722 `len_buildchar'.
1723 Remove `keywords_flags'.
1724
1725 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1726 `keywords_encountered'.
1727 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1728
1729 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1730 New entries for parsing /NDV, /CDV, and /DesignVector.
1731
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017322006-07-07 Werner Lemberg <wl@gnu.org>
1733
1734 Add many checks to protect against malformed PCF files.
1735
1736 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1737 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1738
1739 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1740 data and check that tables don't overlap (using a simple
1741 bubblesort).
1742 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1743 New macros which give the size of data structures in the data
1744 stream.
1745 (pcf_get_properties): Use rough estimates to get array size limits.
1746 Assign `face->nprops' and `face->properties' earlier so that a call
1747 to PCF_Face_Done can do the clean-up in case of error.
1748 Protect against invalid string offsets.
1749 (pcf_get_metrics): Clean up code.
1750 Adjust tracing message levels.
1751 Use rough estimate to get array size limit.
1752 (pcf_get_bitmaps): Clean up code.
1753 Adjust tracing message levels.
1754 Use rough estimates to get offset limits.
1755 (pcf_get_encodings): Adjust tracing message level.
1756 (pcf_get_accel): Clean up code.
1757
Werner Lemberg8eb05252006-06-27 06:20:01 +000017582006-06-26 Werner Lemberg <wl@gnu.org>
1759
1760 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1761 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1762
Werner Lemberg24703f82006-06-26 19:12:51 +000017632006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1764
1765 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1766 (t1_decoder_parse_charstrings): Operator with
1767 opcode 15 pops its two arguments.
1768 Handle the case where the pops of an othersubr may be part of a
1769 subroutine.
1770 Handle unknown othersubrs gracefully: count their operands and let
1771 the following pop operators push the operands as the results onto
1772 the Type1 stack.
1773 Improve handling of setcurrentpoint opcode.
1774
Werner Lembergc011f4c2006-06-26 09:40:00 +000017752006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1776
1777 The Type 1 parser now skips over top-level procedures as required
1778 for a `Simplified Parser'. This makes the parser more robust as it
1779 doesn't poke around in PostScript code. Additionally, it makes the
1780 FontDirectory hackery in src/type1/t1load.c unnecessary.
1781
1782 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1783 (skip_literal_string): Add FT_Error as return value.
1784 Handle escapes better.
1785 (skip_string): Add FT_Error as return value.
1786 Don't set `parser->error' but return error code directly.
1787 (skip_procedure): New function.
1788 (ps_parser_skip_PS_token): Handle procedures.
1789 Update code.
1790 (ps_parser_to_token): Update code.
1791 (ps_parser_load_field_table): Handle bbox entries also.
1792
1793 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1794 Add commented-out code for synthetic fonts.
1795
Werner Lemberga2da05c2006-06-25 06:27:27 +000017962006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1797
1798 Fix two hinting bugs as reported in
1799 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1800
1801 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1802 `first_point' member.
1803
1804 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1805 `first_point'.
1806 (TT_Process_Composite_Glyph): Always untouch points.
1807
1808 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1809 `first_point' and `last_point' in case of composite glyphs.
1810 (Ins_IUP): Fix computation of `end_point'.
1811
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018122006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1813
Werner Lembergef3d2c22006-06-25 06:07:14 +00001814 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1815 Mac. The original patch was written by David Sachitano and Lawrence
1816 Coopet, and modified by Sean McBride for MPW compatibility. Only
1817 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001818
Werner Lembergef3d2c22006-06-25 06:07:14 +00001819 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1820 Mac OS X platforms.
1821 (OS_INLINE): Undefine before definition.
1822 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1823 FontAssociation table in FOND resource.
1824 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1825 and fontSize at each entry of FontAssociation table in FOND
1826 resource.
1827 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1828 ffStylOff of FamilyRecord header of FOND resource, the header,
1829 fontSize, fontID at each entry of FontAssociation table, and
1830 StyleMapping table.
1831 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001832
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018332006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1834
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001835 Public API of TrueTypeGX, OpenType, and classic kern table validator
1836 should return `FT_Err_Unimplemented_Feature' if validation service
1837 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001838 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001839 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1840
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001841 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1842 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1843 unavailable.
1844 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1845 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001846
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001847 * src/base/ftotval.c (FT_OpenType_Validate): Return
1848 FT_Err_Unimplemented_Feature if OpenType validation service is
1849 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001850
Werner Lembergb10e45a2006-06-08 07:32:56 +000018512006-06-08 Werner Lemberg <wl@gnu.org>
1852
1853 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1854 errors.
1855
David Turner5f1f7502006-06-07 05:11:50 +000018562006-06-07 David Turner <david@freetype.org>
1857
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001858 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1859 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1860 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001861
David Turner457b4a82006-06-06 08:14:14 +000018622006-06-06 David Turner <david@freetype.org>
1863
Werner Lemberg4836f952006-06-06 12:54:08 +00001864 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001865
Werner Lemberg4836f952006-06-06 12:54:08 +00001866 We change `ps_unicodes_init' so that it also takes a
1867 `free_glyph_name' callback to release the glyph names returned by
1868 `get_glyph_name'
1869
1870 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1871 Renamed to ...
1872 (PS_GetGlyphNameFunc): This.
1873 (PS_FreeGlyphNameFunc): New typedef.
1874 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1875
1876 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1877 argument.
1878 (cff_sid_free_glyph_name): New function.
1879 (cff_cmap_unicode_init): Updated.
1880
1881 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1882
1883 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1884 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001885
1886
David Turner09717352006-06-04 14:33:08 +000018872006-06-04 David Turner <david@freetype.org>
1888
Werner Lembergd724f202006-06-04 15:17:41 +00001889 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1890 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001891 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001892
Werner Lembergd724f202006-06-04 15:17:41 +00001893 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1894 of `face->num_glyphs' which missed the last glyph, due to
1895 the offset-by-1 computation, since the PFR format doesn't
1896 guarantee that glyph index 0 corresponds to the `missing
1897 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001898
Werner Lemberg33779662006-05-26 06:30:05 +000018992006-05-25 Werner Lemberg <wl@gnu.org>
1900
1901 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1902 `-no-undefined'. Reported by Christian Biesinger.
1903
Werner Lemberg24773d62006-05-20 08:53:13 +000019042006-05-19 Brian Weed <bw@imaginengine.com>
1905
1906 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1907 have debug information, and debug libraries use `C7 compatible'
1908 debug info.
1909
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019102006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1911
Werner Lemberga6523a62006-05-20 08:47:01 +00001912 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001913 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001914
Werner Lemberga6523a62006-05-20 08:47:01 +00001915 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1916 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001917
1918 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001919 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001920
19212006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1922
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001923 * build/unix/configure.raw: Add a fallback to disable Carbon
1924 dependency, if configured with no options on Mac OS X.
1925
19262006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1927
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001928 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001929 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001930 the second part of Savannah bug #16590.
1931
Werner Lemberg545c4e52006-05-17 22:55:04 +000019322006-05-18 Werner Lemberg <wl@gnu.org>
1933
1934 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1935 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1936
David Turnerdc3ff312006-05-17 12:59:35 +000019372006-05-17 David Turner <david@freetype.org>
1938
Werner Lemberg545c4e52006-05-17 22:55:04 +00001939 This is a major patch used to drastically improve the performance of
1940 loading glyphs. This both speeds up loading the glyph vectors
1941 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001942
Werner Lemberg545c4e52006-05-17 22:55:04 +00001943 We now use inline assembler code with GCC to implement `FT_MulFix',
1944 which is probably the most important function related to the
1945 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001946
Werner Lemberg545c4e52006-05-17 22:55:04 +00001947 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001948
1949
Werner Lemberg545c4e52006-05-17 22:55:04 +00001950 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1951 `cursor' and `limit'.
1952
1953 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1954 New functions.
1955 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1956 [TEST]: Remove.
1957
1958 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1959 code.
1960
1961 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1962 `FT_ZERO'
1963 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1964 (af_glyph_hints_reload: Rewrite recognition of weak points.
1965
1966 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1967 constant values out of the loops.
1968
1969 * src/autofit/aftypes.h: Updated.
1970
1971 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1972
1973 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1974 product to get orientation.
1975
1976 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1977 (FT_Stream_OpenGzip): Use it to handle small files directly in
1978 memory.
1979
1980 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1981 Improve performance.
1982
1983 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1984 `limit'.
1985
1986 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1987 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1988 exceedingly large values of number of contours. Speed up by
1989 reducing the number of loops.
1990
1991 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1992
1993
1994 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1995 used to detect rogue clients from 4 to 16. This is to prevent some
1996 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1997 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001998
Werner Lembergde2d90a2006-05-17 08:54:30 +000019992007-05-17 Werner Lemberg <wl@gnu.org>
2000
2001 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002002 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002003
20042006-05-16 Werner Lemberg <wl@gnu.org>
2005
2006 * docs/PROBLEMS: Updated icl issues.
2007
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002008----------------------------------------------------------------------------
2009
Werner Lemberg42b63b22007-01-21 21:01:33 +00002010Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002011David Turner, Robert Wilhelm, and Werner Lemberg.
2012
2013This file is part of the FreeType project, and may only be used, modified,
2014and distributed under the terms of the FreeType project license,
2015LICENSE.TXT. By continuing to use, modify, or distribute this file you
2016indicate that you have read the license and understand and accept it
2017fully.
2018
2019
2020Local Variables:
2021version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002022coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002023End: