blob: 3f044a891c78f87791b7a080b47f49b829b8a7a8 [file] [log] [blame]
David Turner0d0365e2007-05-22 09:53:44 +000012007-05-22 David Turner <david@freetype.org>
2
3 * src/lzw/ftzopen.h, src/lzw/ftzopen.c: apply some "band-aid"
4 to avoid blowing up the heap in the case of malformed fonts.
5 related to bug #19910; *not* a real fix though...
6
72007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +00008
9 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
10 (ps_dimension_set_mask_bits): Remove `const'.
11
David Turner0d0365e2007-05-22 09:53:44 +0000122007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000013
14 * src/sfnt/ttmtx.c (tt_face_get_metrics)
15 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
16
Werner Lembergb826fa72007-05-19 07:18:48 +0000172007-05-19 Derek Clegg <dclegg@apple.com>
18
19 Savannah patch #5929.
20
21 * include/freetype/tttables.h, src/base/ftobjcs.c
22 (FT_Get_CMap_Format): New function.
23
24 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
25 `format' member.
26 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
27 cmap_info->format.
28
Werner Lemberg6f99c882007-05-19 07:01:49 +0000292007-05-19 Werner Lemberg <wl@gnu.org>
30
31 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
32 before handling subglyphs so that it can be reinitialized each time.
33 This fixes Savannah bug #19859.
34
Werner Lemberg95bc9d32007-05-16 15:19:42 +0000352007-05-16 Werner Lemberg <wl@gnu.org>
36
37 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
38 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
39 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
40 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
41 tt_face_get_metrics): Fix type-punning issues.
42
David Turner0a24bd22007-05-15 10:54:10 +0000432007-05-15 David Turner <david@freetype.org>
44
45 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000046 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
47 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +000048 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +000049 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +000050
Werner Lemberg607dec72007-05-15 06:49:37 +0000512007-05-15 Graham Asher <graham.asher@btinternet.com>
52
53 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
54 variable.
55 * src/autofit/afloader.c (af_loader_load_g): Ditto.
56
57 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
58 (open_face_from_buffer): Initialize `stream'.
59 (FT_Request_Metrics): Remove unused variable.
60 Remove redundant `break' statements.
61 (FT_Get_Track_Kerning): Remove unused variable.
62
63 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
64 afm_parse_kern_data): Remove redundant
65 `break' statements.
66 (afm_parser_parse): Ditto.
67 Don't use uninitialized variables.
68
69 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
70 Use `|' operator instead of `^' to set it.
71 Update all users.
72
73 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
74 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
75
76 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
77 comparison.
78 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
79 (TT_Load_Glyph): Remove unused variable.
80
Werner Lemberg8d463a52007-05-13 16:01:55 +0000812007-05-13 Derek Clegg <dclegg@apple.com>
82
83 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
84 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
85
David Turner711cf842007-05-11 14:36:24 +0000862007-05-11 David Turner <david@freetype.org>
87
Werner Lemberg56ceaa42007-05-14 18:53:58 +000088 * src/cache/ftbasic.c, include/freetype/ftcache.h
89 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
90 functions that allow us to look up glyphs using an FTC_Scaler object
91 to specify the size, making it possible to use fractional pixel
92 sizes.
93
94 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
95 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +000096
Werner Lemberg94be20e2007-05-09 20:02:55 +0000972007-05-09 Graham Asher <graham.asher@btinternet.com>
98
99 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
100 (af_latin_metrics_scale_dim): Fix compiler warnings.
101
Werner Lemberg41271032007-05-06 04:51:48 +00001022007-05-06 Werner Lemberg <wl@gnu.org>
103
104 * builds/win32/visualce/freetype.sln: Removed, as requested by
105 Vincent.
106
Werner Lembergdf49e692007-05-04 06:30:05 +00001072007-05-04 Vincent RICHOMME <richom.v@free.fr>
108
109 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
110 PC targets.
111
112 * docs/CHANGES: Document them.
113
1142007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000115
116 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
117 mmap (which might happen on some RTOS). From Savannah patch #5909.
118
Werner Lemberg106eaf12007-05-03 07:07:47 +00001192007-05-03 Werner Lemberg <wl@gnu.org>
120
121 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
122 * include/freetype/freetype.h (FT_Set_Char_Size): Update
123 documentation.
124
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001252007-04-28 Victor Stinner <victor.stinner@inl.fr>
126
127 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
128 `cmap'.
129
Werner Lembergcc712a22007-04-27 17:16:50 +00001302007-04-27 Werner Lemberg <wl@gnu.org>
131
132 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
133 number of points in contours. Problem reported by Victor Stinner
134 <victor.stinner@haypocalc.com>.
135 (TT_Process_Simple_Glyph): Synchronize variable types.
136
Werner Lemberg45bb18f2007-04-26 06:26:35 +00001372007-04-26 Werner Lemberg <wl@gnu.org>
138
139 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
140 zero in case of error. This fixes Savannah bug #19689.
141
David Turnera8b45e62007-05-11 14:10:30 +00001422007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
143
144 * src/truetype/ttobjs.c: fix a typo that created a speed regression
145 in the TrueType bytecode loader
146
Werner Lembergfcc1f472007-04-10 11:51:50 +00001472007-04-10 Martin Horak <horakm@centrum.cz>
148
149 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
150 Ignore `hhea' table. This fixes Savannah bug #19261.
151
Werner Lemberg14bf82e2007-04-10 04:09:49 +00001522007-04-09 Werner Lemberg <wl@gnu.org>
153
154 * Version 2.3.4 released.
155 =========================
156
157
158 Tag sources with `VER-2-3-4'.
159
160 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
161 version number to 2.3.4.
162
163 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
164 builds/win32/visualc/freetype.dsp,
165 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
166
167 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
168
169 * builds/unix/configure.raw (version_info): Set to 9:15:3.
170
Werner Lembergf4a52a62007-04-09 08:40:11 +00001712007-04-09 Martin Horak <horakm@centrum.cz>
172
173 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
174 memory stream to avoid a crash with the incremental memory
175 interface (Savannah bug #19260).
176
David Turner1dcb4442007-04-06 08:19:04 +00001772007-04-06 David Turner <david@freetype.org>
178
Werner Lembergc81cf612007-04-06 09:28:23 +0000179 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
180 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000181
Werner Lemberg9f83e052007-04-05 02:28:23 +00001822007-04-04 Werner Lemberg <wl@gnu.org>
183
184 * Version 2.3.3 released.
185 =========================
186
187
188 Tag sources with `VER-2-3-3'.
189
190 * docs/CHANGES: Mention CVE-2007-1351.
191
David Turner7338ec22007-04-03 14:30:34 +00001922007-04-03 David Turner <david@freetype.org>
193
194 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000195 if one of the resolution values is 0, treat it as if it were the
196 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000197
David Turnere6472c12007-04-02 13:13:54 +00001982007-04-02 David Turner <david@freetype.org>
199
Werner Lemberg94f12272007-04-03 07:19:53 +0000200 Add special code to detect `extra-light' fonts and do not snap their
201 stem widths too much to avoid bizarre hinting effects.
202
203 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
204 `extra_light' members.
205
206 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
207 them.
208 (af_latin_metrics_scale_dim): Set `extra_light'.
209 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000210
David Turner3f539692007-03-28 14:53:40 +00002112007-03-28 David Turner <david@freetype.org>
212
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000213 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000214 padding.
215
Werner Lemberga08b2172007-03-28 07:17:17 +00002162007-03-28 Werner Lemberg <wl@gnu.org>
217
218 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
219 gracefully.
220 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000221 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000222 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
223 number of code points in Unicode.
224
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000225 * builds/win32/visualc/index.html,
226 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000227 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000228 s/232/233/.
229
230 * docs/CHANGES: Mention ftdiff.
231
David Turner3b242d32007-03-26 12:03:04 +00002322007-03-26 David Turner <david@freetype.org>
233
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000234 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
235 corresponding code.
236 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000237
Werner Lemberga08b2172007-03-28 07:17:17 +0000238 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000239 computations in order to ignore single-point contours. These are
240 never rasterized and correspond in certain fonts to mark-attach
241 points that are very far from the glyph's real outline, ruining the
242 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000243
Werner Lemberga08b2172007-03-28 07:17:17 +0000244 * src/autofit/afloader.c (af_loader_load_g): In the case of
245 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
246 Otherwise code that uses them will most certainly ruin the fixed
247 advance property.
David Turner23553d62007-03-26 13:37:17 +0000248
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000249 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
250 documentation and bump version number to 2.3.3.
251
252 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
253
254 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000255
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002562007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
257
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000258 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
259 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000260 * builds/vms/ftconfig.h: Ditto.
261 * include/freetype/config/ftconfig.h: Ditto.
262
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002632007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
264
Werner Lemberg14ffe092007-03-22 06:12:43 +0000265 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
266 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000267 proposed by Sean McBride:
268 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
269
2702007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
271
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000272 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
273 setjmp, proposed by Sean McBride:
274 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
275
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00002762007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
277
Werner Lembergc9f6c662007-03-21 13:30:14 +0000278 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
279 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
280 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000281
David Turner74c34eb2007-03-18 07:19:31 +00002822007-03-18 David Turner <david@freetype.org>
283
Werner Lembergc9f6c662007-03-21 13:30:14 +0000284 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
285 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000286
Werner Lembergc9f6c662007-03-21 13:30:14 +0000287 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000288
David Turner89020d92007-03-17 17:48:57 +00002892007-03-17 David Turner <david@freetype.org>
290
Werner Lembergc9f6c662007-03-21 13:30:14 +0000291 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
292 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000293
Werner Lemberg25d592a2007-03-09 07:59:35 +00002942007-03-09 Werner Lemberg <wl@gnu.org>
295
296 * Version 2.3.2 released.
297 =========================
298
299
300 Tag sources with `VER-2-3-2'.
301
302 * builds/win32/visualc/index.html,
303 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000304 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000305 s/231/232/.
306
David Turner3a51afa2007-03-08 10:50:38 +00003072007-03-08 David Turner <david@freetype.org>
308
Werner Lemberg25d592a2007-03-09 07:59:35 +0000309 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000310
Werner Lemberg25d592a2007-03-09 07:59:35 +0000311 * builds/unix/configure.raw (version_info): Set to 9:13:3.
312
313 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
314
315 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000316
Werner Lemberg1e259de2007-03-08 15:39:21 +0000317 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
318 function to work properly, over-writing user-provided buffers in
319 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000320
David Turner121cad52007-03-08 16:43:50 +0000321
Werner Lemberg3d92f082007-03-06 11:59:24 +00003222007-03-05 Werner Lemberg <wl@gnu.org>
323
324 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
325 macro for `strstr'.
326
327 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
328 `trick_names', as suggested by Ivan Nincic.
329
David Turner085bc6e2007-03-05 17:40:03 +00003302007-03-05 David Turner <david@freetype.org>
331
Werner Lembergd112cf02007-03-06 12:06:56 +0000332 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
333 case FT_Init_FreeType fails for some reason. Problem reported by
334 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000335
Werner Lembergd112cf02007-03-06 12:06:56 +0000336 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
337 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
338 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
339 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000340
Werner Lembergd112cf02007-03-06 12:06:56 +0000341 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
342 signed values, not unsigned ones. Problem reported by Johannes
343 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000344
David Turner601aefe2007-02-21 16:47:49 +00003452007-02-21 David Turner <david@freetype.org>
346
Werner Lembergde5e6862007-02-25 21:06:43 +0000347 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
348 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000349
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00003502007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
351
352 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
353 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
354 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
355
Werner Lemberga0915172007-02-16 08:12:50 +00003562007-02-16 Werner Lemberg <wl@gnu.org>
357
358 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
359 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
360
David Turner2c4500e2007-02-14 15:08:47 +00003612007-02-14 David Turner <david@freetype.org>
362
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000363 It seems that the following changes fix most of the known
364 interpreter problems with my fonts, but more testing is needed,
365 though.
366
367 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
368 (TT_MulFix14): Rewrite.
369 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
370 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000371
Werner Lembergc6a14082007-02-12 22:08:15 +00003722007-02-12 Werner Lemberg <wl@gnu.org>
373
374 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
375 warnings.
376
377 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
378 (bdf_interpret_style): Ditto.
379
David Turnerc0f9c4a2007-02-12 14:55:03 +00003802007-02-12 David Turner <david@freetype.org>
381
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000382 Simplify projection and dual-projection code interface.
383
Werner Lemberg406d25f2007-02-12 22:01:18 +0000384 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
385 FT_Vector' as argument type.
386 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
387 Updated.
388 (CUR_fast_project, CUR_fast_dualproj): New macros.
389 (Project, Dual_Project, Project_x, Project_y): Updated.
390 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
391 macros.
392
393
394 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
395 adjustments for the non-light auto-hinted modes. Gets rid of
396 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000397
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000398 * src/autofit/aflatin.c (af_latin_hints_link_segments,
399 af_latin_hints_compute_edges): Slight optimization of the segment
400 linker and better handling of serif segments to get rid of broken
401 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000402
David Turnerc0f9c4a2007-02-12 14:55:03 +0000403
Werner Lemberg442bfb82007-02-12 21:44:10 +0000404 Introduce new string functions and the corresponding macros to get
405 rid of various uses of strcpy and other `evil' functions, as well as
406 to simplify a few things.
407
408 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
409 ft_mem_strcpyn): New declarations.
410 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
411 macros.
412 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
413 functions.
414
415 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
416 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
417 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
418 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
419 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
420 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
421 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
422 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000423
Werner Lemberg406d25f2007-02-12 22:01:18 +0000424 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
425
Werner Lemberg582067d2007-02-11 15:03:05 +00004262007-02-11 Werner Lemberg <wl@gnu.org>
427
428 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
429 non-spacing glyphs.
430
Werner Lemberg8f474532007-02-07 08:31:01 +00004312007-02-07 Tom Parker <palfrey@tevp.net>
432
433 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
434 pointer.
435
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004362007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
437
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000438 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
439 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000440 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000441 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
442 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
443 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
444 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000445
446 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
447 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000448 * builds/mac/ftmac.c: Ditto.
449
4502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
451
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000452 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000453 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000454 #include <ftmac.c>.
455
4562007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
457
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000458 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
459 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
460 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
461 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
462 FT_GetFilePath_From_Mac_ATS_Name.
463 * builds/mac/ftmac.c: Ditto.
464
4652007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
466
Werner Lembergdcbb7082007-02-08 08:54:09 +0000467 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000468 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
469 for passing to FT_New_Face_From_FSSpec.
470
4712007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
472
Werner Lembergdcbb7082007-02-08 08:54:09 +0000473 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000474 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000475
476 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
477 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000478 * builds/mac/ftmac.c (OS_INLINE): Ditto.
479
Werner Lemberg313d7772007-02-01 08:10:45 +00004802007-02-01 Werner Lemberg <wl@gnu.org>
481
482 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
483 Explain why applications shouldn't use it. Found by Alexei.
484
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00004852007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000486
487 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
488 message.
489
490 * src/gxvalid/gxvmort1.c
491 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
492 message.
493
Werner Lemberg53935932007-01-31 08:53:02 +00004942007-01-31 Werner Lemberg <wl@gnu.org>
495
496
497 * Version 2.3.1 released.
498 =========================
499
500
501 Tag sources with `VER-2-3-1-FINAL'.
502
503 * builds/win32/visualc/freetype.dsp,
504 builds/win32/visualc/freetype.vcproj: s/230/231/.
505 * builds/win32/visualc/index.html: s/221/231/.
506
507 * vms_make.com: Add `ftgasp'.
508
David Turnera7ee6082007-01-30 10:33:53 +00005092007-01-30 David Turner <david@freetype.org>
510
Werner Lemberg53935932007-01-31 08:53:02 +0000511 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000512
Werner Lemberg53935932007-01-31 08:53:02 +0000513 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000514
Werner Lemberg25d592a2007-03-09 07:59:35 +0000515 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000516 s/2.3.0/2.3.1/.
517
518 * builds/unix/configure.raw (version_info): Set to 9:12:3.
519
520
521 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
522 (af_loader_load_g): Disable the warper (i.e., the light hinting
523 improvements) to make a 2.3.1 bugfix release before introducing a
524 new feature. This should give us more time to tune and improve the
525 warper for the next release.
526
527 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000528
David Turnerd91eebd2007-01-26 15:05:41 +00005292007-01-25 David Turner <david@freetype.org>
530
Werner Lembergbf241762007-01-26 16:08:49 +0000531 For light auto-hinting, improve glyph advance widths and resurrect
532 normal/full hinting to its normal quality.
533
534 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
535 and `xmax_delta'.
536 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
537 and `xmax_delta'.
538
539 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
540 preprocessor conditional with if-clause, handling both light and
541 normal mode.
542
543 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
544 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000545
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00005462007-01-25 Werner Lemberg <wl@gnu.org>
547
548 * docs/release: Updated -- Savannah uses a new uploading scheme.
549
David Turnera42567b2007-01-25 12:23:37 +00005502007-01-25 David Turner <david@freetype.org>
551
Werner Lembergd7855662007-01-25 13:53:56 +0000552 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000553
Werner Lembergd7855662007-01-25 13:53:56 +0000554 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
555 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
556 functions.
David Turnera42567b2007-01-25 12:23:37 +0000557
Werner Lembergd7855662007-01-25 13:53:56 +0000558 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000559
Werner Lembergb1be9e82007-01-25 11:50:00 +00005602007-01-25 Werner Lemberg <wl@gnu.org>
561
562 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000563 correctly in a sanity check. Since this function is only used to
564 load local and global functions, any charstring that called the last
565 local/global function would fail otherwise. This fixes Savannah bug
566 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000567
568 * docs/CHANGES: Document it.
569
David Turnerb6de8d12007-01-23 15:51:50 +00005702007-01-23 David Turner <david@freetype.org>
571
Werner Lembergb1be9e82007-01-25 11:50:00 +0000572 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
573 prevented compilation when disabling both the unpatented and the
574 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000575
Werner Lembergb1be9e82007-01-25 11:50:00 +0000576
577 Fix and enable the warper to improve `light' hinting mode. This is
578 not necessarily a final version, but it seems to work well.
579
580 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
581 Disable code.
582 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
583 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
584
585 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
586 (af_warper_compute_line_best): Fix array size of `scores'.
587 (af_warper_compute): Better handling of border cases.
588 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
589 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000590
Werner Lemberg011d1112007-01-21 09:36:00 +00005912007-01-21 Werner Lemberg <wl@gnu.org>
592
Werner Lemberg42b63b22007-01-21 21:01:33 +0000593 * ChangeLog: Split off older entries into...
594 * ChangeLog.22: This new file.
595
5962007-01-21 Werner Lemberg <wl@gnu.org>
597
Werner Lemberg555258f2007-01-21 09:46:37 +0000598 * docs/CHANGES: Document SHZ fix.
599
6002007-01-21 George Williams <gww@silcom.com>
601
602 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
603 points.
604
6052007-01-21 Werner Lemberg <wl@gnu.org>
606
Werner Lemberg011d1112007-01-21 09:36:00 +0000607 * src/sfnt/ttmtx.c (tt_face_get_metrics)
608 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
609
Werner Lemberg87a5a432007-01-17 12:44:39 +00006102007-01-17 Werner Lemberg <wl@gnu.org>
611
Werner Lembergb8003292007-01-17 12:56:25 +0000612
613 * Version 2.3.0 released.
614 =========================
615
616
617 Tag sources with `VER-2-3-0-FINAL'.
618
6192007-01-17 Werner Lemberg <wl@gnu.org>
620
Werner Lemberg87a5a432007-01-17 12:44:39 +0000621 * docs/release: Updated.
622
David Turner22122722007-01-16 20:06:44 +00006232007-01-16 David Turner <david@freetype.org>
624
Werner Lemberg87a5a432007-01-17 12:44:39 +0000625 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
626 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
627 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
628 warnings.
David Turner22122722007-01-16 20:06:44 +0000629
Werner Lemberg267e1d72007-01-15 07:48:09 +00006302007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
631
632 * builds/amiga/makefile, builds/amiga/makefile.os4,
633 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
634
635 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
636
Werner Lemberg8c4120d2007-01-15 06:42:40 +00006372007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
638
639 Fix various compiler warnings.
640
641 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
642 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
643 s/index/strike_index/.
644 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
645
646 * src/gxvalid/gxvmorx5.c
647 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
648
649 * src/truetype/ttinterp.c (Compute_Point_Displacement),
650 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
651 uninitialized variables.
652
Werner Lemberg6164a9d2007-01-13 23:01:36 +00006532007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
654
655 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
656
Werner Lemberg281c1482007-01-13 22:50:51 +00006572007-01-13 Werner Lemberg <wl@gnu.org>
658
659 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
660 versions up to 0x3FF without complaining.
661
Werner Lembergac250b22007-01-13 14:01:36 +00006622007-01-13 Derek Clegg <dclegg@apple.com>
663
664 Add FT_Get_PS_Font_Info interface to CFF driver.
665
666 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
667 (CFF_FontRec): Add `font_info' field.
668
669 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
670 (cff_font_done): Free font->font_info if necessary.
671
672 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
673 (cff_service_ps_info): Register cff_ps_get_font_info.
674
Werner Lemberg23df31a2007-01-13 08:45:00 +00006752007-01-13 Werner Lemberg <wl@gnu.org>
676
677 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
678 with C++ compiler.
679
680 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
681 af_glyph_hints_dump_edges): Ditto.
682
683 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
684 `modules.cfg').
685
686 * src/sfnt/ttsbit0.h: Remove.
687
688 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
689
Werner Lemberg27cf9de2007-01-13 07:34:23 +00006902007-01-12 David Turner <david@freetype.org>
691
692 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
693 bug in the bitmap emboldener if the pitch of the source bitmap is
694 much larger than its width.
695
696 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
697 compilation warning.
698
Werner Lemberg6d96d312007-01-12 10:30:19 +00006992007-01-12 Werner Lemberg <wl@gnu.org>
700
701 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
702 `automake' CVS module from sources.redhat.com.
703
Werner Lemberg17432b52007-01-12 09:28:44 +00007042007-01-11 Werner Lemberg <wl@gnu.org>
705
706 * src/type1/t1load.c (is_space): Removed.
707 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
708 (parse_charstrings): Use IS_PS_TOKEN.
709
710
711 * autogen.sh: Avoid bash specific syntax.
712
David Turner038ace22007-01-11 15:00:59 +00007132007-01-11 David Turner <david@freetype.org>
714
Werner Lemberg17432b52007-01-12 09:28:44 +0000715 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000716
Werner Lemberg17432b52007-01-12 09:28:44 +0000717 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000718
Werner Lemberg17432b52007-01-12 09:28:44 +0000719 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
720 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000721 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000722
Werner Lemberg17432b52007-01-12 09:28:44 +0000723 * autogen.sh: Small fix to get it working on Mac OS X properly:
724 The issue is that GNU libtool is called `glibtool' on this platform,
725 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000726
David Turner2628ea92007-01-10 13:15:56 +00007272007-01-10 David Turner <david@freetype.org>
728
Werner Lemberg17432b52007-01-12 09:28:44 +0000729 * all-sources: Tag all sources with VER-2-3-0-RC1 and
730 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000731
Werner Lemberg17432b52007-01-12 09:28:44 +0000732 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
733 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
734 version number to 2.3.0.
735
736 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
737 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000738
739 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000740 include/freetype/ftlcdfil.h: Update reference documentation with
741 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000742
Werner Lemberg17432b52007-01-12 09:28:44 +0000743 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
744 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000745
Werner Lembergbf02d392007-01-10 07:07:37 +00007462007-01-10 Derek Clegg <dclegg@apple.com>
747
748 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
749 values.
750
David Turnerf48b60e2007-01-08 15:15:32 +00007512007-01-08 David Turner <david@freetype.org>
752
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000753 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000754
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000755 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
756 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000757 corresponding to a given character pixel size.
758
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000759 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
760 `gasp' table, in order to avoid potential problems with later
761 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000762
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000763 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
764 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000765
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000766 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
767 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
768 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
769 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000770
Werner Lemberge6b6f372007-01-07 00:06:47 +00007712007-01-07 Werner Lemberg <wl@gnu.org>
772
Werner Lembergb8004d22007-01-07 09:13:38 +0000773 * src/cid/cidparse.c (cid_parser_new): Improve error message for
774 Type 11 fonts.
775 Scan for `/sfnts' token.
776
7772007-01-07 Werner Lemberg <wl@gnu.org>
778
779 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000780
Werner Lembergbe5f7972007-01-06 07:51:48 +00007812007-01-06 Werner Lemberg <wl@gnu.org>
782
783 * src/cff/cffload.c (cff_index_init): Remove unused variable.
784 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
785
David Turnera8cf42b2007-01-04 16:46:46 +00007862007-01-04 David Turner <david@freetype.org>
787
Werner Lembergf6294392007-01-06 07:47:45 +0000788 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
789 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000790
Werner Lembergf6294392007-01-06 07:47:45 +0000791
792 Do not allocate interpreter-specific tables in memory if we are not
793 going to load glyphs with the bytecode interpreter anyway.
794
795 * src/truetype/ttgload.c (tt_loader_init): Load execution context
796 only if glyph is hinted.
797 Updated.
798 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
799 and `cvs_ready'.
800 Add `tt_size_ready_bytecode' declaration.
801 * src/truetype/ttobjs.c (tt_size_done_bytecode,
802 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
803 (tt_size_init): Move most code into `tt_size_init_bytecode'.
804 (tt_size_done): Move most code into `tt_size_done_bytecode'.
805 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000806
David Turner91a34022007-01-05 14:47:08 +0000807
Werner Lembergf6294392007-01-06 07:47:45 +0000808 Don't extract the metrics table from the SFNT font file. Instead,
809 reparse it on each glyph load. The runtime difference is not
810 noticeable, and it can save a lot of heap memory when memory-mapped
811 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000812
Werner Lembergf6294392007-01-06 07:47:45 +0000813 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
814 `horz_metrics_offset' and `vert_metrics_ofset'.
815 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
816 Updated.
817
818
819 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
820
821
822 Do not load the CFF index offsets into memory, since this wastes a
823 *lot* of heap memory with large Asian CFF fonts. There is no
824 significant performance loss.
825
826 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
827 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
828 `data_size'.
829 (CFF_CharsetRec): Add field `num_glyphs'.
830
831 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
832 cff_charset_cid_to_gindex): New functions.
833 (cff_new_index): Renamed to...
834 (cff_index_init): This. Update all callers.
835 Updated -- some code has been moved to `cff_index_load_offsets'.
836 (cff_done_index): Renamed to...
837 (cff_index_done): This. Update all callers.
838 (cff_index_get_pointers, cff_index_access_element): Updated to use
839 stream offsets.
840 (cff_charset_compute_cids): Set `num_glyphs' field.
841 (cff_encoding_load): Updated.
842
843 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000844
8452007-01-04 David Turner <david@freetype.org>
846
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000847 * docs/INSTALL.UNIX: Simplify some parts, add reference to
848 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000849
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000850 * README.CVS: Add common problem description and solution
851 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000852
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000853 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000854
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000855 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000856
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000857 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000858
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000859 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
860 (TWorker): This.
861 Remove `count_table' and `memory'.
862 Make `grays' a pointer.
863 (TRaster): New structure.
864 (count_table): New static array.
865 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
866 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
867 ft_black_set_mode, ft_black_render): Updated.
868 (ft_black_init): Don't initialize `count_table'.
869 (ft_black_reset): Use the render pool. This saves about 6KB of
870 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000871
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000872 * src/smooth/ftgrays.c (TRaster): Replaced with...
873 (TWorker): This.
874 Remove `memory'.
875 (TRaster): New structure.
876
877 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
878 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
879 gray_render_span, gray_raster_render): Updated.
880 (gray_raster_reset): Use the render pool. This saves about 6KB of
881 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000882
David Turner8a6c44e2007-01-04 17:03:11 +0000883 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
884 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000885 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
886 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
887 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000888
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000889 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
890 Remove a typo that results in no hinting and a memory leak with some
891 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000892
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000893 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000894 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000895 CFF_Faces in it. We need to close all faces before destroying the
896 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000897
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00008982007-01-02 Werner Lemberg <wl@gnu.org>
899
900 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
901 Remove compiler warning.
902
David Turner9207e002007-01-02 16:58:13 +00009032007-01-02 David Turner <david@freetype.org>
904
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000905 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000906
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009072006-12-31 Masatake YAMATO <jet@gyve.org>
908
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000909 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
910 function.
911 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000912 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000913 `gxv_kern_subtable_fmt0_pairs_validate'.
914
David Turner115b4422006-12-22 11:37:05 +00009152006-12-22 David Turner <david@freetype.org>
916
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000917 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
918 warnings.
David Turner115b4422006-12-22 11:37:05 +0000919
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000920 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
921 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000922
Werner Lemberg4755bf72006-12-16 08:58:44 +00009232006-12-16 Anders Kaseorg <anders@kaseorg.com>
924
925 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
926 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
927
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00009282006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
929
Werner Lemberg9b774e22007-01-16 06:11:27 +0000930 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000931 sync with the modification by Jens Claudius on 2006-08-22; cf.
932 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 +0000933
9342006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
935
936 * src/base/ftmac.c: Specialized for Mac OS X only.
937 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
938 * builds/unix/configure.raw: Ditto. When explicit switches for
939 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
940 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
941
9422006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
943
944 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
945 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
946 instead of src/base/ftmac.c
947 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
948 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
949 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
950 that cannot be built at present.
951
9522006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
953
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000954 * src/base/ftobjs.c: Improvement of resource fork handler for
955 POSIX, cf.
956 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000957 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
958 format or .dfont, to simulate the face index number counted by ftmac.c.
959 (IsMacResource): Return the number of scalable faces correctly.
960
Werner Lembergec5b4502006-12-10 07:51:38 +00009612006-12-10 Werner Lemberg <wl@gnu.org>
962
963 * builds/toplevel.mk (version): Protect against `distclean' target.
964
Werner Lembergb26b3142006-12-09 20:01:43 +00009652006-12-09 Werner Lemberg <wl@gnu.org>
966
967 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
968 or `type'.
969
970 * builds/freetype.mk (version): Extracted from freetype.h, using
971 GNU make's built-in string functions.
972 (refdoc): Use $(version) instead of static version number.
973
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00009742006-12-08 Werner Lemberg <wl@gnu.org>
975
976 * builds/toplevel.mk (dist): Extract version number from freetype.h.
977
Werner Lemberg15c29502006-12-09 07:29:54 +00009782006-12-08 Vladimir Volovich <vvv@vsu.ru>
979
980 * src/tools/apinames (State): Remove final comma in structure -- xlc
981 v5 under AIX 4.3 doesn't like this.
982
David Turnerdbf3b432006-12-07 21:18:09 +00009832006-12-07 David Turner <david@freetype.org>
984
Werner Lemberg256a3512006-12-08 06:49:33 +0000985 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
986 to the spacing of auto-fitted glyphs. This only impacts rare
987 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000988
Werner Lemberg11171312006-12-03 09:43:40 +00009892006-12-03 Werner Lemberg <wl@gnu.org>
990
991 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
992
Werner Lemberg960ba592006-12-01 08:20:47 +00009932006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000994
Werner Lemberg960ba592006-12-01 08:20:47 +0000995 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
996 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
997 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000998
David Turner80658e52006-11-28 08:09:20 +0000999
Werner Lemberg960ba592006-12-01 08:20:47 +00001000 * include/freetype/ftxf86.h: Fix and extend comment so that it
1001 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001002
Werner Lemberg960ba592006-12-01 08:20:47 +00001003 * include/freetype/ftchapters.h: Add `font_format' section.
1004
1005
1006 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1007 to TOC in index page.
1008
10092006-11-28 David Turner <david@freetype.org>
1010
1011 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1012 trying to render into a zero-width/height bitmap, not an error code.
1013
1014 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1015
1016 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1017 ones instead.
1018
1019 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1020 variable.
David Turner80658e52006-11-28 08:09:20 +00001021
Werner Lemberg8636c292006-11-26 22:28:13 +000010222006-11-26 Pierre Hanser <hanser@club-internet.fr>
1023
1024 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1025
Werner Lemberg960ba592006-12-01 08:20:47 +000010262006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001027
Werner Lemberg960ba592006-12-01 08:20:47 +00001028 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1029 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1030 Add stubs to link the `ftgrid' test program when debugging is
1031 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001032
Werner Lemberg960ba592006-12-01 08:20:47 +000010332006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001034
1035 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001036 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1037
1038 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1039 Emit more sensible information.
1040
1041 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1042
1043 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1044 rounding of blue values.
1045 (af_latin_hints_compute_segments): Hint segment heights.
1046 (af_latin_hints_link_segments): Reduce `len_score' value.
1047 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1048 value and use `height' member for comparisons.
1049 (af_latin_hint_edges): Extend logging message.
1050 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001051
Werner Lemberg91959bf2006-11-22 10:36:55 +000010522006-11-22 Werner Lemberg <wl@gnu.org>
1053
1054 Fix Savannah bug #15553.
1055
1056 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1057 program after a change from mono to grayscaling (and vice versa).
1058 Use correct constant for comparison to get `exec->grayscale'.
1059
Werner Lemberg913a3652006-11-19 09:19:17 +000010602006-11-18 Werner Lemberg <wl@gnu.org>
1061
1062 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001063 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001064 This patch fixes Savannah bug #18301.
1065
1066 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1067 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1068 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1069 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1070 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1071 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1072 (FNT_Load_Glyph): Check validity of `glyph_index'.
1073
David Turner7bab6ae2006-11-13 11:25:06 +000010742006-11-13 David Turner <david@freetype.org>
1075
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001076 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1077 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001078
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001079 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1080 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1081 when building the library to change the default LCD filter to be
1082 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001083
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001084 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001085
David Turner8765c712006-11-10 16:49:42 +000010862006-11-10 David Turner <david@freetype.org>
1087
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001088 * src/smooth/ftsmooth.c: API change for the LCD
1089 filter. The FT_LcdFilter value is an enumeration describing which
1090 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1091 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1092 algorithm which produces strong color fringes for everything
1093 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001094
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001095 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1096 second parameter to an enum type.
1097
1098 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1099 (_ft_lcd_filter): Rename to...
1100 (_ft_lcd_filter_fir): This.
1101 Update parameters.
1102 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1103 (FT_Library_Set_LcdFilter): Update parameters.
1104 Handle new filter modes.
1105
1106 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1107 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1108 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1109 callback and update other fields.
1110
1111 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1112 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1113 Other minor improvements.
1114
1115 * src/autofit/aflatin.c: Various tiny improvements that drastically
1116 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1117 (af_latin_hints_compute_edges): Fix typo.
1118 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001119
David Turner4e9cc3c2006-11-09 16:31:52 +000011202006-11-09 David Turner <david@freetype.org>
1121
Werner Lemberg49c77a82006-11-09 21:51:57 +00001122 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1123 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001124
Werner Lemberg5e430892006-11-07 09:35:03 +000011252006-11-07 Zhe Su <james.su@gmail.com>
1126
1127 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1128 also.
1129
Werner Lemberg111b5ae2006-11-03 09:40:12 +000011302006-11-03 Werner Lemberg <wl@gnu.org>
1131
1132 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1133
David Turner40604742006-11-02 16:37:35 +000011342006-11-02 David Turner <david@freetype.org>
1135
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001136 Add a few tweaks to better handle serif fonts.
1137 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001138
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001139 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1140 segments that are less than 1.5 pixels high. This gets rid of
1141 *many* corner cases with serifs.
1142 (af_latin_align_linked_edge): Add logging message.
1143 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1144 Add logging messages.
1145 Handle AF_EDGE_FLAG flag specially.
1146
1147 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1148 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1149
1150 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1151 Update external declarations.
1152 (af_corner_orientation, af_corner_is_flat): Replaced by...
1153
1154 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1155 ft_corner_is_flat): These declarations.
1156
1157 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1158 Comment out. Replaced by...
1159
1160 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1161 These functions. Update all callers.
1162 (FT_Add64) [!FT_LONG64]: Simplify.
1163
1164 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1165 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1166 production of garbage by missing lots of segments.
1167
1168 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1169
1170 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1171 [AF_DEBUG]: Set _af_debug_hints.
1172
1173
1174 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1175 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1176 and ft_corner_orientation.
1177
1178
1179 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001180
Werner Lemberge88c5262006-10-24 05:46:26 +000011812006-10-24 Werner Lemberg <wl@gnu.org>
1182
1183 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1184
1185 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1186 as argument.
1187
David Turnera1861392006-10-23 16:00:59 +000011882006-10-23 Zhe Su <zsu@novell.com>
1189
Werner Lemberg715e96e2006-10-24 05:28:45 +00001190 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1191 better deal with broken Asian fonts with strange glyphs, having
1192 self-intersections and other peculiarities. The used algorithm is
1193 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001194
David Turnere140f142006-10-23 08:56:57 +000011952006-10-23 David Turner <david@freetype.org>
1196
Werner Lemberg715e96e2006-10-24 05:28:45 +00001197 Speed up the CFF font loader. With some large CFF fonts,
1198 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001199
Werner Lemberg715e96e2006-10-24 05:28:45 +00001200 * src/cff/cffload.c (cff_get_offset): Removed.
1201 (cff_new_index): Inline functionality of `cff_get_offset'.
1202 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1203 (cff_charset_done): Call `cff_charset_free_cids'.
1204 (cff_charset_load): Call `cff_charset_compute_cids'.
1205 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1206
1207 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1208 with FT_NEXT_XXX.
1209
1210
1211 Speed up the Postscript hinter, with more than 100% speed increase
1212 on my machine.
1213
1214 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1215 psh_corner_orientation): New functions.
1216 (psh_glyph_compute_inflections): Merge loops for efficiency.
1217 Use `psh_corner_orientation'.
1218 (psh_glyph_init): Use `psh_corner_is_flat'.
1219 (psh_hint_table_find_strong_point): Renamed to...
1220 (psh_hint_table_find_strong_points): This.
1221 Rewrite, adding argument to handle all points at once.
1222 Update all callers.
1223 (PSH_MAX_STRONG_INTERNAL): New macro.
1224 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001225
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000012262006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1227
1228 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001229 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001230
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000012312006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1232
1233 * docs/INSTALL.CROSS: New document file for cross-building.
1234
1235 * builds/unix/configure.raw: Preliminary cross-building support.
1236 Find native C compiler and pass it by CC_BUILD, and
1237 find suffix for native executable and pass it by EXEEXT_BUILD.
1238 Also suffix for target executable is passed by EXEEXT.
1239
Werner Lembergb9e6d692006-10-15 08:58:40 +00001240 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1241 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001242 CC_BUILD and EXEEXT_BUILD.
1243
Werner Lembergb9e6d692006-10-15 08:58:40 +00001244 * builds/exports.mk (APINAMES_EXE): Change the extension for
1245 apinames from the suffix for target (E) to that for building host
1246 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001247
Werner Lemberg82a07e92006-10-12 06:20:44 +000012482006-10-12 Werner Lemberg <wl@gnu.org>
1249
1250 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1251 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1252 which reference those files.
1253
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000012542006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1255
Werner Lembergb9e6d692006-10-15 08:58:40 +00001256 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1257 embedded in freetype2.pc and freetype-config. Use it to record
1258 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001259
1260 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1261
1262 * builds/unix/freetype-config.in: Ditto.
1263
Werner Lemberg28e17d92006-10-11 17:27:47 +000012642006-10-11 Werner Lemberg <wl@gnu.org>
1265
1266 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1267 development.
1268
Jens Claudius336d2292006-10-03 08:53:37 +000012692006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1270
1271 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1272 argument to ft_setjmp.
1273
1274 * include/freetype/internal/ftvalid.h: Add comment that
1275 ft_validator_run must not be used.
1276
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012772006-10-01 Werner Lemberg <wl@gnu.org>
1278
1279 * src/base/ftbase.c: Undo change from 2006-09-30.
1280
1281 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1282
12832006-09-30 David Turner <david@freetype.org>
1284
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001285 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1286 s/unpatented_hinting/ignore_unpatented_hinter/.
1287 Update all callers.
1288
1289 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1290 auto-hinting shall be used or not.
1291
1292 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001293
Werner Lemberg2863cfa2006-10-01 17:04:00 +000012942006-09-30 Werner Lemberg <wl@gnu.org>
1295
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001296 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1297 in use).
1298
1299 * src/base/ftbase.c: Include `ftlcdfil.c'.
1300
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013012006-09-29 Werner Lemberg <wl@gnu.org>
1302
1303 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1304 overlapping segments. Bug reported by Stefan Koch.
1305
David Turnerad830712006-09-27 16:20:59 +000013062006-09-28 David Turner <david@freetype.org>
1307
Werner Lemberg2c002e12006-09-29 21:31:53 +00001308 Fix a bug in the automatic unpatented hinting support which prevents
1309 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001310
Werner Lemberg2c002e12006-09-29 21:31:53 +00001311 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1312 s/force_autohint/unpatented_hinting/. Update all callers.
1313
1314 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1315
1316 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001317
David Turner8a317cf2006-09-27 07:52:48 +000013182006-09-27 David Turner <david@freetype.org>
1319
Werner Lemberg2c002e12006-09-29 21:31:53 +00001320 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001321
David Turner8a317cf2006-09-27 07:52:48 +00001322
David Turnere140f142006-10-23 08:56:57 +00001323 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001324 In a default build, the function `FT_Library_SetLcdFilter' returns
1325 `FT_Err_Unimplemented_Feature'; you need to #define
1326 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1327 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001328
Werner Lemberg2c002e12006-09-29 21:31:53 +00001329 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001330
Werner Lemberg2c002e12006-09-29 21:31:53 +00001331 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1332 typedef.
1333 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1334 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001335
Werner Lemberg2c002e12006-09-29 21:31:53 +00001336 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1337 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001338
Werner Lemberg2c002e12006-09-29 21:31:53 +00001339 Handle subpixel rendering.
1340 Simplify function.
1341 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1342 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1343
1344 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1345 pointing to <freetype/ftlcdfil.h>.
1346
1347 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1348 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1349
1350 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001351
Werner Lemberge20df4a2006-09-27 06:29:21 +000013522006-09-26 David Bustin
1353
1354 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1355 correctly. Reported as Savannah bug #17843.
1356
David Turner6f8c6222006-09-26 15:42:44 +000013572006-09-26 David Turner <david@freetype.org>
1358
Werner Lemberg110246c2006-09-26 21:55:44 +00001359 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1360 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1361 horizontal and vertical hinting for the purpose of debugging the
1362 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001363
Werner Lemberg110246c2006-09-26 21:55:44 +00001364 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1365 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001366
Werner Lemberg110246c2006-09-26 21:55:44 +00001367 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1368
1369 * include/freetype/config/ftoption.h, devel/ftoption.h
1370 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1371 we want to compile LCD-optimized rendering code (à la ClearType) or
1372 not. The macro *must* be disabled in default builds of the library
1373 for patent reasons.
1374
1375 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1376 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1377 isn't defined at compile time. This only changes the content of the
1378 rendered glyph to match the one of normal gray-level rendering,
1379 hence clients should not need to be modified.
1380
1381 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001382
Werner Lemberg745ff2c2006-09-19 05:48:02 +000013832006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1384
1385 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1386 LWFN fails and both are available.
1387
David Turnerf3050052006-09-11 12:00:32 +000013882006-09-11 David Turner <david@freetype.org>
1389
Werner Lembergf9644552006-09-12 13:48:10 +00001390 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1391 report their English names through an Apple Roman
1392 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001393
Werner Lembergf9644552006-09-12 13:48:10 +00001394 If the font uses another name entry with language_id == English, it
1395 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001396
Werner Lembergf9644552006-09-12 13:48:10 +00001397 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1398 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001399
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014002006-09-05 Werner Lemberg <wl@gnu.org>
1401
1402 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001403 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001404 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1405 `HAN NOM B.ttf').
1406
1407 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1408
David Turner772e55d2006-09-05 09:45:15 +000014092006-09-05 David Turner <david@freetype.org>
1410
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001411 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001412
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001413 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1414 (TRaster): Remove `count_ex' and `count_ey'.
1415 (gray_find_cell): Remove 2nd and 3rd argument.
1416 (gray_alloc_cell): Merged with `gray_find_cell'.
1417 (gray_record_cell): Simplify.
1418 (gray_set_cell): Rewrite.
1419 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1420 (gray_render_span): Don't use FT_MEM_SET for small values.
1421 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1422 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1423 bitmap scanline.
1424 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001425
David Turneraa557a92006-09-04 16:42:44 +000014262006-09-04 David Turner <david@freetype.org>
1427
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001428 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1429 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001430
Werner Lemberg2d8629b2006-09-03 06:18:45 +000014312006-09-03 Werner Lemberg <wl@gnu.org>
1432
1433 * devel/ftoption.h: Synchronize with
1434 include/freetype/config/ftoption.h.
1435
1436 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1437 variable declaration.
1438 (gray_convert_glyph): Fix compiler warnings.
1439
David Turner6d79f212006-09-01 14:09:35 +000014402006-09-01 David Turner <david@freetype.org>
1441
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001442 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1443 to recognize a few fonts that require the automatic unpatented
1444 loader.
David Turnerbd502952006-09-01 19:05:24 +00001445
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001446 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1447 rasterizer. The speed improvement is between 15% and 25%, depending
1448 on the font data.
1449
1450 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1451 (TCell): Redefine.
1452 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1453 (gray_init_cells): Updated.
1454 (gray_find_cell, gray_alloc_cell): New functions.
1455 (gray_record_cell): Rewritten to use `gray_find_cell' and
1456 `gray_alloc_cell'.
1457 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1458 QSORT_THRESHOLD):
1459 Removed.
1460 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1461 gray_dump_cells): Removed.
1462 (gray_sweep): Rewritten.
1463 (gray_convert_glyph): Rewrite code which used one of the sorting
1464 functions.
1465 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001466
Werner Lembergd898aed2006-08-29 09:50:34 +000014672006-08-29 Dr. Werner Fink <werner@suse.de>
1468
1469 * configure: Make it possible to handle configure options which
1470 have strings containing spaces.
1471
14722006-08-27 David Turner <david@freetype.org>
1473
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001474 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1475 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1476 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1477
1478 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1479 src/truetype/truetype.c, src/truetype/ttdriver.c,
1480 src/truetype/ttgload.c, src/truetype/ttgload.h,
1481 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1482 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1483 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1484
1485 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1486 member `force_autohint'.
1487
1488 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1489
1490 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1491 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001492
Jens Claudiusa787f452006-08-27 11:26:18 +000014932006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1494
1495 Fix miscellaneous compiler warnings.
1496
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001497 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1498 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001499
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001500 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1501 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1502 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001503
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001504 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1505 volatileness of argument to ft_longjmp. Spotted by Werner
1506 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001507
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001508 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1509 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001510
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001511 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1512 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001513
Werner Lembergc4c35b72006-08-27 08:03:46 +000015142006-08-27 Werner Lemberg <wl@gnu.org>
1515
1516 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1517 Reported by Jens.
1518
Jens Claudius088e44e2006-08-22 14:24:30 +000015192006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001520
Jens Claudius088e44e2006-08-22 14:24:30 +00001521 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001522 about addresses of volatile objects passed as function arguments as
1523 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001524
Werner Lembergc4c35b72006-08-27 08:03:46 +00001525 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1526 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001527
1528 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1529 argument `table' a pointer to a volatile object.
1530
1531 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1532 argument `table' a pointer to a volatile object.
1533
Jens Claudius2652bd52006-08-18 17:20:37 +000015342006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1535
1536 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1537 variable `_sfnt' as volatile since it must keep its value across
1538 a call to ft_setjmp.
1539 (gxv_validate): Same for local variables `memory' and `valid'.
1540 (classic_kern_validate): Same for local variables `memory',
1541 `ckern', and `valid'.
1542
1543 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1544 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1545 `jstf', and 'valid'.
1546
1547 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1548 local variable `cmap'.
1549
David Turner9fbfc6a2006-08-16 09:11:31 +000015502006-08-16 David Turner <david@freetype.org>
1551
Werner Lemberg12342992006-08-19 11:18:09 +00001552 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1553 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001554
Werner Lemberg12342992006-08-19 11:18:09 +00001555 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1556 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001557
David Turner33f5f242006-08-16 16:50:55 +00001558
Werner Lemberg12342992006-08-19 11:18:09 +00001559 Improvements to native TrueType hinting. This is a first try,
1560 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1561
1562 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1563 `extra_points2'.
1564
1565 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1566 `orus'.
1567
1568 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1569 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1570 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1571 handle `extra_points2'.
1572
1573 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1574 Remove compiler warning.
1575 (cur_to_arg): Remove macro.
1576 (TT_Hint_Glyph): Updated.
1577 (TT_Process_Simple_Glyph): Handle `orus'.
1578
1579 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1580 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1581 (LOC_Ins_IUP): Renamed to...
1582 (IUP_WorkerRec): This.
1583 Add `orus' member.
1584 (Shift): Renamed to...
1585 (_iup_worker_shift): This.
1586 Updated.
1587 (Interp): Renamed to...
1588 (_iup_worker_interpolate): This.
1589 Updated to handle `orus'.
1590 (Ins_IUP): Updated.
1591
1592 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1593 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001594
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000015952006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1596
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001597 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001598 build ftvalid in ft2demos. This has been inadvertedly changed
1599 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001600
16012006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1602
Werner Lemberg12342992006-08-19 11:18:09 +00001603 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1604 Jens:
1605 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001606
Werner Lemberg12342992006-08-19 11:18:09 +00001607 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1608 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001609
1610 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1611
Jens Claudius9950adc2006-08-13 12:14:36 +000016122006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1613
Werner Lemberg12342992006-08-19 11:18:09 +00001614 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1615 T1_TOKEN_TYPE_KEY.
1616 (T1_FieldRec): Add `dict'.
1617 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1618 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1619 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001620
Werner Lemberg12342992006-08-19 11:18:09 +00001621 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1622 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001623
1624 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1625
1626 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001627 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1628 not T1_TOKEN_TYPE_ANY.
1629 (ps_parser_load_field): Make sure a token that should be a string or
1630 name is really a string or name.
1631 Avoid memory leak if a keyword has been already encountered and its
1632 value is overwritten.
1633 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1634 T1_FIELD_XXX.
1635 (parse_dict): Ignore keywords that occur in the wrong dictionary
1636 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001637
Werner Lemberg12342992006-08-19 11:18:09 +00001638 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1639 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001640
Werner Lemberg12342992006-08-19 11:18:09 +00001641 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1642 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001643
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000016442006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1645
1646 Move creation of field `buildchar' of T1_DecoderRec out of
1647 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1648 of it.
1649
1650 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1651 and `T1_Compute_Max_Advance'.
1652
1653 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1654 Remove field `face', add `len_buildchar'.
1655
1656 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1657 field `buildchar'.
1658
1659 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1660 finisher for T1_Decoder.
1661 (cid_slot_load_glyph): Do not ignore failure when initializing the
1662 T1_Decoder.
1663
1664 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1665 Updated.
1666 (t1_decoder_init): Remove initialization of fields `buildchar' and
1667 `len_buildchar'.
1668 (t1_decoder_done): Remove deallocation of field `buildchar'.
1669
1670 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1671 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1672 T1_Decoder.
1673 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1674 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1675 case of error.
1676
1677 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1678 `buildchar' of T1_FaceRec.
1679
1680 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1681 `buildchar' of T1_FaceRec.
1682
Werner Lemberg1a380e02006-07-14 18:28:08 +000016832006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1684
1685 * freetype2/include/freetype/internal/psaux.h: New macros
1686 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1687 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1688 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1689 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1690 (T1_DecoderRec): New fields `buildchar' and `face'.
1691 (IS_PS_TOKEN): New macro.
1692
1693 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1694 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1695
1696 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1697 `default_design_vector' and `num_default_design_vector'.
1698
1699 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1700 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1701 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1702
1703 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1704 `token' argument to be NULL if we want only to count the number of
1705 tokens.
1706 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1707 want to skip the array.
1708 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1709 want to skip the array.
1710
1711 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1712 support for (partially commented out) othersubrs 19-25, 27, and 28.
1713 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1714 (t1_decoder_done): Release new field `buildchar'.
1715
1716 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1717 functions.
1718 (t1_keywords): Register them.
1719 (t1_allocate_blend): Updated.
1720 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1721 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1722 (parse_dict): Remove `keyword_flags' argument.
1723 Use new macro IS_PS_TOKEN.
1724 Changed function so that later PostScript definitions override
1725 earlier ones.
1726 (t1_init_loader): Initialize new field `keywords_encountered'.
1727 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1728 `len_buildchar'.
1729 Remove `keywords_flags'.
1730
1731 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1732 `keywords_encountered'.
1733 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1734
1735 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1736 New entries for parsing /NDV, /CDV, and /DesignVector.
1737
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000017382006-07-07 Werner Lemberg <wl@gnu.org>
1739
1740 Add many checks to protect against malformed PCF files.
1741
1742 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1743 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1744
1745 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1746 data and check that tables don't overlap (using a simple
1747 bubblesort).
1748 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1749 New macros which give the size of data structures in the data
1750 stream.
1751 (pcf_get_properties): Use rough estimates to get array size limits.
1752 Assign `face->nprops' and `face->properties' earlier so that a call
1753 to PCF_Face_Done can do the clean-up in case of error.
1754 Protect against invalid string offsets.
1755 (pcf_get_metrics): Clean up code.
1756 Adjust tracing message levels.
1757 Use rough estimate to get array size limit.
1758 (pcf_get_bitmaps): Clean up code.
1759 Adjust tracing message levels.
1760 Use rough estimates to get offset limits.
1761 (pcf_get_encodings): Adjust tracing message level.
1762 (pcf_get_accel): Clean up code.
1763
Werner Lemberg8eb05252006-06-27 06:20:01 +000017642006-06-26 Werner Lemberg <wl@gnu.org>
1765
1766 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1767 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1768
Werner Lemberg24703f82006-06-26 19:12:51 +000017692006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1770
1771 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1772 (t1_decoder_parse_charstrings): Operator with
1773 opcode 15 pops its two arguments.
1774 Handle the case where the pops of an othersubr may be part of a
1775 subroutine.
1776 Handle unknown othersubrs gracefully: count their operands and let
1777 the following pop operators push the operands as the results onto
1778 the Type1 stack.
1779 Improve handling of setcurrentpoint opcode.
1780
Werner Lembergc011f4c2006-06-26 09:40:00 +000017812006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1782
1783 The Type 1 parser now skips over top-level procedures as required
1784 for a `Simplified Parser'. This makes the parser more robust as it
1785 doesn't poke around in PostScript code. Additionally, it makes the
1786 FontDirectory hackery in src/type1/t1load.c unnecessary.
1787
1788 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1789 (skip_literal_string): Add FT_Error as return value.
1790 Handle escapes better.
1791 (skip_string): Add FT_Error as return value.
1792 Don't set `parser->error' but return error code directly.
1793 (skip_procedure): New function.
1794 (ps_parser_skip_PS_token): Handle procedures.
1795 Update code.
1796 (ps_parser_to_token): Update code.
1797 (ps_parser_load_field_table): Handle bbox entries also.
1798
1799 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1800 Add commented-out code for synthetic fonts.
1801
Werner Lemberga2da05c2006-06-25 06:27:27 +000018022006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1803
1804 Fix two hinting bugs as reported in
1805 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1806
1807 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1808 `first_point' member.
1809
1810 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1811 `first_point'.
1812 (TT_Process_Composite_Glyph): Always untouch points.
1813
1814 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1815 `first_point' and `last_point' in case of composite glyphs.
1816 (Ins_IUP): Fix computation of `end_point'.
1817
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018182006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1819
Werner Lembergef3d2c22006-06-25 06:07:14 +00001820 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1821 Mac. The original patch was written by David Sachitano and Lawrence
1822 Coopet, and modified by Sean McBride for MPW compatibility. Only
1823 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001824
Werner Lembergef3d2c22006-06-25 06:07:14 +00001825 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1826 Mac OS X platforms.
1827 (OS_INLINE): Undefine before definition.
1828 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1829 FontAssociation table in FOND resource.
1830 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1831 and fontSize at each entry of FontAssociation table in FOND
1832 resource.
1833 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1834 ffStylOff of FamilyRecord header of FOND resource, the header,
1835 fontSize, fontID at each entry of FontAssociation table, and
1836 StyleMapping table.
1837 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001838
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000018392006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1840
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001841 Public API of TrueTypeGX, OpenType, and classic kern table validator
1842 should return `FT_Err_Unimplemented_Feature' if validation service
1843 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001844 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001845 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1846
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001847 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1848 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1849 unavailable.
1850 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1851 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001852
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001853 * src/base/ftotval.c (FT_OpenType_Validate): Return
1854 FT_Err_Unimplemented_Feature if OpenType validation service is
1855 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001856
Werner Lembergb10e45a2006-06-08 07:32:56 +000018572006-06-08 Werner Lemberg <wl@gnu.org>
1858
1859 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1860 errors.
1861
David Turner5f1f7502006-06-07 05:11:50 +000018622006-06-07 David Turner <david@freetype.org>
1863
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001864 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1865 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1866 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001867
David Turner457b4a82006-06-06 08:14:14 +000018682006-06-06 David Turner <david@freetype.org>
1869
Werner Lemberg4836f952006-06-06 12:54:08 +00001870 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001871
Werner Lemberg4836f952006-06-06 12:54:08 +00001872 We change `ps_unicodes_init' so that it also takes a
1873 `free_glyph_name' callback to release the glyph names returned by
1874 `get_glyph_name'
1875
1876 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1877 Renamed to ...
1878 (PS_GetGlyphNameFunc): This.
1879 (PS_FreeGlyphNameFunc): New typedef.
1880 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1881
1882 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1883 argument.
1884 (cff_sid_free_glyph_name): New function.
1885 (cff_cmap_unicode_init): Updated.
1886
1887 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1888
1889 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1890 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001891
1892
David Turner09717352006-06-04 14:33:08 +000018932006-06-04 David Turner <david@freetype.org>
1894
Werner Lembergd724f202006-06-04 15:17:41 +00001895 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1896 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001897 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001898
Werner Lembergd724f202006-06-04 15:17:41 +00001899 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1900 of `face->num_glyphs' which missed the last glyph, due to
1901 the offset-by-1 computation, since the PFR format doesn't
1902 guarantee that glyph index 0 corresponds to the `missing
1903 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001904
Werner Lemberg33779662006-05-26 06:30:05 +000019052006-05-25 Werner Lemberg <wl@gnu.org>
1906
1907 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1908 `-no-undefined'. Reported by Christian Biesinger.
1909
Werner Lemberg24773d62006-05-20 08:53:13 +000019102006-05-19 Brian Weed <bw@imaginengine.com>
1911
1912 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1913 have debug information, and debug libraries use `C7 compatible'
1914 debug info.
1915
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019162006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1917
Werner Lemberga6523a62006-05-20 08:47:01 +00001918 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001919 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001920
Werner Lemberga6523a62006-05-20 08:47:01 +00001921 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1922 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001923
1924 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001925 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001926
19272006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1928
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001929 * build/unix/configure.raw: Add a fallback to disable Carbon
1930 dependency, if configured with no options on Mac OS X.
1931
19322006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1933
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001934 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001935 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001936 the second part of Savannah bug #16590.
1937
Werner Lemberg545c4e52006-05-17 22:55:04 +000019382006-05-18 Werner Lemberg <wl@gnu.org>
1939
1940 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1941 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1942
David Turnerdc3ff312006-05-17 12:59:35 +000019432006-05-17 David Turner <david@freetype.org>
1944
Werner Lemberg545c4e52006-05-17 22:55:04 +00001945 This is a major patch used to drastically improve the performance of
1946 loading glyphs. This both speeds up loading the glyph vectors
1947 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001948
Werner Lemberg545c4e52006-05-17 22:55:04 +00001949 We now use inline assembler code with GCC to implement `FT_MulFix',
1950 which is probably the most important function related to the
1951 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001952
Werner Lemberg545c4e52006-05-17 22:55:04 +00001953 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001954
1955
Werner Lemberg545c4e52006-05-17 22:55:04 +00001956 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1957 `cursor' and `limit'.
1958
1959 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1960 New functions.
1961 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1962 [TEST]: Remove.
1963
1964 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1965 code.
1966
1967 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1968 `FT_ZERO'
1969 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1970 (af_glyph_hints_reload: Rewrite recognition of weak points.
1971
1972 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1973 constant values out of the loops.
1974
1975 * src/autofit/aftypes.h: Updated.
1976
1977 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1978
1979 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1980 product to get orientation.
1981
1982 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1983 (FT_Stream_OpenGzip): Use it to handle small files directly in
1984 memory.
1985
1986 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1987 Improve performance.
1988
1989 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1990 `limit'.
1991
1992 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1993 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1994 exceedingly large values of number of contours. Speed up by
1995 reducing the number of loops.
1996
1997 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1998
1999
2000 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2001 used to detect rogue clients from 4 to 16. This is to prevent some
2002 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2003 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002004
Werner Lembergde2d90a2006-05-17 08:54:30 +000020052007-05-17 Werner Lemberg <wl@gnu.org>
2006
2007 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002008 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002009
20102006-05-16 Werner Lemberg <wl@gnu.org>
2011
2012 * docs/PROBLEMS: Updated icl issues.
2013
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002014----------------------------------------------------------------------------
2015
Werner Lemberg42b63b22007-01-21 21:01:33 +00002016Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002017David Turner, Robert Wilhelm, and Werner Lemberg.
2018
2019This file is part of the FreeType project, and may only be used, modified,
2020and distributed under the terms of the FreeType project license,
2021LICENSE.TXT. By continuing to use, modify, or distribute this file you
2022indicate that you have read the license and understand and accept it
2023fully.
2024
2025
2026Local Variables:
2027version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002028coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002029End: