blob: c06d821e57ba4dded41a446760991a9178636a1b [file] [log] [blame]
Werner Lembergdf49e692007-05-04 06:30:05 +000012007-05-04 Vincent RICHOMME <richom.v@free.fr>
2
3 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
4 PC targets.
5
6 * docs/CHANGES: Document them.
7
82007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +00009
10 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
11 mmap (which might happen on some RTOS). From Savannah patch #5909.
12
Werner Lemberg106eaf12007-05-03 07:07:47 +0000132007-05-03 Werner Lemberg <wl@gnu.org>
14
15 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
16 * include/freetype/freetype.h (FT_Set_Char_Size): Update
17 documentation.
18
Werner Lemberg1b5267d2007-04-28 21:06:15 +0000192007-04-28 Victor Stinner <victor.stinner@inl.fr>
20
21 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
22 `cmap'.
23
Werner Lembergcc712a22007-04-27 17:16:50 +0000242007-04-27 Werner Lemberg <wl@gnu.org>
25
26 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
27 number of points in contours. Problem reported by Victor Stinner
28 <victor.stinner@haypocalc.com>.
29 (TT_Process_Simple_Glyph): Synchronize variable types.
30
Werner Lemberg45bb18f2007-04-26 06:26:35 +0000312007-04-26 Werner Lemberg <wl@gnu.org>
32
33 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
34 zero in case of error. This fixes Savannah bug #19689.
35
Werner Lembergfcc1f472007-04-10 11:51:50 +0000362007-04-10 Martin Horak <horakm@centrum.cz>
37
38 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
39 Ignore `hhea' table. This fixes Savannah bug #19261.
40
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000412007-04-09 Werner Lemberg <wl@gnu.org>
42
43 * Version 2.3.4 released.
44 =========================
45
46
47 Tag sources with `VER-2-3-4'.
48
49 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
50 version number to 2.3.4.
51
52 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
53 builds/win32/visualc/freetype.dsp,
54 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
55
56 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
57
58 * builds/unix/configure.raw (version_info): Set to 9:15:3.
59
Werner Lembergf4a52a62007-04-09 08:40:11 +0000602007-04-09 Martin Horak <horakm@centrum.cz>
61
62 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
63 memory stream to avoid a crash with the incremental memory
64 interface (Savannah bug #19260).
65
David Turner1dcb4442007-04-06 08:19:04 +0000662007-04-06 David Turner <david@freetype.org>
67
Werner Lembergc81cf612007-04-06 09:28:23 +000068 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
69 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +000070
Werner Lemberg9f83e052007-04-05 02:28:23 +0000712007-04-04 Werner Lemberg <wl@gnu.org>
72
73 * Version 2.3.3 released.
74 =========================
75
76
77 Tag sources with `VER-2-3-3'.
78
79 * docs/CHANGES: Mention CVE-2007-1351.
80
David Turner7338ec22007-04-03 14:30:34 +0000812007-04-03 David Turner <david@freetype.org>
82
83 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +000084 if one of the resolution values is 0, treat it as if it were the
85 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +000086
David Turnere6472c12007-04-02 13:13:54 +0000872007-04-02 David Turner <david@freetype.org>
88
Werner Lemberg94f12272007-04-03 07:19:53 +000089 Add special code to detect `extra-light' fonts and do not snap their
90 stem widths too much to avoid bizarre hinting effects.
91
92 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
93 `extra_light' members.
94
95 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
96 them.
97 (af_latin_metrics_scale_dim): Set `extra_light'.
98 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +000099
David Turner3f539692007-03-28 14:53:40 +00001002007-03-28 David Turner <david@freetype.org>
101
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000102 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000103 padding.
104
Werner Lemberga08b2172007-03-28 07:17:17 +00001052007-03-28 Werner Lemberg <wl@gnu.org>
106
107 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
108 gracefully.
109 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000110 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000111 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
112 number of code points in Unicode.
113
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000114 * builds/win32/visualc/index.html,
115 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000116 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000117 s/232/233/.
118
119 * docs/CHANGES: Mention ftdiff.
120
David Turner3b242d32007-03-26 12:03:04 +00001212007-03-26 David Turner <david@freetype.org>
122
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000123 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
124 corresponding code.
125 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000126
Werner Lemberga08b2172007-03-28 07:17:17 +0000127 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000128 computations in order to ignore single-point contours. These are
129 never rasterized and correspond in certain fonts to mark-attach
130 points that are very far from the glyph's real outline, ruining the
131 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000132
Werner Lemberga08b2172007-03-28 07:17:17 +0000133 * src/autofit/afloader.c (af_loader_load_g): In the case of
134 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
135 Otherwise code that uses them will most certainly ruin the fixed
136 advance property.
David Turner23553d62007-03-26 13:37:17 +0000137
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000138 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
139 documentation and bump version number to 2.3.3.
140
141 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
142
143 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000144
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00001452007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
146
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000147 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
148 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000149 * builds/vms/ftconfig.h: Ditto.
150 * include/freetype/config/ftconfig.h: Ditto.
151
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00001522007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
153
Werner Lemberg14ffe092007-03-22 06:12:43 +0000154 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
155 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000156 proposed by Sean McBride:
157 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
158
1592007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
160
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000161 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
162 setjmp, proposed by Sean McBride:
163 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
164
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00001652007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
166
Werner Lembergc9f6c662007-03-21 13:30:14 +0000167 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
168 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
169 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000170
David Turner74c34eb2007-03-18 07:19:31 +00001712007-03-18 David Turner <david@freetype.org>
172
Werner Lembergc9f6c662007-03-21 13:30:14 +0000173 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
174 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000175
Werner Lembergc9f6c662007-03-21 13:30:14 +0000176 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000177
David Turner89020d92007-03-17 17:48:57 +00001782007-03-17 David Turner <david@freetype.org>
179
Werner Lembergc9f6c662007-03-21 13:30:14 +0000180 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
181 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000182
Werner Lemberg25d592a2007-03-09 07:59:35 +00001832007-03-09 Werner Lemberg <wl@gnu.org>
184
185 * Version 2.3.2 released.
186 =========================
187
188
189 Tag sources with `VER-2-3-2'.
190
191 * builds/win32/visualc/index.html,
192 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000193 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000194 s/231/232/.
195
David Turner3a51afa2007-03-08 10:50:38 +00001962007-03-08 David Turner <david@freetype.org>
197
Werner Lemberg25d592a2007-03-09 07:59:35 +0000198 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000199
Werner Lemberg25d592a2007-03-09 07:59:35 +0000200 * builds/unix/configure.raw (version_info): Set to 9:13:3.
201
202 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
203
204 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000205
Werner Lemberg1e259de2007-03-08 15:39:21 +0000206 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
207 function to work properly, over-writing user-provided buffers in
208 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000209
David Turner121cad52007-03-08 16:43:50 +0000210
Werner Lemberg3d92f082007-03-06 11:59:24 +00002112007-03-05 Werner Lemberg <wl@gnu.org>
212
213 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
214 macro for `strstr'.
215
216 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
217 `trick_names', as suggested by Ivan Nincic.
218
David Turner085bc6e2007-03-05 17:40:03 +00002192007-03-05 David Turner <david@freetype.org>
220
Werner Lembergd112cf02007-03-06 12:06:56 +0000221 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
222 case FT_Init_FreeType fails for some reason. Problem reported by
223 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000224
Werner Lembergd112cf02007-03-06 12:06:56 +0000225 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
226 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
227 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
228 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000229
Werner Lembergd112cf02007-03-06 12:06:56 +0000230 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
231 signed values, not unsigned ones. Problem reported by Johannes
232 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000233
David Turner601aefe2007-02-21 16:47:49 +00002342007-02-21 David Turner <david@freetype.org>
235
Werner Lembergde5e6862007-02-25 21:06:43 +0000236 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
237 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000238
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00002392007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
240
241 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
242 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
243 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
244
Werner Lemberga0915172007-02-16 08:12:50 +00002452007-02-16 Werner Lemberg <wl@gnu.org>
246
247 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
248 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
249
David Turner2c4500e2007-02-14 15:08:47 +00002502007-02-14 David Turner <david@freetype.org>
251
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000252 It seems that the following changes fix most of the known
253 interpreter problems with my fonts, but more testing is needed,
254 though.
255
256 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
257 (TT_MulFix14): Rewrite.
258 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
259 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000260
Werner Lembergc6a14082007-02-12 22:08:15 +00002612007-02-12 Werner Lemberg <wl@gnu.org>
262
263 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
264 warnings.
265
266 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
267 (bdf_interpret_style): Ditto.
268
David Turnerc0f9c4a2007-02-12 14:55:03 +00002692007-02-12 David Turner <david@freetype.org>
270
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000271 Simplify projection and dual-projection code interface.
272
Werner Lemberg406d25f2007-02-12 22:01:18 +0000273 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
274 FT_Vector' as argument type.
275 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
276 Updated.
277 (CUR_fast_project, CUR_fast_dualproj): New macros.
278 (Project, Dual_Project, Project_x, Project_y): Updated.
279 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
280 macros.
281
282
283 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
284 adjustments for the non-light auto-hinted modes. Gets rid of
285 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000286
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000287 * src/autofit/aflatin.c (af_latin_hints_link_segments,
288 af_latin_hints_compute_edges): Slight optimization of the segment
289 linker and better handling of serif segments to get rid of broken
290 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000291
David Turnerc0f9c4a2007-02-12 14:55:03 +0000292
Werner Lemberg442bfb82007-02-12 21:44:10 +0000293 Introduce new string functions and the corresponding macros to get
294 rid of various uses of strcpy and other `evil' functions, as well as
295 to simplify a few things.
296
297 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
298 ft_mem_strcpyn): New declarations.
299 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
300 macros.
301 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
302 functions.
303
304 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
305 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
306 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
307 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
308 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
309 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
310 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
311 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000312
Werner Lemberg406d25f2007-02-12 22:01:18 +0000313 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
314
Werner Lemberg582067d2007-02-11 15:03:05 +00003152007-02-11 Werner Lemberg <wl@gnu.org>
316
317 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
318 non-spacing glyphs.
319
Werner Lemberg8f474532007-02-07 08:31:01 +00003202007-02-07 Tom Parker <palfrey@tevp.net>
321
322 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
323 pointer.
324
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003252007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
326
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000327 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
328 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000329 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000330 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
331 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
332 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
333 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000334
335 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
336 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000337 * builds/mac/ftmac.c: Ditto.
338
3392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
340
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000341 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000342 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000343 #include <ftmac.c>.
344
3452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
346
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000347 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
348 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
349 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
350 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
351 FT_GetFilePath_From_Mac_ATS_Name.
352 * builds/mac/ftmac.c: Ditto.
353
3542007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
355
Werner Lembergdcbb7082007-02-08 08:54:09 +0000356 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000357 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
358 for passing to FT_New_Face_From_FSSpec.
359
3602007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
361
Werner Lembergdcbb7082007-02-08 08:54:09 +0000362 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000363 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000364
365 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
366 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000367 * builds/mac/ftmac.c (OS_INLINE): Ditto.
368
Werner Lemberg313d7772007-02-01 08:10:45 +00003692007-02-01 Werner Lemberg <wl@gnu.org>
370
371 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
372 Explain why applications shouldn't use it. Found by Alexei.
373
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003742007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000375
376 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
377 message.
378
379 * src/gxvalid/gxvmort1.c
380 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
381 message.
382
Werner Lemberg53935932007-01-31 08:53:02 +00003832007-01-31 Werner Lemberg <wl@gnu.org>
384
385
386 * Version 2.3.1 released.
387 =========================
388
389
390 Tag sources with `VER-2-3-1-FINAL'.
391
392 * builds/win32/visualc/freetype.dsp,
393 builds/win32/visualc/freetype.vcproj: s/230/231/.
394 * builds/win32/visualc/index.html: s/221/231/.
395
396 * vms_make.com: Add `ftgasp'.
397
David Turnera7ee6082007-01-30 10:33:53 +00003982007-01-30 David Turner <david@freetype.org>
399
Werner Lemberg53935932007-01-31 08:53:02 +0000400 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000401
Werner Lemberg53935932007-01-31 08:53:02 +0000402 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000403
Werner Lemberg25d592a2007-03-09 07:59:35 +0000404 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000405 s/2.3.0/2.3.1/.
406
407 * builds/unix/configure.raw (version_info): Set to 9:12:3.
408
409
410 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
411 (af_loader_load_g): Disable the warper (i.e., the light hinting
412 improvements) to make a 2.3.1 bugfix release before introducing a
413 new feature. This should give us more time to tune and improve the
414 warper for the next release.
415
416 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000417
David Turnerd91eebd2007-01-26 15:05:41 +00004182007-01-25 David Turner <david@freetype.org>
419
Werner Lembergbf241762007-01-26 16:08:49 +0000420 For light auto-hinting, improve glyph advance widths and resurrect
421 normal/full hinting to its normal quality.
422
423 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
424 and `xmax_delta'.
425 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
426 and `xmax_delta'.
427
428 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
429 preprocessor conditional with if-clause, handling both light and
430 normal mode.
431
432 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
433 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000434
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00004352007-01-25 Werner Lemberg <wl@gnu.org>
436
437 * docs/release: Updated -- Savannah uses a new uploading scheme.
438
David Turnera42567b2007-01-25 12:23:37 +00004392007-01-25 David Turner <david@freetype.org>
440
Werner Lembergd7855662007-01-25 13:53:56 +0000441 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000442
Werner Lembergd7855662007-01-25 13:53:56 +0000443 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
444 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
445 functions.
David Turnera42567b2007-01-25 12:23:37 +0000446
Werner Lembergd7855662007-01-25 13:53:56 +0000447 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000448
Werner Lembergb1be9e82007-01-25 11:50:00 +00004492007-01-25 Werner Lemberg <wl@gnu.org>
450
451 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000452 correctly in a sanity check. Since this function is only used to
453 load local and global functions, any charstring that called the last
454 local/global function would fail otherwise. This fixes Savannah bug
455 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000456
457 * docs/CHANGES: Document it.
458
David Turnerb6de8d12007-01-23 15:51:50 +00004592007-01-23 David Turner <david@freetype.org>
460
Werner Lembergb1be9e82007-01-25 11:50:00 +0000461 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
462 prevented compilation when disabling both the unpatented and the
463 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000464
Werner Lembergb1be9e82007-01-25 11:50:00 +0000465
466 Fix and enable the warper to improve `light' hinting mode. This is
467 not necessarily a final version, but it seems to work well.
468
469 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
470 Disable code.
471 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
472 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
473
474 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
475 (af_warper_compute_line_best): Fix array size of `scores'.
476 (af_warper_compute): Better handling of border cases.
477 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
478 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000479
Werner Lemberg011d1112007-01-21 09:36:00 +00004802007-01-21 Werner Lemberg <wl@gnu.org>
481
Werner Lemberg42b63b22007-01-21 21:01:33 +0000482 * ChangeLog: Split off older entries into...
483 * ChangeLog.22: This new file.
484
4852007-01-21 Werner Lemberg <wl@gnu.org>
486
Werner Lemberg555258f2007-01-21 09:46:37 +0000487 * docs/CHANGES: Document SHZ fix.
488
4892007-01-21 George Williams <gww@silcom.com>
490
491 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
492 points.
493
4942007-01-21 Werner Lemberg <wl@gnu.org>
495
Werner Lemberg011d1112007-01-21 09:36:00 +0000496 * src/sfnt/ttmtx.c (tt_face_get_metrics)
497 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
498
Werner Lemberg87a5a432007-01-17 12:44:39 +00004992007-01-17 Werner Lemberg <wl@gnu.org>
500
Werner Lembergb8003292007-01-17 12:56:25 +0000501
502 * Version 2.3.0 released.
503 =========================
504
505
506 Tag sources with `VER-2-3-0-FINAL'.
507
5082007-01-17 Werner Lemberg <wl@gnu.org>
509
Werner Lemberg87a5a432007-01-17 12:44:39 +0000510 * docs/release: Updated.
511
David Turner22122722007-01-16 20:06:44 +00005122007-01-16 David Turner <david@freetype.org>
513
Werner Lemberg87a5a432007-01-17 12:44:39 +0000514 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
515 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
516 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
517 warnings.
David Turner22122722007-01-16 20:06:44 +0000518
Werner Lemberg267e1d72007-01-15 07:48:09 +00005192007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
520
521 * builds/amiga/makefile, builds/amiga/makefile.os4,
522 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
523
524 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
525
Werner Lemberg8c4120d2007-01-15 06:42:40 +00005262007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
527
528 Fix various compiler warnings.
529
530 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
531 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
532 s/index/strike_index/.
533 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
534
535 * src/gxvalid/gxvmorx5.c
536 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
537
538 * src/truetype/ttinterp.c (Compute_Point_Displacement),
539 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
540 uninitialized variables.
541
Werner Lemberg6164a9d2007-01-13 23:01:36 +00005422007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
543
544 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
545
Werner Lemberg281c1482007-01-13 22:50:51 +00005462007-01-13 Werner Lemberg <wl@gnu.org>
547
548 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
549 versions up to 0x3FF without complaining.
550
Werner Lembergac250b22007-01-13 14:01:36 +00005512007-01-13 Derek Clegg <dclegg@apple.com>
552
553 Add FT_Get_PS_Font_Info interface to CFF driver.
554
555 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
556 (CFF_FontRec): Add `font_info' field.
557
558 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
559 (cff_font_done): Free font->font_info if necessary.
560
561 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
562 (cff_service_ps_info): Register cff_ps_get_font_info.
563
Werner Lemberg23df31a2007-01-13 08:45:00 +00005642007-01-13 Werner Lemberg <wl@gnu.org>
565
566 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
567 with C++ compiler.
568
569 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
570 af_glyph_hints_dump_edges): Ditto.
571
572 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
573 `modules.cfg').
574
575 * src/sfnt/ttsbit0.h: Remove.
576
577 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
578
Werner Lemberg27cf9de2007-01-13 07:34:23 +00005792007-01-12 David Turner <david@freetype.org>
580
581 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
582 bug in the bitmap emboldener if the pitch of the source bitmap is
583 much larger than its width.
584
585 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
586 compilation warning.
587
Werner Lemberg6d96d312007-01-12 10:30:19 +00005882007-01-12 Werner Lemberg <wl@gnu.org>
589
590 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
591 `automake' CVS module from sources.redhat.com.
592
Werner Lemberg17432b52007-01-12 09:28:44 +00005932007-01-11 Werner Lemberg <wl@gnu.org>
594
595 * src/type1/t1load.c (is_space): Removed.
596 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
597 (parse_charstrings): Use IS_PS_TOKEN.
598
599
600 * autogen.sh: Avoid bash specific syntax.
601
David Turner038ace22007-01-11 15:00:59 +00006022007-01-11 David Turner <david@freetype.org>
603
Werner Lemberg17432b52007-01-12 09:28:44 +0000604 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000605
Werner Lemberg17432b52007-01-12 09:28:44 +0000606 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000607
Werner Lemberg17432b52007-01-12 09:28:44 +0000608 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
609 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000610 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000611
Werner Lemberg17432b52007-01-12 09:28:44 +0000612 * autogen.sh: Small fix to get it working on Mac OS X properly:
613 The issue is that GNU libtool is called `glibtool' on this platform,
614 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000615
David Turner2628ea92007-01-10 13:15:56 +00006162007-01-10 David Turner <david@freetype.org>
617
Werner Lemberg17432b52007-01-12 09:28:44 +0000618 * all-sources: Tag all sources with VER-2-3-0-RC1 and
619 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000620
Werner Lemberg17432b52007-01-12 09:28:44 +0000621 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
622 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
623 version number to 2.3.0.
624
625 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
626 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000627
628 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000629 include/freetype/ftlcdfil.h: Update reference documentation with
630 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000631
Werner Lemberg17432b52007-01-12 09:28:44 +0000632 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
633 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000634
Werner Lembergbf02d392007-01-10 07:07:37 +00006352007-01-10 Derek Clegg <dclegg@apple.com>
636
637 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
638 values.
639
David Turnerf48b60e2007-01-08 15:15:32 +00006402007-01-08 David Turner <david@freetype.org>
641
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000642 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000643
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000644 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
645 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000646 corresponding to a given character pixel size.
647
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000648 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
649 `gasp' table, in order to avoid potential problems with later
650 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000651
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000652 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
653 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000654
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000655 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
656 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
657 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
658 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000659
Werner Lemberge6b6f372007-01-07 00:06:47 +00006602007-01-07 Werner Lemberg <wl@gnu.org>
661
Werner Lembergb8004d22007-01-07 09:13:38 +0000662 * src/cid/cidparse.c (cid_parser_new): Improve error message for
663 Type 11 fonts.
664 Scan for `/sfnts' token.
665
6662007-01-07 Werner Lemberg <wl@gnu.org>
667
668 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000669
Werner Lembergbe5f7972007-01-06 07:51:48 +00006702007-01-06 Werner Lemberg <wl@gnu.org>
671
672 * src/cff/cffload.c (cff_index_init): Remove unused variable.
673 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
674
David Turnera8cf42b2007-01-04 16:46:46 +00006752007-01-04 David Turner <david@freetype.org>
676
Werner Lembergf6294392007-01-06 07:47:45 +0000677 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
678 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000679
Werner Lembergf6294392007-01-06 07:47:45 +0000680
681 Do not allocate interpreter-specific tables in memory if we are not
682 going to load glyphs with the bytecode interpreter anyway.
683
684 * src/truetype/ttgload.c (tt_loader_init): Load execution context
685 only if glyph is hinted.
686 Updated.
687 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
688 and `cvs_ready'.
689 Add `tt_size_ready_bytecode' declaration.
690 * src/truetype/ttobjs.c (tt_size_done_bytecode,
691 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
692 (tt_size_init): Move most code into `tt_size_init_bytecode'.
693 (tt_size_done): Move most code into `tt_size_done_bytecode'.
694 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000695
David Turner91a34022007-01-05 14:47:08 +0000696
Werner Lembergf6294392007-01-06 07:47:45 +0000697 Don't extract the metrics table from the SFNT font file. Instead,
698 reparse it on each glyph load. The runtime difference is not
699 noticeable, and it can save a lot of heap memory when memory-mapped
700 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000701
Werner Lembergf6294392007-01-06 07:47:45 +0000702 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
703 `horz_metrics_offset' and `vert_metrics_ofset'.
704 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
705 Updated.
706
707
708 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
709
710
711 Do not load the CFF index offsets into memory, since this wastes a
712 *lot* of heap memory with large Asian CFF fonts. There is no
713 significant performance loss.
714
715 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
716 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
717 `data_size'.
718 (CFF_CharsetRec): Add field `num_glyphs'.
719
720 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
721 cff_charset_cid_to_gindex): New functions.
722 (cff_new_index): Renamed to...
723 (cff_index_init): This. Update all callers.
724 Updated -- some code has been moved to `cff_index_load_offsets'.
725 (cff_done_index): Renamed to...
726 (cff_index_done): This. Update all callers.
727 (cff_index_get_pointers, cff_index_access_element): Updated to use
728 stream offsets.
729 (cff_charset_compute_cids): Set `num_glyphs' field.
730 (cff_encoding_load): Updated.
731
732 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000733
7342007-01-04 David Turner <david@freetype.org>
735
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000736 * docs/INSTALL.UNIX: Simplify some parts, add reference to
737 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000738
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000739 * README.CVS: Add common problem description and solution
740 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000741
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000742 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000743
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000744 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000745
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000746 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000747
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000748 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
749 (TWorker): This.
750 Remove `count_table' and `memory'.
751 Make `grays' a pointer.
752 (TRaster): New structure.
753 (count_table): New static array.
754 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
755 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
756 ft_black_set_mode, ft_black_render): Updated.
757 (ft_black_init): Don't initialize `count_table'.
758 (ft_black_reset): Use the render pool. This saves about 6KB of
759 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000760
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000761 * src/smooth/ftgrays.c (TRaster): Replaced with...
762 (TWorker): This.
763 Remove `memory'.
764 (TRaster): New structure.
765
766 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
767 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
768 gray_render_span, gray_raster_render): Updated.
769 (gray_raster_reset): Use the render pool. This saves about 6KB of
770 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000771
David Turner8a6c44e2007-01-04 17:03:11 +0000772 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
773 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000774 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
775 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
776 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000777
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000778 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
779 Remove a typo that results in no hinting and a memory leak with some
780 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000781
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000782 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000783 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000784 CFF_Faces in it. We need to close all faces before destroying the
785 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000786
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00007872007-01-02 Werner Lemberg <wl@gnu.org>
788
789 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
790 Remove compiler warning.
791
David Turner9207e002007-01-02 16:58:13 +00007922007-01-02 David Turner <david@freetype.org>
793
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000794 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000795
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00007962006-12-31 Masatake YAMATO <jet@gyve.org>
797
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000798 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
799 function.
800 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000801 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000802 `gxv_kern_subtable_fmt0_pairs_validate'.
803
David Turner115b4422006-12-22 11:37:05 +00008042006-12-22 David Turner <david@freetype.org>
805
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000806 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
807 warnings.
David Turner115b4422006-12-22 11:37:05 +0000808
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000809 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
810 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000811
Werner Lemberg4755bf72006-12-16 08:58:44 +00008122006-12-16 Anders Kaseorg <anders@kaseorg.com>
813
814 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
815 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
816
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00008172006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
818
Werner Lemberg9b774e22007-01-16 06:11:27 +0000819 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000820 sync with the modification by Jens Claudius on 2006-08-22; cf.
821 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 +0000822
8232006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
824
825 * src/base/ftmac.c: Specialized for Mac OS X only.
826 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
827 * builds/unix/configure.raw: Ditto. When explicit switches for
828 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
829 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
830
8312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
832
833 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
834 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
835 instead of src/base/ftmac.c
836 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
837 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
838 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
839 that cannot be built at present.
840
8412006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
842
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000843 * src/base/ftobjs.c: Improvement of resource fork handler for
844 POSIX, cf.
845 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000846 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
847 format or .dfont, to simulate the face index number counted by ftmac.c.
848 (IsMacResource): Return the number of scalable faces correctly.
849
Werner Lembergec5b4502006-12-10 07:51:38 +00008502006-12-10 Werner Lemberg <wl@gnu.org>
851
852 * builds/toplevel.mk (version): Protect against `distclean' target.
853
Werner Lembergb26b3142006-12-09 20:01:43 +00008542006-12-09 Werner Lemberg <wl@gnu.org>
855
856 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
857 or `type'.
858
859 * builds/freetype.mk (version): Extracted from freetype.h, using
860 GNU make's built-in string functions.
861 (refdoc): Use $(version) instead of static version number.
862
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00008632006-12-08 Werner Lemberg <wl@gnu.org>
864
865 * builds/toplevel.mk (dist): Extract version number from freetype.h.
866
Werner Lemberg15c29502006-12-09 07:29:54 +00008672006-12-08 Vladimir Volovich <vvv@vsu.ru>
868
869 * src/tools/apinames (State): Remove final comma in structure -- xlc
870 v5 under AIX 4.3 doesn't like this.
871
David Turnerdbf3b432006-12-07 21:18:09 +00008722006-12-07 David Turner <david@freetype.org>
873
Werner Lemberg256a3512006-12-08 06:49:33 +0000874 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
875 to the spacing of auto-fitted glyphs. This only impacts rare
876 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000877
Werner Lemberg11171312006-12-03 09:43:40 +00008782006-12-03 Werner Lemberg <wl@gnu.org>
879
880 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
881
Werner Lemberg960ba592006-12-01 08:20:47 +00008822006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000883
Werner Lemberg960ba592006-12-01 08:20:47 +0000884 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
885 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
886 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000887
David Turner80658e52006-11-28 08:09:20 +0000888
Werner Lemberg960ba592006-12-01 08:20:47 +0000889 * include/freetype/ftxf86.h: Fix and extend comment so that it
890 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000891
Werner Lemberg960ba592006-12-01 08:20:47 +0000892 * include/freetype/ftchapters.h: Add `font_format' section.
893
894
895 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
896 to TOC in index page.
897
8982006-11-28 David Turner <david@freetype.org>
899
900 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
901 trying to render into a zero-width/height bitmap, not an error code.
902
903 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
904
905 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
906 ones instead.
907
908 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
909 variable.
David Turner80658e52006-11-28 08:09:20 +0000910
Werner Lemberg8636c292006-11-26 22:28:13 +00009112006-11-26 Pierre Hanser <hanser@club-internet.fr>
912
913 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
914
Werner Lemberg960ba592006-12-01 08:20:47 +00009152006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000916
Werner Lemberg960ba592006-12-01 08:20:47 +0000917 * src/autofit/afhints.c (af_glyph_hints_dump_points,
918 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
919 Add stubs to link the `ftgrid' test program when debugging is
920 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000921
Werner Lemberg960ba592006-12-01 08:20:47 +00009222006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000923
924 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000925 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
926
927 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
928 Emit more sensible information.
929
930 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
931
932 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
933 rounding of blue values.
934 (af_latin_hints_compute_segments): Hint segment heights.
935 (af_latin_hints_link_segments): Reduce `len_score' value.
936 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
937 value and use `height' member for comparisons.
938 (af_latin_hint_edges): Extend logging message.
939 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000940
Werner Lemberg91959bf2006-11-22 10:36:55 +00009412006-11-22 Werner Lemberg <wl@gnu.org>
942
943 Fix Savannah bug #15553.
944
945 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
946 program after a change from mono to grayscaling (and vice versa).
947 Use correct constant for comparison to get `exec->grayscale'.
948
Werner Lemberg913a3652006-11-19 09:19:17 +00009492006-11-18 Werner Lemberg <wl@gnu.org>
950
951 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000952 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000953 This patch fixes Savannah bug #18301.
954
955 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
956 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
957 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
958 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
959 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
960 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
961 (FNT_Load_Glyph): Check validity of `glyph_index'.
962
David Turner7bab6ae2006-11-13 11:25:06 +00009632006-11-13 David Turner <david@freetype.org>
964
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000965 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
966 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000967
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000968 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
969 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
970 when building the library to change the default LCD filter to be
971 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000972
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000973 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000974
David Turner8765c712006-11-10 16:49:42 +00009752006-11-10 David Turner <david@freetype.org>
976
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000977 * src/smooth/ftsmooth.c: API change for the LCD
978 filter. The FT_LcdFilter value is an enumeration describing which
979 filter to apply, with new values FT_LCD_FILTER_LIGHT and
980 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
981 algorithm which produces strong color fringes for everything
982 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000983
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000984 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
985 second parameter to an enum type.
986
987 * src/base/ftlcdfil.c (USE_LEGACY): Define.
988 (_ft_lcd_filter): Rename to...
989 (_ft_lcd_filter_fir): This.
990 Update parameters.
991 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
992 (FT_Library_Set_LcdFilter): Update parameters.
993 Handle new filter modes.
994
995 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
996 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
997 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
998 callback and update other fields.
999
1000 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1001 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1002 Other minor improvements.
1003
1004 * src/autofit/aflatin.c: Various tiny improvements that drastically
1005 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1006 (af_latin_hints_compute_edges): Fix typo.
1007 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001008
David Turner4e9cc3c2006-11-09 16:31:52 +000010092006-11-09 David Turner <david@freetype.org>
1010
Werner Lemberg49c77a82006-11-09 21:51:57 +00001011 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1012 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001013
Werner Lemberg5e430892006-11-07 09:35:03 +000010142006-11-07 Zhe Su <james.su@gmail.com>
1015
1016 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1017 also.
1018
Werner Lemberg111b5ae2006-11-03 09:40:12 +000010192006-11-03 Werner Lemberg <wl@gnu.org>
1020
1021 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1022
David Turner40604742006-11-02 16:37:35 +000010232006-11-02 David Turner <david@freetype.org>
1024
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001025 Add a few tweaks to better handle serif fonts.
1026 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001027
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001028 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1029 segments that are less than 1.5 pixels high. This gets rid of
1030 *many* corner cases with serifs.
1031 (af_latin_align_linked_edge): Add logging message.
1032 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1033 Add logging messages.
1034 Handle AF_EDGE_FLAG flag specially.
1035
1036 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1037 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1038
1039 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1040 Update external declarations.
1041 (af_corner_orientation, af_corner_is_flat): Replaced by...
1042
1043 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1044 ft_corner_is_flat): These declarations.
1045
1046 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1047 Comment out. Replaced by...
1048
1049 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1050 These functions. Update all callers.
1051 (FT_Add64) [!FT_LONG64]: Simplify.
1052
1053 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1054 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1055 production of garbage by missing lots of segments.
1056
1057 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1058
1059 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1060 [AF_DEBUG]: Set _af_debug_hints.
1061
1062
1063 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1064 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1065 and ft_corner_orientation.
1066
1067
1068 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001069
Werner Lemberge88c5262006-10-24 05:46:26 +000010702006-10-24 Werner Lemberg <wl@gnu.org>
1071
1072 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1073
1074 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1075 as argument.
1076
David Turnera1861392006-10-23 16:00:59 +000010772006-10-23 Zhe Su <zsu@novell.com>
1078
Werner Lemberg715e96e2006-10-24 05:28:45 +00001079 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1080 better deal with broken Asian fonts with strange glyphs, having
1081 self-intersections and other peculiarities. The used algorithm is
1082 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001083
David Turnere140f142006-10-23 08:56:57 +000010842006-10-23 David Turner <david@freetype.org>
1085
Werner Lemberg715e96e2006-10-24 05:28:45 +00001086 Speed up the CFF font loader. With some large CFF fonts,
1087 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001088
Werner Lemberg715e96e2006-10-24 05:28:45 +00001089 * src/cff/cffload.c (cff_get_offset): Removed.
1090 (cff_new_index): Inline functionality of `cff_get_offset'.
1091 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1092 (cff_charset_done): Call `cff_charset_free_cids'.
1093 (cff_charset_load): Call `cff_charset_compute_cids'.
1094 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1095
1096 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1097 with FT_NEXT_XXX.
1098
1099
1100 Speed up the Postscript hinter, with more than 100% speed increase
1101 on my machine.
1102
1103 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1104 psh_corner_orientation): New functions.
1105 (psh_glyph_compute_inflections): Merge loops for efficiency.
1106 Use `psh_corner_orientation'.
1107 (psh_glyph_init): Use `psh_corner_is_flat'.
1108 (psh_hint_table_find_strong_point): Renamed to...
1109 (psh_hint_table_find_strong_points): This.
1110 Rewrite, adding argument to handle all points at once.
1111 Update all callers.
1112 (PSH_MAX_STRONG_INTERNAL): New macro.
1113 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001114
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000011152006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1116
1117 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001118 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001119
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000011202006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1121
1122 * docs/INSTALL.CROSS: New document file for cross-building.
1123
1124 * builds/unix/configure.raw: Preliminary cross-building support.
1125 Find native C compiler and pass it by CC_BUILD, and
1126 find suffix for native executable and pass it by EXEEXT_BUILD.
1127 Also suffix for target executable is passed by EXEEXT.
1128
Werner Lembergb9e6d692006-10-15 08:58:40 +00001129 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1130 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001131 CC_BUILD and EXEEXT_BUILD.
1132
Werner Lembergb9e6d692006-10-15 08:58:40 +00001133 * builds/exports.mk (APINAMES_EXE): Change the extension for
1134 apinames from the suffix for target (E) to that for building host
1135 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001136
Werner Lemberg82a07e92006-10-12 06:20:44 +000011372006-10-12 Werner Lemberg <wl@gnu.org>
1138
1139 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1140 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1141 which reference those files.
1142
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000011432006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1144
Werner Lembergb9e6d692006-10-15 08:58:40 +00001145 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1146 embedded in freetype2.pc and freetype-config. Use it to record
1147 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001148
1149 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1150
1151 * builds/unix/freetype-config.in: Ditto.
1152
Werner Lemberg28e17d92006-10-11 17:27:47 +000011532006-10-11 Werner Lemberg <wl@gnu.org>
1154
1155 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1156 development.
1157
Jens Claudius336d2292006-10-03 08:53:37 +000011582006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1159
1160 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1161 argument to ft_setjmp.
1162
1163 * include/freetype/internal/ftvalid.h: Add comment that
1164 ft_validator_run must not be used.
1165
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011662006-10-01 Werner Lemberg <wl@gnu.org>
1167
1168 * src/base/ftbase.c: Undo change from 2006-09-30.
1169
1170 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1171
11722006-09-30 David Turner <david@freetype.org>
1173
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001174 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1175 s/unpatented_hinting/ignore_unpatented_hinter/.
1176 Update all callers.
1177
1178 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1179 auto-hinting shall be used or not.
1180
1181 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001182
Werner Lemberg2863cfa2006-10-01 17:04:00 +000011832006-09-30 Werner Lemberg <wl@gnu.org>
1184
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001185 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1186 in use).
1187
1188 * src/base/ftbase.c: Include `ftlcdfil.c'.
1189
Werner Lemberg9b15ea32006-09-29 18:22:11 +000011902006-09-29 Werner Lemberg <wl@gnu.org>
1191
1192 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1193 overlapping segments. Bug reported by Stefan Koch.
1194
David Turnerad830712006-09-27 16:20:59 +000011952006-09-28 David Turner <david@freetype.org>
1196
Werner Lemberg2c002e12006-09-29 21:31:53 +00001197 Fix a bug in the automatic unpatented hinting support which prevents
1198 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001199
Werner Lemberg2c002e12006-09-29 21:31:53 +00001200 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1201 s/force_autohint/unpatented_hinting/. Update all callers.
1202
1203 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1204
1205 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001206
David Turner8a317cf2006-09-27 07:52:48 +000012072006-09-27 David Turner <david@freetype.org>
1208
Werner Lemberg2c002e12006-09-29 21:31:53 +00001209 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001210
David Turner8a317cf2006-09-27 07:52:48 +00001211
David Turnere140f142006-10-23 08:56:57 +00001212 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001213 In a default build, the function `FT_Library_SetLcdFilter' returns
1214 `FT_Err_Unimplemented_Feature'; you need to #define
1215 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1216 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001217
Werner Lemberg2c002e12006-09-29 21:31:53 +00001218 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001219
Werner Lemberg2c002e12006-09-29 21:31:53 +00001220 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1221 typedef.
1222 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1223 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001224
Werner Lemberg2c002e12006-09-29 21:31:53 +00001225 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1226 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001227
Werner Lemberg2c002e12006-09-29 21:31:53 +00001228 Handle subpixel rendering.
1229 Simplify function.
1230 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1231 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1232
1233 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1234 pointing to <freetype/ftlcdfil.h>.
1235
1236 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1237 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1238
1239 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001240
Werner Lemberge20df4a2006-09-27 06:29:21 +000012412006-09-26 David Bustin
1242
1243 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1244 correctly. Reported as Savannah bug #17843.
1245
David Turner6f8c6222006-09-26 15:42:44 +000012462006-09-26 David Turner <david@freetype.org>
1247
Werner Lemberg110246c2006-09-26 21:55:44 +00001248 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1249 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1250 horizontal and vertical hinting for the purpose of debugging the
1251 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001252
Werner Lemberg110246c2006-09-26 21:55:44 +00001253 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1254 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001255
Werner Lemberg110246c2006-09-26 21:55:44 +00001256 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1257
1258 * include/freetype/config/ftoption.h, devel/ftoption.h
1259 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1260 we want to compile LCD-optimized rendering code (à la ClearType) or
1261 not. The macro *must* be disabled in default builds of the library
1262 for patent reasons.
1263
1264 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1265 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1266 isn't defined at compile time. This only changes the content of the
1267 rendered glyph to match the one of normal gray-level rendering,
1268 hence clients should not need to be modified.
1269
1270 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001271
Werner Lemberg745ff2c2006-09-19 05:48:02 +000012722006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1273
1274 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1275 LWFN fails and both are available.
1276
David Turnerf3050052006-09-11 12:00:32 +000012772006-09-11 David Turner <david@freetype.org>
1278
Werner Lembergf9644552006-09-12 13:48:10 +00001279 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1280 report their English names through an Apple Roman
1281 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001282
Werner Lembergf9644552006-09-12 13:48:10 +00001283 If the font uses another name entry with language_id == English, it
1284 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001285
Werner Lembergf9644552006-09-12 13:48:10 +00001286 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1287 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001288
Werner Lemberg36d2eab2006-09-05 19:24:34 +000012892006-09-05 Werner Lemberg <wl@gnu.org>
1290
1291 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001292 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001293 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1294 `HAN NOM B.ttf').
1295
1296 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1297
David Turner772e55d2006-09-05 09:45:15 +000012982006-09-05 David Turner <david@freetype.org>
1299
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001300 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001301
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001302 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1303 (TRaster): Remove `count_ex' and `count_ey'.
1304 (gray_find_cell): Remove 2nd and 3rd argument.
1305 (gray_alloc_cell): Merged with `gray_find_cell'.
1306 (gray_record_cell): Simplify.
1307 (gray_set_cell): Rewrite.
1308 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1309 (gray_render_span): Don't use FT_MEM_SET for small values.
1310 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1311 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1312 bitmap scanline.
1313 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001314
David Turneraa557a92006-09-04 16:42:44 +000013152006-09-04 David Turner <david@freetype.org>
1316
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001317 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1318 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001319
Werner Lemberg2d8629b2006-09-03 06:18:45 +000013202006-09-03 Werner Lemberg <wl@gnu.org>
1321
1322 * devel/ftoption.h: Synchronize with
1323 include/freetype/config/ftoption.h.
1324
1325 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1326 variable declaration.
1327 (gray_convert_glyph): Fix compiler warnings.
1328
David Turner6d79f212006-09-01 14:09:35 +000013292006-09-01 David Turner <david@freetype.org>
1330
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001331 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1332 to recognize a few fonts that require the automatic unpatented
1333 loader.
David Turnerbd502952006-09-01 19:05:24 +00001334
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001335 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1336 rasterizer. The speed improvement is between 15% and 25%, depending
1337 on the font data.
1338
1339 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1340 (TCell): Redefine.
1341 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1342 (gray_init_cells): Updated.
1343 (gray_find_cell, gray_alloc_cell): New functions.
1344 (gray_record_cell): Rewritten to use `gray_find_cell' and
1345 `gray_alloc_cell'.
1346 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1347 QSORT_THRESHOLD):
1348 Removed.
1349 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1350 gray_dump_cells): Removed.
1351 (gray_sweep): Rewritten.
1352 (gray_convert_glyph): Rewrite code which used one of the sorting
1353 functions.
1354 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001355
Werner Lembergd898aed2006-08-29 09:50:34 +000013562006-08-29 Dr. Werner Fink <werner@suse.de>
1357
1358 * configure: Make it possible to handle configure options which
1359 have strings containing spaces.
1360
13612006-08-27 David Turner <david@freetype.org>
1362
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001363 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1364 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1365 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1366
1367 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1368 src/truetype/truetype.c, src/truetype/ttdriver.c,
1369 src/truetype/ttgload.c, src/truetype/ttgload.h,
1370 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1371 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1372 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1373
1374 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1375 member `force_autohint'.
1376
1377 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1378
1379 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1380 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001381
Jens Claudiusa787f452006-08-27 11:26:18 +000013822006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1383
1384 Fix miscellaneous compiler warnings.
1385
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001386 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1387 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001388
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001389 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1390 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1391 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001392
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001393 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1394 volatileness of argument to ft_longjmp. Spotted by Werner
1395 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001396
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001397 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1398 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001399
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001400 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1401 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001402
Werner Lembergc4c35b72006-08-27 08:03:46 +000014032006-08-27 Werner Lemberg <wl@gnu.org>
1404
1405 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1406 Reported by Jens.
1407
Jens Claudius088e44e2006-08-22 14:24:30 +000014082006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001409
Jens Claudius088e44e2006-08-22 14:24:30 +00001410 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001411 about addresses of volatile objects passed as function arguments as
1412 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001413
Werner Lembergc4c35b72006-08-27 08:03:46 +00001414 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1415 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001416
1417 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1418 argument `table' a pointer to a volatile object.
1419
1420 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1421 argument `table' a pointer to a volatile object.
1422
Jens Claudius2652bd52006-08-18 17:20:37 +000014232006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1424
1425 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1426 variable `_sfnt' as volatile since it must keep its value across
1427 a call to ft_setjmp.
1428 (gxv_validate): Same for local variables `memory' and `valid'.
1429 (classic_kern_validate): Same for local variables `memory',
1430 `ckern', and `valid'.
1431
1432 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1433 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1434 `jstf', and 'valid'.
1435
1436 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1437 local variable `cmap'.
1438
David Turner9fbfc6a2006-08-16 09:11:31 +000014392006-08-16 David Turner <david@freetype.org>
1440
Werner Lemberg12342992006-08-19 11:18:09 +00001441 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1442 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001443
Werner Lemberg12342992006-08-19 11:18:09 +00001444 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1445 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001446
David Turner33f5f242006-08-16 16:50:55 +00001447
Werner Lemberg12342992006-08-19 11:18:09 +00001448 Improvements to native TrueType hinting. This is a first try,
1449 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1450
1451 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1452 `extra_points2'.
1453
1454 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1455 `orus'.
1456
1457 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1458 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1459 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1460 handle `extra_points2'.
1461
1462 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1463 Remove compiler warning.
1464 (cur_to_arg): Remove macro.
1465 (TT_Hint_Glyph): Updated.
1466 (TT_Process_Simple_Glyph): Handle `orus'.
1467
1468 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1469 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1470 (LOC_Ins_IUP): Renamed to...
1471 (IUP_WorkerRec): This.
1472 Add `orus' member.
1473 (Shift): Renamed to...
1474 (_iup_worker_shift): This.
1475 Updated.
1476 (Interp): Renamed to...
1477 (_iup_worker_interpolate): This.
1478 Updated to handle `orus'.
1479 (Ins_IUP): Updated.
1480
1481 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1482 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001483
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000014842006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1485
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001486 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001487 build ftvalid in ft2demos. This has been inadvertedly changed
1488 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001489
14902006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1491
Werner Lemberg12342992006-08-19 11:18:09 +00001492 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1493 Jens:
1494 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001495
Werner Lemberg12342992006-08-19 11:18:09 +00001496 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1497 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001498
1499 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1500
Jens Claudius9950adc2006-08-13 12:14:36 +000015012006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1502
Werner Lemberg12342992006-08-19 11:18:09 +00001503 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1504 T1_TOKEN_TYPE_KEY.
1505 (T1_FieldRec): Add `dict'.
1506 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1507 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1508 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001509
Werner Lemberg12342992006-08-19 11:18:09 +00001510 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1511 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001512
1513 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1514
1515 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001516 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1517 not T1_TOKEN_TYPE_ANY.
1518 (ps_parser_load_field): Make sure a token that should be a string or
1519 name is really a string or name.
1520 Avoid memory leak if a keyword has been already encountered and its
1521 value is overwritten.
1522 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1523 T1_FIELD_XXX.
1524 (parse_dict): Ignore keywords that occur in the wrong dictionary
1525 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001526
Werner Lemberg12342992006-08-19 11:18:09 +00001527 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1528 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001529
Werner Lemberg12342992006-08-19 11:18:09 +00001530 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1531 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001532
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000015332006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1534
1535 Move creation of field `buildchar' of T1_DecoderRec out of
1536 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1537 of it.
1538
1539 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1540 and `T1_Compute_Max_Advance'.
1541
1542 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1543 Remove field `face', add `len_buildchar'.
1544
1545 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1546 field `buildchar'.
1547
1548 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1549 finisher for T1_Decoder.
1550 (cid_slot_load_glyph): Do not ignore failure when initializing the
1551 T1_Decoder.
1552
1553 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1554 Updated.
1555 (t1_decoder_init): Remove initialization of fields `buildchar' and
1556 `len_buildchar'.
1557 (t1_decoder_done): Remove deallocation of field `buildchar'.
1558
1559 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1560 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1561 T1_Decoder.
1562 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1563 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1564 case of error.
1565
1566 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1567 `buildchar' of T1_FaceRec.
1568
1569 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1570 `buildchar' of T1_FaceRec.
1571
Werner Lemberg1a380e02006-07-14 18:28:08 +000015722006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1573
1574 * freetype2/include/freetype/internal/psaux.h: New macros
1575 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1576 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1577 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1578 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1579 (T1_DecoderRec): New fields `buildchar' and `face'.
1580 (IS_PS_TOKEN): New macro.
1581
1582 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1583 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1584
1585 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1586 `default_design_vector' and `num_default_design_vector'.
1587
1588 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1589 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1590 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1591
1592 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1593 `token' argument to be NULL if we want only to count the number of
1594 tokens.
1595 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1596 want to skip the array.
1597 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1598 want to skip the array.
1599
1600 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1601 support for (partially commented out) othersubrs 19-25, 27, and 28.
1602 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1603 (t1_decoder_done): Release new field `buildchar'.
1604
1605 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1606 functions.
1607 (t1_keywords): Register them.
1608 (t1_allocate_blend): Updated.
1609 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1610 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1611 (parse_dict): Remove `keyword_flags' argument.
1612 Use new macro IS_PS_TOKEN.
1613 Changed function so that later PostScript definitions override
1614 earlier ones.
1615 (t1_init_loader): Initialize new field `keywords_encountered'.
1616 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1617 `len_buildchar'.
1618 Remove `keywords_flags'.
1619
1620 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1621 `keywords_encountered'.
1622 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1623
1624 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1625 New entries for parsing /NDV, /CDV, and /DesignVector.
1626
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000016272006-07-07 Werner Lemberg <wl@gnu.org>
1628
1629 Add many checks to protect against malformed PCF files.
1630
1631 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1632 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1633
1634 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1635 data and check that tables don't overlap (using a simple
1636 bubblesort).
1637 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1638 New macros which give the size of data structures in the data
1639 stream.
1640 (pcf_get_properties): Use rough estimates to get array size limits.
1641 Assign `face->nprops' and `face->properties' earlier so that a call
1642 to PCF_Face_Done can do the clean-up in case of error.
1643 Protect against invalid string offsets.
1644 (pcf_get_metrics): Clean up code.
1645 Adjust tracing message levels.
1646 Use rough estimate to get array size limit.
1647 (pcf_get_bitmaps): Clean up code.
1648 Adjust tracing message levels.
1649 Use rough estimates to get offset limits.
1650 (pcf_get_encodings): Adjust tracing message level.
1651 (pcf_get_accel): Clean up code.
1652
Werner Lemberg8eb05252006-06-27 06:20:01 +000016532006-06-26 Werner Lemberg <wl@gnu.org>
1654
1655 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1656 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1657
Werner Lemberg24703f82006-06-26 19:12:51 +000016582006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1659
1660 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1661 (t1_decoder_parse_charstrings): Operator with
1662 opcode 15 pops its two arguments.
1663 Handle the case where the pops of an othersubr may be part of a
1664 subroutine.
1665 Handle unknown othersubrs gracefully: count their operands and let
1666 the following pop operators push the operands as the results onto
1667 the Type1 stack.
1668 Improve handling of setcurrentpoint opcode.
1669
Werner Lembergc011f4c2006-06-26 09:40:00 +000016702006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1671
1672 The Type 1 parser now skips over top-level procedures as required
1673 for a `Simplified Parser'. This makes the parser more robust as it
1674 doesn't poke around in PostScript code. Additionally, it makes the
1675 FontDirectory hackery in src/type1/t1load.c unnecessary.
1676
1677 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1678 (skip_literal_string): Add FT_Error as return value.
1679 Handle escapes better.
1680 (skip_string): Add FT_Error as return value.
1681 Don't set `parser->error' but return error code directly.
1682 (skip_procedure): New function.
1683 (ps_parser_skip_PS_token): Handle procedures.
1684 Update code.
1685 (ps_parser_to_token): Update code.
1686 (ps_parser_load_field_table): Handle bbox entries also.
1687
1688 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1689 Add commented-out code for synthetic fonts.
1690
Werner Lemberga2da05c2006-06-25 06:27:27 +000016912006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1692
1693 Fix two hinting bugs as reported in
1694 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1695
1696 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1697 `first_point' member.
1698
1699 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1700 `first_point'.
1701 (TT_Process_Composite_Glyph): Always untouch points.
1702
1703 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1704 `first_point' and `last_point' in case of composite glyphs.
1705 (Ins_IUP): Fix computation of `end_point'.
1706
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000017072006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1708
Werner Lembergef3d2c22006-06-25 06:07:14 +00001709 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1710 Mac. The original patch was written by David Sachitano and Lawrence
1711 Coopet, and modified by Sean McBride for MPW compatibility. Only
1712 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001713
Werner Lembergef3d2c22006-06-25 06:07:14 +00001714 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1715 Mac OS X platforms.
1716 (OS_INLINE): Undefine before definition.
1717 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1718 FontAssociation table in FOND resource.
1719 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1720 and fontSize at each entry of FontAssociation table in FOND
1721 resource.
1722 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1723 ffStylOff of FamilyRecord header of FOND resource, the header,
1724 fontSize, fontID at each entry of FontAssociation table, and
1725 StyleMapping table.
1726 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001727
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000017282006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1729
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001730 Public API of TrueTypeGX, OpenType, and classic kern table validator
1731 should return `FT_Err_Unimplemented_Feature' if validation service
1732 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001733 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001734 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1735
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001736 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1737 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1738 unavailable.
1739 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1740 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001741
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001742 * src/base/ftotval.c (FT_OpenType_Validate): Return
1743 FT_Err_Unimplemented_Feature if OpenType validation service is
1744 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001745
Werner Lembergb10e45a2006-06-08 07:32:56 +000017462006-06-08 Werner Lemberg <wl@gnu.org>
1747
1748 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1749 errors.
1750
David Turner5f1f7502006-06-07 05:11:50 +000017512006-06-07 David Turner <david@freetype.org>
1752
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001753 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1754 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1755 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001756
David Turner457b4a82006-06-06 08:14:14 +000017572006-06-06 David Turner <david@freetype.org>
1758
Werner Lemberg4836f952006-06-06 12:54:08 +00001759 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001760
Werner Lemberg4836f952006-06-06 12:54:08 +00001761 We change `ps_unicodes_init' so that it also takes a
1762 `free_glyph_name' callback to release the glyph names returned by
1763 `get_glyph_name'
1764
1765 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1766 Renamed to ...
1767 (PS_GetGlyphNameFunc): This.
1768 (PS_FreeGlyphNameFunc): New typedef.
1769 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1770
1771 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1772 argument.
1773 (cff_sid_free_glyph_name): New function.
1774 (cff_cmap_unicode_init): Updated.
1775
1776 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1777
1778 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1779 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001780
1781
David Turner09717352006-06-04 14:33:08 +000017822006-06-04 David Turner <david@freetype.org>
1783
Werner Lembergd724f202006-06-04 15:17:41 +00001784 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1785 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001786 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001787
Werner Lembergd724f202006-06-04 15:17:41 +00001788 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1789 of `face->num_glyphs' which missed the last glyph, due to
1790 the offset-by-1 computation, since the PFR format doesn't
1791 guarantee that glyph index 0 corresponds to the `missing
1792 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001793
Werner Lemberg33779662006-05-26 06:30:05 +000017942006-05-25 Werner Lemberg <wl@gnu.org>
1795
1796 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1797 `-no-undefined'. Reported by Christian Biesinger.
1798
Werner Lemberg24773d62006-05-20 08:53:13 +000017992006-05-19 Brian Weed <bw@imaginengine.com>
1800
1801 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1802 have debug information, and debug libraries use `C7 compatible'
1803 debug info.
1804
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000018052006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1806
Werner Lemberga6523a62006-05-20 08:47:01 +00001807 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001808 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001809
Werner Lemberga6523a62006-05-20 08:47:01 +00001810 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1811 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001812
1813 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001814 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001815
18162006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1817
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001818 * build/unix/configure.raw: Add a fallback to disable Carbon
1819 dependency, if configured with no options on Mac OS X.
1820
18212006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1822
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001823 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001824 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001825 the second part of Savannah bug #16590.
1826
Werner Lemberg545c4e52006-05-17 22:55:04 +000018272006-05-18 Werner Lemberg <wl@gnu.org>
1828
1829 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1830 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1831
David Turnerdc3ff312006-05-17 12:59:35 +000018322006-05-17 David Turner <david@freetype.org>
1833
Werner Lemberg545c4e52006-05-17 22:55:04 +00001834 This is a major patch used to drastically improve the performance of
1835 loading glyphs. This both speeds up loading the glyph vectors
1836 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001837
Werner Lemberg545c4e52006-05-17 22:55:04 +00001838 We now use inline assembler code with GCC to implement `FT_MulFix',
1839 which is probably the most important function related to the
1840 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001841
Werner Lemberg545c4e52006-05-17 22:55:04 +00001842 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001843
1844
Werner Lemberg545c4e52006-05-17 22:55:04 +00001845 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1846 `cursor' and `limit'.
1847
1848 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1849 New functions.
1850 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1851 [TEST]: Remove.
1852
1853 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1854 code.
1855
1856 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1857 `FT_ZERO'
1858 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1859 (af_glyph_hints_reload: Rewrite recognition of weak points.
1860
1861 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1862 constant values out of the loops.
1863
1864 * src/autofit/aftypes.h: Updated.
1865
1866 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1867
1868 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1869 product to get orientation.
1870
1871 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1872 (FT_Stream_OpenGzip): Use it to handle small files directly in
1873 memory.
1874
1875 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1876 Improve performance.
1877
1878 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1879 `limit'.
1880
1881 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1882 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1883 exceedingly large values of number of contours. Speed up by
1884 reducing the number of loops.
1885
1886 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1887
1888
1889 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1890 used to detect rogue clients from 4 to 16. This is to prevent some
1891 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1892 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001893
Werner Lembergde2d90a2006-05-17 08:54:30 +000018942007-05-17 Werner Lemberg <wl@gnu.org>
1895
1896 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001897 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001898
18992006-05-16 Werner Lemberg <wl@gnu.org>
1900
1901 * docs/PROBLEMS: Updated icl issues.
1902
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001903----------------------------------------------------------------------------
1904
Werner Lemberg42b63b22007-01-21 21:01:33 +00001905Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001906David Turner, Robert Wilhelm, and Werner Lemberg.
1907
1908This file is part of the FreeType project, and may only be used, modified,
1909and distributed under the terms of the FreeType project license,
1910LICENSE.TXT. By continuing to use, modify, or distribute this file you
1911indicate that you have read the license and understand and accept it
1912fully.
1913
1914
1915Local Variables:
1916version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001917coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001918End: