blob: 8a2ac3940d04df54bc942b36af9810f88c05ecb0 [file] [log] [blame]
Werner Lemberg1e859922009-02-15 07:54:35 +000012009-02-15 Matt Godbolt <matt@godbolt.org>
2
3 Fix Savannah bug #25588.
4
5 * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
6 `orr' instruction.
7
Werner Lemberg0552a492009-02-11 22:59:40 +000082009-02-11 Werner Lemberg <wl@gnu.org>
9
10 * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
11 Reported by David Bevan <dbevan@emtex.com>.
12
Werner Lembergc2cabd42009-02-09 22:20:27 +0000132009-02-09 Werner Lemberg <wl@gnu.org>
14
15 Fix Savannah bug #25495.
16
17 * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
18 setting metrics and bbox values. This ensures that the check for a
19 font with neither a `glyf' table nor bitmap strikes can be performed
20 early enough to set metrics and bbox values too.
21
Werner Lemberg67bbcbd2009-02-04 07:59:16 +0000222009-02-04 Werner Lemberg <wl@gnu.org>
23
24 Fix Savannah bug #25480.
25
26 * builds/unix/freetype-config.in: For --ftversion, don't use $prefix
27 but $includedir.
28
Werner Lemberg763ae202009-01-30 23:45:53 +0000292009-01-31 Werner Lemberg <wl@gnu.org>
30
31 Minor docmaker improvements.
32
33 * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
34 code blocks.
35
Werner Lemberg1e5e7aa2009-01-25 16:27:04 +0000362009-01-25 Werner Lemberg <wl@gnu.org>
37
38 Fix SCANCTRL handling in TTFs.
39 Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
40
41 * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
42
Werner Lemberg5184ed62009-01-22 10:13:59 +0000432009-01-23 Werner Lemberg <wl@gnu.org>
44
45 Move FT_Get_FSType_Flags to a separate file.
46 Problem reported by Mickey Gabel <mickey@monfort.co.il>.
47
48 * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
49 * src/base/ftfstype.c: This new file.
50
51 * modules.cfg (BASE_EXTENSION): Add ftfstype.c.
52
53 * docs/INSTALL.ANY: Updated.
54
55 * builds/mac/*.txt, builds/amiga/*makefile*,
56 builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
57 Updated.
58
Suzuki, Toshiya (鈴木俊哉)5a009092009-01-22 03:50:37 +0000592009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
60
Suzuki, Toshiya (鈴木俊哉)a7c5de52009-01-22 04:00:32 +000061 * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
62 messages ending without "\n".
63
642009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
65
Suzuki, Toshiya (鈴木俊哉)5a009092009-01-22 03:50:37 +000066 Fix Savannah bug #25347.
67
68 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
69 the stream to the original position passed to this function,
70 when ft_lookup_PS_in_sfnt_stream() failed.
71 (Mac_Read_sfnt_Resource): Rewind the stream to the head of
72 sfnt resource body, when open_face_PS_from_sfnt_stream()
73 failed.
74
Werner Lembergc591c172009-01-19 08:55:15 +0000752009-01-19 Michael Lotz <mmlr@mlotz.ch>
76
77 Fix Savannah bug #25355.
78
79 * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
80 assembler code work with gcc 2.95.3 (as used by the Haiku project).
81 Add `cc' register to the clobber list.
82
Werner Lemberg59e2c8d2009-01-18 06:42:59 +0000832009-01-18 Werner Lemberg <wl@gnu.org>
84
Werner Lemberg3739f8b2009-01-18 13:13:17 +000085 Protect FT_Get_Next_Char.
86
87 * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
88 change from 2008-07-22.
89
90 Patch from Ronen Ghoshal <rghoshal@emtex.com>.
91
922009-01-18 Werner Lemberg <wl@gnu.org>
93
Werner Lemberg4f7ef402009-01-18 10:53:29 +000094 Implement FT_Get_Name_Index for SFNT driver.
95
96 * src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
97 (sfnt_service_glyph_dict): Use it.
98
99 Problem reported by Truc Truong <tructv@necsv.com>.
100
1012009-01-18 Werner Lemberg <wl@gnu.org>
102
Werner Lemberg59e2c8d2009-01-18 06:42:59 +0000103 * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
104 documentation. Problem reported by Truc Truong <tructv@necsv.com>.
105
106 * docs/CHANGES: Updated.
107
Werner Lembergfb4ddb22009-01-14 05:30:56 +00001082009-01-14 Werner Lemberg <wl@gnu.org>
109
Werner Lemberge22dd0b2009-01-14 06:52:18 +0000110 * Version 2.3.8 released.
111 =========================
112
113
114 Tag sources with `VER-2-3-8'.
115
116 * docs/VERSION.DLL: Update documentation and bump version number to
117 2.3.8.
118
119 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
120 builds/win32/visualc/freetype.dsp,
121 builds/win32/visualc/freetype.vcproj,
122 builds/win32/visualce/index.html,
123 builds/win32/visualce/freetype.dsp,
124 builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/.
125
126 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
127
128 * builds/unix/configure.raw (version_info): Set to 9:19:3.
129
130 * docs/release: Updated.
131
1322009-01-14 Werner Lemberg <wl@gnu.org>
133
Werner Lembergfb4ddb22009-01-14 05:30:56 +0000134 * builds/toplevel.mk (dist): Compress better.
135
Werner Lemberg24d72a12009-01-13 17:34:48 +00001362009-01-13 Werner Lemberg <wl@gnu.org>
137
Werner Lemberg9bf73ec2009-01-13 17:42:00 +0000138 * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
139 with C++.
140
1412009-01-13 Werner Lemberg <wl@gnu.org>
142
Werner Lemberg24d72a12009-01-13 17:34:48 +0000143 Don't use stdlib.h and friends directly.
144 Reported by Mickey Gabel <mickey@monfort.co.il>.
145
146 * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
147
148 * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
149 s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
150
151 * src/autofit/aftypes.h, src/autofit/afhints.c,
152 src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
153
154 * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
155
Werner Lemberge85baf42009-01-12 20:01:10 +00001562009-01-12 Werner Lemberg <wl@gnu.org>
157
Werner Lembergf47acf22009-01-12 20:11:14 +0000158 Avoid compiler warnings.
159
160 * */*: s/do ; while ( 0 )/do { } while ( 0 )/.
161 Reported by Sean McBride <sean@rogue-research.com>.
162
1632009-01-12 Werner Lemberg <wl@gnu.org>
164
Werner Lemberge85baf42009-01-12 20:01:10 +0000165 Fix stdlib dependencies.
166
167 Problem reported by Mickey Gabel <mickey@monfort.co.il>.
168
169 * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused.
170
171 * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
172 s/memcpy/ft_memcpy/.
173 * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
174
Werner Lembergfc6d12a2009-01-11 10:55:45 +00001752009-01-11 Werner Lemberg <wl@gnu.org>
176
177 * docs/formats.txt: Add link to PCF specification.
178
Werner Lemberg214ca052009-01-11 11:45:54 +0000179 * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
180 documentation.
181
Suzuki, Toshiya (鈴木俊哉)759c07d2009-01-09 11:11:53 +00001822009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
183
184 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
185 FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
186 FT_Int32, to match with the flags for FT_Load_Glyph().
187 * src/cff/cffdrivr.c (cff_get_advances): Ditto.
188 * src/truetype/ttdriver.c (tt_get_advances): Ditto.
189 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
190 Ditto.
191 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
192 Ditto.
193
Suzuki, Toshiya (鈴木俊哉)68e16e02009-01-09 08:01:15 +00001942009-01-09 Daniel Zimmermann <netzimme@aol.com>
195
196 * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
Werner Lembergfc6d12a2009-01-11 10:55:45 +0000197 length check. From Savannah patch #6682.
Suzuki, Toshiya (鈴木俊哉)68e16e02009-01-09 08:01:15 +0000198
Werner Lemberg9d83d292009-01-09 07:58:08 +00001992009-01-09 Werner Lemberg <wl@gnu.org>
200
201 Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
202
203 * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
204 `count_offset' if it is zero (i.e., unused). Otherwise, the first
205 element of the structure which holds the data is erroneously
206 modified. Problem reported by Chi Nguyen <chint@necsv.com>.
207
Suzuki, Toshiya (鈴木俊哉)2dc10792009-01-09 05:07:15 +00002082009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
209
Suzuki, Toshiya (鈴木俊哉)a7c00b72009-01-09 07:21:16 +0000210 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
211 FT_Get_Advances): Extend the type of load_flags from FT_UInt to
212 FT_UInt32, to pass 32-bit flags on 16bit platforms.
213 * src/cff/cffdrivr.c (cff_get_advances): Ditto.
214 * src/truetype/ttdriver.c (tt_get_advances): Ditto.
215 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
216 Ditto.
217 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
218 Ditto.
219
2202009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
221
Suzuki, Toshiya (鈴木俊哉)2dc10792009-01-09 05:07:15 +0000222 * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
223 FT_Done_Face() cannot free all faces. If the list of the opened
224 faces includes broken face which FT_Done_Face() cannot free,
225 FT_Done_Library() retries FT_Done_Face() and it can fall into
226 an endless loop. See the discussion:
227 http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
228 http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
229
Werner Lemberga79de112009-01-07 08:27:37 +00002302009-01-07 Werner Lemberg <wl@gnu.org>
231
232 * docs/CHANGES: Document new key `a' in ftdiff.
233
Werner Lemberga86f1b92009-01-06 09:07:22 +00002342009-01-06 Werner Lemberg <wl@gnu.org>
235
Werner Lembergc3263722009-01-06 21:00:47 +0000236 * autogen.sh: Don't use GNUisms while calling sed. Problem reported
237 by Sean McBride.
238
2392009-01-06 Werner Lemberg <wl@gnu.org>
240
Werner Lemberga86f1b92009-01-06 09:07:22 +0000241 * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
242 and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen
243 <chint@necsv.com>.
244
Werner Lembergc6791152009-01-06 07:07:39 +00002452009-01-06 Diego Pettenò <flameeyes@gmail.com>
246
247 * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
248 AC_CANONICAL_TARGET and use $host_os only. A nice explanation for
249 this change can be found at
250 http://blog.flameeyes.eu/s/canonical-target.
251
252 From Savannah patch #6712.
253
Werner Lembergf2e33c12009-01-06 06:59:36 +00002542009-01-06 Sean McBride <sean@rogue-research.com>
255
256 * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
257
258 * src/base/ftmac.c: Remove some #undefs.
259
Werner Lemberg1ad384d2008-12-25 23:52:00 +00002602008-12-26 Werner Lemberg <wl@gnu.org>
261
262 Set `face_index' field in FT_Face for all font formats.
263
264 * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
265 sfnt/sfobjs.c (sfnt_init_face): Do it.
266
267 * docs/CHANGES: Document it.
268
Werner Lemberg66043b12008-12-22 18:09:48 +00002692008-12-22 Steve Grubb
270
271 * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
272 Patch from Savannah bug #25151.
273
Werner Lemberg478cca12008-12-21 17:38:23 +00002742008-12-21 Werner Lemberg <wl@gnu.org>
275
Werner Lemberg3c5ad952008-12-21 17:51:12 +0000276 * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
277 src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
278 s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for
279 errors in the bytecode interpreter only.
280
2812008-12-21 Werner Lemberg <wl@gnu.org>
282
Werner Lemberg478cca12008-12-21 17:38:23 +0000283 * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
284 arguments.
285 Fix return value for non-PFR fonts. Both problems reported by Chi
286 Nguyen <chint@necsv.com>.
287
Werner Lembergce33a312008-12-21 10:29:30 +00002882008-12-21 anonymous
289
290 FT_USE_MODULE declares things as:
291
292 extern const FT_Module_Class
293
294 (or similar for C++). However, the actual types of the variables
295 being declared are often different, e.g., FT_Driver_ClassRec or
296 FT_Renderer_Class. (Some are, indeed, FT_Module_Class.)
297
298 This works with most C compilers (since those structs begin with an
299 FT_Module_Class struct), but technically it's undefined behavior.
300
301 To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
302 paragraph 2:
303
304 All declarations that refer to the same object or function shall
305 have compatible type; otherwise, the behavior is undefined.
306
307 (And they are not compatible types.)
308
309 Most C compilers don't reject (or even detect!) code which has this
310 issue, but the GCC LTO development branch compiler does. (It
311 outputs the types of the objects while generating .o files, along
312 with a bunch of other information, then compares them when doing the
313 final link-time code generation pass.)
314
315 Patch from Savannah bug #25133.
316
317 * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
318
319 * builds/amiga/include/freetype/config/ftmodule.h,
320 include/freetype/config/ftmodule.h, */module.mk: Updated to declare
321 pass correct types to FT_USE_MODULE.
322
Werner Lembergb6fa8452008-12-21 09:46:31 +00003232008-12-21 Hongbo Ni <hongbo@njstar.com>
324
325 * src/autofit/aflatin.c (af_latin_hint_edges),
326 src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
Werner Lembergce33a312008-12-21 10:29:30 +0000327 (af_cjk_hint_edges): Protect against division by zero. This fixes
328 Savannah bug #25124.
Werner Lembergb6fa8452008-12-21 09:46:31 +0000329
Werner Lemberg05bf6872008-12-18 06:32:10 +00003302008-12-18 Werner Lemberg <wl@gnu.org>
331
332 * docs/CHANGES: Updated.
333
3342008-12-18 Bevan, David <dbevan@emtex.com>
335
336 Provide API for accessing embedding and subsetting restriction
337 information.
338
339 * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
340 FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
341 FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
342 FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
343 macros.
344 (FT_Get_FSType_Flags): New function declaration.
345
346 * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
347
348 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
349 (t42_keywords): Handle `FSType'.
350
351 * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
352
Werner Lembergc8c4cc82008-12-17 10:50:31 +00003532008-12-17 Werner Lemberg <wl@gnu.org>
354
Werner Lembergcfc514e2008-12-17 11:03:26 +0000355 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
356 macros so that copying the source code into an application works
357 out of the box.
358
3592008-12-17 Werner Lemberg <wl@gnu.org>
360
361 * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
Werner Lembergc8c4cc82008-12-17 10:50:31 +0000362 FT_GlyphSlot_Own_Bitmap to...
363 * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
364
365 * docs/CHANGES: Document it.
366
Werner Lembergb972a2a2008-12-11 08:55:48 +00003672008-12-10 Werner Lemberg <wl@gnu.org>
368
369 Generalize the concept of `tricky' fonts by introducing
370 FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
371 engine is necessary for correct rendering.
372
373 At the same time, slightly modify the behaviour of tricky fonts:
374 FT_LOAD_NO_HINTING is now ignored. To really force raw loading
375 of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
376 FT_LOAD_NO_AUTOHINT must be used.
377
378 Finally, tricky TrueType fonts always use the bytecode interpreter
379 even if the patented code is used.
380
381 * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
382 New macros.
383
384 * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
385 semantics as described above.
386
387 * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
388 code of ...
389 (tt_face_init): This function, now simplified and updated to new
390 semantics.
391
392 * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
393 fonts.
394
395 * docs/CHANGES: Document it.
396
Werner Lemberg1474f432008-12-09 06:51:56 +00003972008-12-09 Werner Lemberg <wl@gnu.org>
398
399 Really fix Savannah bug #25010: An SFNT font with neither outlines
400 nor bitmaps can be considered as containing space `glyphs' only.
401
402 * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
403 a `glyf' table is missing.
404
405 * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
406 `glyf' table but a non-zero `loca' entry.
407 (tt_loader_init): Handle missing `glyf' table.
408
409 * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
410
411 * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
412 nor bitmaps is scalable.
413
Werner Lemberg76fffcd2008-12-05 18:37:44 +00004142008-12-05 Werner Lemberg <wl@nu.org>
415
Werner Lemberge3b083c2008-12-05 22:50:40 +0000416 * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This
417 fixes Savannah bug #21190 which also provides a basic patch.
418
4192008-12-05 Werner Lemberg <wl@nu.org>
420
Werner Lemberg76fffcd2008-12-05 18:37:44 +0000421 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
422 0x100 instead of 0x10000; the latter value is already occupied by
423 FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos.
424
425
426 Handle SFNT with neither outlines nor bitmaps. This fixes Savannah
427 bug #25010.
428
429 * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
430 outlines nor bitmaps.
431
432 * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
433 is no table with glyphs.
434
435
436 * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
437 message.
438
Werner Lembergafe60162008-12-01 12:53:00 +00004392008-12-01 Werner Lemberg <wl@gnu.org>
440
441 GDEF tables need `glyph_count' too for validation. Problem reported
442 by Chi Nguyen <chint@necsv.com>.
443
444 * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
445 (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
446 `glyph_count'.
447
Werner Lemberg1a5d5612008-11-29 22:50:24 +00004482008-11-29 Werner Lemberg <wl@gnu.org>
449
450 * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
451 src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
452 src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
453 src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
454 src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
455 (Atari PureC).
456
Werner Lembergb2cb6ce2008-11-29 09:32:12 +00004572008-11-29 James Cloos <cloos@jhcloos.com>
458
Werner Lemberg8f9b7f52008-11-29 17:35:58 +0000459 * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
460 it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
461 in the /BlendDesignMap space).
462
4632008-11-29 James Cloos <cloos@jhcloos.com>
464
Werner Lembergb2cb6ce2008-11-29 09:32:12 +0000465 * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
466 whereas `design_points' is FT_Long*. Therefore, return blend rather
467 than design points.
468
Werner Lembergc7597ed2008-11-27 21:55:20 +00004692008-11-27 Werner Lemberg <wl@gnu.org>
470
471 * src/cff/cffparse.c (cff_parse_real): Handle more than nine
472 significant digits correctly. This fixes Savannah bug #24953.
473
Werner Lemberg0a263a82008-11-25 05:44:41 +00004742008-11-25 Daniel Zimmermann <netzimme@aol.com>
475
476 * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
477 before the NULL check. From Savannah patch #6681.
478
Werner Lemberg52cd0fc2008-11-24 08:15:05 +00004792008-11-24 Werner Lemberg <wl@gnu.org>
480
481 Fixes from the gnuwin32 port.
482
483 * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
484
485 * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
486
487 * src/psaux/psobjs.c (ps_table_add): Check `length'.
488
Werner Lemberg105721a2008-11-15 10:35:51 +00004892008-11-15 Werner Lemberg <wl@gnu.org>
490
491 * src/truetype/ttinterp.c (tt_default_graphics_state): The default
492 value for `scan_type' is zero, as confirmed by Greg Hitchcock from
493 Microsoft. Problem reported by Michal Nowakowski
494 <miszka@limes.com.pl>.
495
Werner Lemberg312043f2008-11-12 06:29:41 +00004962008-11-12 Tor Andersson <tor.andersson@gmail.com>
497
498 * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
499 This fixes Savannah bug #24819.
500
Werner Lemberge7aad022008-11-08 22:00:55 +00005012008-11-08 Werner Lemberg <wl@gnu.org>
502
503 * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
504 since OpenType version 1.5 has been released.
505
506 * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
507 TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
508 (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
509 TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
510 TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
511 TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
512 TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
513 TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
514 TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
515 TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
516 TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
517 TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
518 TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
519 macros for OpenType 1.5.
520
Werner Lembergfb4ddb22009-01-14 05:30:56 +00005212008-11-08 Wenlin Institute <wenlin@wenlin.com>
Werner Lembergb6192822008-11-08 07:28:39 +0000522
523 * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
524 slot->internal == NULL. Reported by Graham Asher.
525
Werner Lemberg95120922008-11-08 07:20:25 +00005262008-11-08 Werner Lemberg <wl@gnu.org>
527
528 * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
529 code so that memory allocation problems can be distinguished from
530 missing table entries. Reported by Graham Asher.
531 (GET_NAME): New macro.
532 (sfnt_load_face): Use it.
533
Werner Lembergc321b9b2008-11-05 14:34:29 +00005342008-11-05 Werner Lemberg <wl@gnu.org>
535
536 * devel/ftoption.h, include/freetype/config/ftoption.h
537 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
538 TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of
539 `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
540 Reported in bug #441638 of bugzilla.novell.com.
541
542 * docs/CHANGES: Document it.
543
Werner Lemberge0ed07d2008-11-04 10:37:30 +00005442008-11-03 Werner Lemberg <wl@gnu.org>
545
546 * src/type1/t1load.c (parse_subrs): Use an endless loop. There are
547 fonts (like HELVI.PFB version 003.001, used on OS/2) which define
548 some `subrs' elements more than once. Problem reported by Peter
549 Weilbacher <mozilla@weilbacher.org>.
550
Werner Lembergf31072c2008-10-15 20:03:37 +00005512008-10-15 Graham Asher <graham.asher@btinternet.com>
552
553 * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
554
5552008-10-15 David Turner <david@freetype.org>
Suzuki, Toshiya (鈴木俊哉)69222662008-10-15 15:22:39 +0000556
557 * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
558 meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
559
Werner Lemberg822604c2008-10-14 07:28:03 +00005602008-10-14 Werner Lemberg <wl@gnu.org>
561
562 * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
563 Suggested by Bram Tassyns in Savannah patch #6651.
564
Werner Lemberg174b8de2008-10-12 11:47:29 +00005652008-10-12 Graham Asher <graham.asher@btinternet.com>
566
567 * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
568 `underline_position'.
569
5702008-10-12 Werner Lemberg <wl@gnu.org>
571
572 * docs/CHANGES: Updated.
573
Suzuki, Toshiya (鈴木俊哉)1464bc52008-10-09 05:44:23 +00005742008-10-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
575
576 Fix Savannah bug #24468.
577
578 According to include/freetype/internal/ftobjs.h, the appropriate
579 type to interchange single character codepoint is FT_UInt32. It
580 should be distinguished from FT_UInt which can be 16bit integer.
581
582 * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
583 of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
584 (tt_cmap4_char_map_binary): Ditto.
585 (tt_cmap14_get_nondef_chars): Change the type of return value
586 from FT_UInt* to FT_UInt32*.
587
5882008-10-08 John Tytgat <John.Tytgat@esko.com>
Werner Lembergfa9d3992008-10-08 16:04:46 +0000589
590 Fix Savannah bug #24485.
591
592 * src/type1/t1load.c (parse_charstrings): Assure that we always have
593 a .notdef glyph.
594
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +00005952008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
596
Suzuki, Toshiya (鈴木俊哉)96d87be2008-10-05 03:08:10 +0000597 * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
598 * builds/mac/ftmac.c: Ditto.
599
6002008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
601
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000602 * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
Suzuki, Toshiya (鈴木俊哉)af48cb02008-10-05 02:53:06 +0000603 * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
604
6052008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
606
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000607 * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
608 the beginning of sfnt container.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000609 * src/sfnt/ttload.c (check_table_dir): Return
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000610 `SFNT_Err_Table_Missing' when sfnt table directory structure is
611 correct but essential tables for TrueType fonts (`head', `bhed' or
612 `SING') are missing. Other errors are returned by
613 SFNT_Err_Unknown_File_Format.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000614
615 * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000616 `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is
617 enabled only when old mac font support is configured.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000618
Suzuki, Toshiya (鈴木俊哉)72eb2702008-10-04 17:49:58 +00006192008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
620
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000621 * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
622 TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
623 the repeated calculations of these values in ftobjs.c and ftmac.c.
Suzuki, Toshiya (鈴木俊哉)21bd5162008-10-04 18:10:28 +0000624 * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
625 * src/base/ftmac.c: Ditto.
626 * builds/mac/ftmac.c: Ditto.
627
6282008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
629
Suzuki, Toshiya (鈴木俊哉)72eb2702008-10-04 17:49:58 +0000630 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
631 initialization of *is_sfnt_cid.
632
Werner Lemberg45489582008-10-04 11:39:03 +00006332008-10-04 Werner Lemberg <wl@gnu.org>
634
635 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
636 warnings.
637
Suzuki, Toshiya (鈴木俊哉)1137d042008-10-04 07:11:58 +00006382008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
639
640 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
641 (ft_lookup_PS_in_sfnt_stream): This.
Werner Lemberg45489582008-10-04 11:39:03 +0000642 (open_face_PS_from_sfnt_stream): New function. It checks whether
643 the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
644 font, then try to open a face for given face_index.
Suzuki, Toshiya (鈴木俊哉)1137d042008-10-04 07:11:58 +0000645 (Mac_Read_sfnt_Resource): Replace the combination of
646 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
647 `open_face_PS_from_sfnt_stream'.
648 * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
649 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
650 * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
651 `open_face_PS_from_sfnt_stream'.
652
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +00006532008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
654
Werner Lemberg45489582008-10-04 11:39:03 +0000655 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
656 FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
Suzuki, Toshiya (鈴木俊哉)bc2c4982008-10-03 12:28:52 +0000657
6582008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
659
Werner Lemberg45489582008-10-04 11:39:03 +0000660 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
661 MrC compiler of MPW is used. These compilers do not define the
662 macro __APPLE__ by themselves.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000663 * builds/unix/ftconfig.in: Ditto.
664 * builds/vms/ftconfig.h: Ditto.
Werner Lemberg45489582008-10-04 11:39:03 +0000665 * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
666 include ftmac.c if FreeType 2 is built by MPW.
667 * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
668 enable shared functions for ftmac.c if FreeType 2 is built by MPW.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000669
670 * builds/mac/ftmac.c: Include ftbase.h.
671 (memory_stream_close): Removed.
672 (new_memory_stream): Ditto.
673 (open_face_from_buffer): Removed. Use the implementation in
674 ftobjs.c.
675 (ft_lookup_PS_in_sfnt): Ditto.
676
677 * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
Werner Lemberg45489582008-10-04 11:39:03 +0000678 included part of ftbase.c, to share the functions in ftobjs.c. The
679 rule compiling ftmac.c separately is removed and the rule copying
680 ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000681 * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
682 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
683 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
684
Werner Lembergb17fb112008-10-02 10:17:32 +00006852008-10-02 Bram Tassyns <bramt@enfocus.be>
686
687 * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This
688 fixes Savannah bug #24430.
689
Werner Lemberg89a1a512008-10-02 06:48:10 +00006902008-10-02 Werner Lemberg <wl@gnu.org>
691
692 * builds/freetype.mk (BASE_H): Rename to...
693 (INTERNAL_H): This.
694 (FREETYPE_H): Updated.
695 * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
696 * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
697 * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
698 * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
699 * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
700 * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
701
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +00007022008-10-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
703
704 * src/base/ftbase.h: New file to declare the private utility
Werner Lembergcff15b02008-10-02 05:38:29 +0000705 functions shared by the sources of base modules. Currently,
706 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
707 share between ftobjs.c and ftmac.c.
708
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000709 * src/base/rule.mk: Add ftbase.h.
Werner Lembergcff15b02008-10-02 05:38:29 +0000710
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000711 * src/base/ftobjs.c: Include ftbase.h.
Werner Lembergcff15b02008-10-02 05:38:29 +0000712 (memory_stream_close): Build on any platform when old MacOS font
713 support is enabled.
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000714 (new_memory_stream): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000715 (open_face_from_buffer): Build on any platform when old MacOS font
716 support is enabled. The counting of the face in a font file is
717 slightly different between Carbon-dependent parser and Carbon-free
718 parser. They are merged with the platform-specific conditional.
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000719 (ft_lookup_PS_in_sfnt): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000720
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000721 * src/base/ftmac.c: Include ftbase.h.
722 (memory_stream_close): Removed.
723 (new_memory_stream): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000724 (open_face_from_buffer): Removed. Use the implementation in
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000725 ftobjs.c.
726 (ft_lookup_PS_in_sfnt): Ditto.
727
Werner Lembergce1bad02008-10-01 22:46:26 +00007282008-10-02 Werner Lemberg <wl@gnu.org>
729
730 * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
731 if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
732
Werner Lembergd03d8562008-10-01 22:39:05 +00007332008-10-01 Werner Lemberg <wl@gnu.org>
734
735 * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
736 (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
737 src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
738 (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
739 src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
740 Reported by Graham Asher.
741
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +00007422008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
743
Werner Lembergfce4e232008-10-01 04:41:46 +0000744 * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
Werner Lembergcff15b02008-10-02 05:38:29 +0000745 multi' on Mac OS X. If the macro $(ftmac_c) is defined,
Werner Lembergfce4e232008-10-01 04:41:46 +0000746 $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the
747 lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
748 ftmac.c.
Suzuki, Toshiya (鈴木俊哉)ef4a9152008-09-30 16:21:07 +0000749 * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
750 * builds/unix/configure.raw: Add procedure to set up appropriate
Werner Lembergfce4e232008-10-01 04:41:46 +0000751 value of $(ftmac_c) with the consideration of the availability of
752 Carbon framework.
Suzuki, Toshiya (鈴木俊哉)ef4a9152008-09-30 16:21:07 +0000753
7542008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
755
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +0000756 * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
Werner Lembergfce4e232008-10-01 04:41:46 +0000757 * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
758 function for MPW building. It is synchronized the condition to
759 include ftmac.c source into ftbase.c.
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +0000760
Werner Lembergb4c810e2008-09-22 11:28:46 +00007612008-09-22 Werner Lemberg <wl@gnu.org>
762
763 * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
764 cff_decoder_parse_charstrings): Handle (invalid)
765 `callothersubr' and `pop' instructions.
766
Werner Lembergbd0f71a2008-09-22 08:55:44 +00007672008-09-22 John Tytgat <John.Tytgat@esko.com>
768
769 Fix Savannah bug #24307.
770
771 * include/freetype/internal/t1types.h (CID_FaceRec),
772 src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
773
7742008-09-21 Werner Lemberg <wl@gnu.org>
775
776 * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
777 `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by
778 Stephan T. Lavavej <stl@nuwen.net>.
779
Suzuki, Toshiya (鈴木俊哉)815e1862008-09-21 18:33:57 +00007802008-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
781
782 * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
783 by jam.
784 * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
785 jam.
786
Werner Lemberg6874d852008-09-20 11:50:47 +00007872008-09-20 Werner Lemberg <wl@gnu.org>
788
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000789 * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values
790 passed to this function are already `normalized'. Problem reported
Werner Lembergbd0f71a2008-09-22 08:55:44 +0000791 by Stephan T. Lavavej <stl@nuwen.net>.
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000792
793 * docs/CHANGES: Document it.
794
7952008-09-20 Werner Lemberg <wl@gnu.org>
796
Werner Lemberg6874d852008-09-20 11:50:47 +0000797 * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
798 (FT_Outline_Decompose): Decorate with tracing messages.
799
800 * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
801 FT_DEBUG_LEVEL_TRACE.
802 [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
803 stdarg.h.
804
805 (FT_TRACE) [_STANDALONE_]: Remove.
806 (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
807 (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
808 (FT_ERROR) [_STANDALONE_]: Updated.
809
810 (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
811 Use FT_TRACE7.
812 (gray_dump_cells): Make it `static void'.
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000813 (gray_convert_glyph): Use FT_TRACE7.
Werner Lemberg6874d852008-09-20 11:50:47 +0000814
815 (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
816 ftoutln.c.
817
818 * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
819 FT_ERROR_BASE.
820
Werner Lemberg22e970a2008-09-20 12:20:21 +0000821 * docs/formats.txt: Updated.
822
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +00008232008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
824
Suzuki, Toshiya (鈴木俊哉)3afbee82008-09-19 17:46:01 +0000825 * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
826 CID-keyed font support.
827 * builds/mac/ftmac.c: Ditto.
828
8292008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
830
Werner Lemberg22e970a2008-09-20 12:20:21 +0000831 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
832 sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
833 `open_face_from_buffer' frees the passed buffer if it cannot open a
834 face from the buffer, so the caller must not free it.
Suzuki, Toshiya (鈴木俊哉)dec8e7b2008-09-19 16:47:01 +0000835
8362008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
837
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +0000838 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
839 for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
840 (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
Werner Lemberg22e970a2008-09-20 12:20:21 +0000841 table in sfnt table directory. It is used before loading TrueType
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +0000842 font driver.
843
Suzuki, Toshiya (鈴木俊哉)dec8e7b2008-09-19 16:47:01 +0000844 * docs/CHANGES: Add note about the current status of sfnt-wrapped
845 Type1 and sfnt-wrapped CID-keyed font support.
846
Werner Lemberg55c40632008-09-18 11:20:12 +00008472008-09-18 Werner Lemberg <wl@gnu.org>
848
849 * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
850 orthogonality (ft_free and ft_sfree could belong to different memory
851 pools). This fixes Savannah bug #24297.
852
Suzuki, Toshiya (鈴木俊哉)0c0db3e2008-09-18 04:36:56 +00008532008-09-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
854
855 * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
856 in ttags.h instead of numerical value 0x4F54544FL.
857
Werner Lemberg634df6e2008-09-16 07:25:31 +00008582008-09-16 Werner Lemberg <wl@gnu.org>
859
860 * src/cff/cffgload.h, src/cff/cffgload.c
861 (cff_decoder_set_width_only): Eliminate function call.
862
Werner Lemberged6c0e02008-09-15 07:49:40 +00008632008-09-15 George Williams <gww@silcom.com>
864
865 Fix Savannah bug #24179, reported by Bram Tassyns.
866
867 * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
868 of default values.
869
8702008-09-15 Werner Lemberg <wl@gnu.org>
871
872 * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
873 and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
874 prevent unconditional definition. This fixes Savannah bug #24241.
875
876 * src/psnames/pstables.h: Regenerated.
877
Werner Lembergb2116512008-09-12 16:27:48 +00008782008-09-13 Werner Lemberg <wl@gnu.org>
879
880 * autogen.sh, builds/unix/configure.raw,
881 include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
882 beautifying.
883
884 * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
885 include/freetype/ftlcdfil.h: Protect against FreeType 1.
886 Some other minor fixes.
887
888 * devel/ftoption.h: Synchronize with
889 include/freetype/config/ftoption.h.
890
Werner Lemberg8d3e6ec2008-09-11 08:29:14 +00008912008-09-11 Werner Lemberg <wl@gnu.org>
892
893 * src/base/ftbase.c: Include ftadvanc.c.
894
Werner Lembergb2116512008-09-12 16:27:48 +00008952008-09-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +0000896
897 * builds/unix/ftconfig.in: Duplicate the cpp computation of
898 FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
Werner Lembergb2116512008-09-12 16:27:48 +0000899 (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp
900 computation is disabled and the statically configured sizes are
901 used. This fixes Savannah bug #21250.
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +0000902
Werner Lembergb2116512008-09-12 16:27:48 +0000903 * builds/unix/configure.raw: Add the checks to compare the cpp
904 computation results of the bit length of int and long versus the
905 sizes detected by running `configure'. If the results are
906 different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
907 results.
908 New option --{enable|disable}-biarch-config is added to define or
909 undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +0000910
Werner Lembergb2116512008-09-12 16:27:48 +00009112008-09-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)8e296452008-09-05 03:21:21 +0000912
Werner Lembergb2116512008-09-12 16:27:48 +0000913 * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
914 ApplicationService framework is missing. Although this value is not
915 used in building of FreeType2, it is written in `freetype2.pc' and
916 `freetype-config'.
Suzuki, Toshiya (鈴木俊哉)8e296452008-09-05 03:21:21 +0000917
Werner Lembergb2116512008-09-12 16:27:48 +00009182008-09-01 david turner <david@freetype.org>
David Turner28534d62008-09-01 21:35:21 +0000919
Werner Lembergb2116512008-09-12 16:27:48 +0000920 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
921 index to mean `use default cached FT_Face's charmap'. This fixes
922 Savannah bug #22625.
923 * include/freetype/ftcache.h: Document it.
David Turner17cd6872008-09-02 02:34:29 +0000924
Werner Lembergb2116512008-09-12 16:27:48 +0000925
926 Make FT_MulFix an inlined function. This is done to speed up
David Turnerf47d2632008-09-02 02:21:58 +0000927 FreeType a little (on x86 3% when loading+hinting, 10% when
Werner Lembergb2116512008-09-12 16:27:48 +0000928 rendering, ARM savings are more important though). Disable this by
929 undefining FT_CONFIG_OPTION_INLINE_MULFIX.
David Turnerf47d2632008-09-02 02:21:58 +0000930
Werner Lembergb2116512008-09-12 16:27:48 +0000931 Use of assembler code can now be controlled with
932 FT_CONFIG_OPTION_NO_ASSEMBLER.
David Turner28534d62008-09-01 21:35:21 +0000933
Werner Lembergb2116512008-09-12 16:27:48 +0000934 * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
935 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
936 implementation.
937 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
938 implementation taken from `ftcalc.c'.
939 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
940 which is defined to the platform-specific assembler implementation
941 of FT_MulFix.
942 [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
943 (FT_MULFIX_INLINED): New macro.
David Turner28534d62008-09-01 21:35:21 +0000944
Werner Lembergb2116512008-09-12 16:27:48 +0000945 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
946 FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
947
948 * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
949
950 * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
951 FT_MULFIX_INLINED.
952
953
954 Add a new header named FT_ADVANCES_H declaring some new APIs to
955 extract the advances of one or more glyphs without necessarily
956 loading their outlines. Also provide `fast loaders' for the
957 TrueType, Type1, and CFF font drivers (more to come later).
958
959 * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
960
961 * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
962 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
963
964 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
965 `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
966 respectively.
967
968 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
969 ftadvanc.c.
970
971 * src/cff/cffdrivr.c (cff_get_advances): New function.
972 (cff_driver_class): Register it.
973
974 * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
975 (cff_decoder_parse_charstrings): Handle `width_only'.
976 (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
977
978 * src/cff/cffgload.h (cff_decoder): New element `width_only'.
979 (cff_decoder_set_width_only): New declaration.
980
981 * src/truetype/ttdriver.c (tt_get_advances): New function.
982 (tt_driver_class): Register it.
983
984 * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
985 (TT_Get_HMetrics, TT_Get_VMetrics): This.
986 Update callers.
987 * src/truetype/ttgload.h: Declare them.
988
989 * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
990 function.
991 * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
992
993
994 Add checks for minimum version of the `autotools' stuff.
995
996 * autogen.sh: Implement it.
997 (get_major_version, get_minor_version, get_patch_version,
998 compare_to_minimum_version, check_tool_version): New auxiliary
999 functions.
1000
1001 * README.CVS: Document it.
1002
10032008-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)7981fe22008-08-29 06:09:03 +00001004
1005 * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
1006 ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
1007
Werner Lemberg4dbf00a2008-08-28 16:12:48 +000010082008-08-28 Werner Lemberg <wl@gnu.org>
1009
1010 * src/type1/t1load.c (parse_encoding): Protect against infinite
1011 loop. This fixes Savannah bug #24150 (where a patch has been posted
1012 too).
1013
Werner Lemberga4cb0d92008-08-23 19:54:06 +000010142008-08-23 Werner Lemberg <wl@gnu.org>
1015
1016 * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
1017 (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug
1018 #24119.
1019
Werner Lembergb2116512008-09-12 16:27:48 +000010202008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)4c60bd92008-08-19 15:35:44 +00001021
Werner Lemberga4cb0d92008-08-23 19:54:06 +00001022 * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
1023 even if passed library or arguments are invalid. This fixes a bug
1024 that an uninitialized stream is freed when an invalid library handle
1025 is passed. Originally proposed by Mike Fabian, 2008/08/18 on
1026 freetype-devel.
Suzuki, Toshiya (鈴木俊哉)4c60bd92008-08-19 15:35:44 +00001027 (FT_Open_Face): Ditto (stream).
1028 (load_face_in_embedded_rfork): Ditto (stream2).
1029
Werner Lembergb2116512008-09-12 16:27:48 +000010302008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +00001031
Werner Lemberg77f73582008-08-19 04:53:02 +00001032 * src/base/ftmac.c: Add a fallback to guess the availability of the
1033 `ResourceIndex' type. It is used when built without configure
1034 (e.g., a build with Jam).
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +00001035 * builds/mac/ftmac.c: Ditto.
Werner Lemberg77f73582008-08-19 04:53:02 +00001036 * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
1037 explicitly, even if `ResourceIndex' is unavailable.
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +00001038
Werner Lembergb2116512008-09-12 16:27:48 +000010392008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +00001040
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +00001041 * builds/unix/configure.raw: In checking of Mac OS X features,
Werner Lemberg77f73582008-08-19 04:53:02 +00001042 all-in-one header file `Carbon.h' is replaced by the minimum
1043 header file `CoreServices.h', similar to current src/base/ftmac.c.
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +00001044
Werner Lembergb2116512008-09-12 16:27:48 +000010452008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +00001046
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +00001047 * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
Werner Lemberg77f73582008-08-19 04:53:02 +00001048 sub-header when its code_count is 0. Many Japanese Dynalab fonts
1049 include such an empty sub-header (code_count == 0, first_code == 0
1050 delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +00001051
Werner Lemberg7fd20182008-08-04 18:46:37 +000010522008-08-04 Werner Lemberg <wl@gnu.org>
1053
1054 * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes
1055 Savannah bug #23995.
1056
1057 * src/cid/cidload.c (parse_expansion_factor): New callback function.
1058 (cid_field_records): Use it for `ExpansionFactor'.
1059 * src/cod/cidtoken.h: Handle `ForceBold' keyword.
1060 Don't handle `ExpansionFactor'.
1061
Werner Lembergeba3eee2008-08-04 15:54:24 +000010622008-08-04 Bram Tassyns <bramt@enfocus.be>
1063
1064 * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
1065 resulted in incorrect scaling. This fixes Savannah bug #23973.
1066
Werner Lemberg17e69012008-08-04 05:45:41 +000010672008-08-04 Werner Lemberg <wl@gnu.org>
1068
1069 Be more tolerant w.r.t. invalid entries in SFNT table directory.
1070
1071 * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
1072 adjust table count.
1073 Add more trace messages.
1074 (tt_face_load_font_dir): Updated.
1075
Werner Lemberg806f5932008-07-30 05:28:37 +000010762008-07-30 Werner Lemberg <wl@gnu.org>
1077
1078 * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
1079 assume that the first argument on the stack is the bottom-most
1080 element. Two reasons:
1081
1082 o According to people from Adobe it is missing in the Type 2
1083 specification that pushing of additional, superfluous arguments
1084 on the stack is prohibited.
1085
1086 o Acroread in general handles fonts differently, namely by popping
1087 the number of arguments needed for a particular operand (as a PS
1088 interpreter would do). In case of buggy fonts this causes a
1089 different interpretation which of the elements on the stack are
1090 superfluous and which not.
1091
1092 Since there are CFF subfonts (embedded in PDFs) which rely on
1093 Acroread's behaviour, FreeType now does the same.
1094
Werner Lemberg7f30c0c2008-07-27 05:43:59 +000010952008-07-27 Werner Lemberg <wl@gnu.org>
1096
1097 Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This
Werner Lemberg57586882009-01-06 09:40:22 +00001098 fixes Savannah bug #23940.
Werner Lemberg7f30c0c2008-07-27 05:43:59 +00001099
1100 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
1101 (EXTRA_GLYPH_LIST_SIZE): This.
1102 Increase by 2.
1103 (ft_wgl_extra_unicodes): Rename to...
1104 (ft_extra_glyph_unicodes): This.
1105 Add two code values.
1106 (ft_wgl_extra_glyph_names): Rename to...
1107 (ft_extra_glyph_names): This.
1108 Add two glyphs.
1109 (ft_wgl_extra_glyph_name_offsets): Rename to...
1110 (ft_extra_glyph_name_offsets): This.
1111 Add two offsets.
1112
1113 (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
1114 (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
1115 Updated.
1116 (ps_unicodes_init): Updated.
1117
Werner Lembergbdcfddc2008-07-26 21:22:20 +000011182008-07-26 Werner Lemberg <wl@gnu.org>
1119
1120 * src/cff/cffgload.c (cff_decoder_prepare,
1121 cff_decoder_parse_charstrings): Improve debug output.
1122
Werner Lemberge75da452008-07-22 20:59:59 +000011232008-07-22 Martin McBride <mmcbride@emtex.com>
1124
1125 * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
1126 tt_cmap4_char_map_binary): Handle fonts which treat the last segment
1127 specially. According to the specification, such fonts would be
1128 invalid but acroread accepts them.
1129
Werner Lemberg50997cd2008-07-16 21:03:40 +000011302008-07-16 Jon Foster <Jon.Foster@cabot.co.uk>
1131
1132 * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
1133
1134 * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
1135
1136 * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
1137 Fix compiler warning.
1138
Werner Lemberg3d2f06f2008-07-16 06:13:34 +000011392008-07-16 Werner Lemberg <wl@gnu.org>
1140
Werner Lemberge75da452008-07-22 20:59:59 +00001141 Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
Werner Lemberg3d2f06f2008-07-16 06:13:34 +00001142
1143 * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
1144 Invert sids table only if `pure_cff' is set.
1145 * src/cff/cffload.h: Udpated.
1146
1147 * src/cff/cffobjs.c (cff_face_init): Updated.
Werner Lembergbd48d352008-07-16 07:05:11 +00001148 Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
Werner Lemberg3d2f06f2008-07-16 06:13:34 +00001149
Werner Lemberge75da452008-07-22 20:59:59 +00001150 * docs/CHANGES: Updated.
1151
Werner Lemberg6b19e092008-07-09 06:20:12 +000011522008-07-09 Werner Lemberg <wl@gnu.org>
1153
1154 * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
1155 where num_locations < num_glyphs. Problem reported by Ding Li.
1156
Werner Lemberg4e33f9e2008-07-05 06:35:28 +000011572008-07-05 Werner Lemberg <wl@gnu.org>
1158
1159 Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
Werner Lembergca6fc732008-07-05 06:36:39 +00001160 newer. This fixes Savannah bug #23648.
Werner Lemberg4e33f9e2008-07-05 06:35:28 +00001161
1162 * configure: zsh doesn't like ${1+"$@"}.
1163 Update needed GNU make version.
1164 * builds/toplevel.mk: Check for `$(eval ...)'.
1165 * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
1166 it.
1167
Werner Lemberg71b8f3f2008-07-04 07:22:06 +000011682008-07-04 Werner Lemberg <wl@gnu.org>
1169
1170 * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
1171 pixel, only check for dropouts if neither start nor end point lies
1172 on a pixel center. This fixes Savannah bug #23762.
1173
Werner Lembergbe54a682008-06-29 07:43:41 +000011742008-06-29 Werner Lemberg <wl@gnu.org>
1175
1176 * Version 2.3.7 released.
1177 =========================
1178
1179
1180 Tag sources with `VER-2-3-7'.
1181
1182 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1183 version number to 2.3.7.
1184
1185 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1186 builds/win32/visualc/freetype.dsp,
1187 builds/win32/visualc/freetype.vcproj,
1188 builds/win32/visualce/index.html,
1189 builds/win32/visualce/freetype.dsp,
1190 builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
1191
1192 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
1193
1194 * builds/unix/configure.raw (version_info): Set to 9:18:3.
1195
1196 * docs/release: Updated.
1197
Werner Lemberg4e7d9842008-06-27 22:26:11 +000011982008-06-28 Werner Lemberg <wl@gnu.org>
1199
Werner Lembergbe54a682008-06-29 07:43:41 +00001200 * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
Werner Lemberg4e7d9842008-06-27 22:26:11 +00001201 * src/ftcalc.c: Here. This fixes Savannah bug #23729.
1202
Werner Lemberga741c6f2008-06-27 06:58:48 +000012032008-06-27 Werner Lemberg <wl@gnu.org>
1204
1205 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
1206 Horizontal_Gray_Sweep_Drop): Test for intersections which
1207 degenerate to a single point can be ignored; this has been confirmed
1208 by Greg Hitchcock from Microsoft. (This was commented out code.)
1209
Werner Lemberg8a9b6392008-06-26 19:56:51 +000012102008-06-26 Werner Lemberg <wl@gnu.org>
1211
1212 Improve navigation in API reference.
1213
1214 * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
1215 (html_header_6): This.
1216 (html_header_3, html_header_3i, html_header_4, html_header_5,
1217 html_header_5t): New strings.
1218 (toc_footer_start, toc_footer_end): New strings.
1219 (HtmlFormatter::html_header): Updated.
1220 (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
1221 New strings.
1222 (HtmlFormatter::index_enter): Use `html_index_header'.
1223 (HtmlFormatter::index_exit): Print `html_footer'.
1224 (HtmlFormatter::toc_enter): Use `html_toc_header'.
1225 (HtmlFormatter::toc_exit): Print proper footer.
1226
1227 Convert ~ to non-breakable space.
1228
1229 * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
1230 Update header files accordingly.
1231
Werner Lembergb2116512008-09-12 16:27:48 +000012322008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001233
Werner Lemberg8a9b6392008-06-26 19:56:51 +00001234 * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
Werner Lemberge172c332008-06-25 22:21:42 +00001235 and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5
1236 bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
1237 ResourceIndex type definition. The macro does not inform the type
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001238 availability.
1239 * src/base/ftmac.c: More parentheses are inserted to clarify the
Werner Lemberge172c332008-06-25 22:21:42 +00001240 conditionals to disable legacy APIs in `10.5 and later' cases. If
1241 HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001242
Werner Lemberg5563bea2008-06-24 05:44:28 +000012432008-06-24 Werner Lemberg <wl@gnu.org>
1244
Werner Lemberg830846e2008-07-27 06:27:21 +00001245 * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
1246 mode.
Werner Lembergce8853a2008-06-24 11:19:03 +00001247
1248 * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
1249 Draw_Sweep): No-dropout mode is value 2, not value 0.
1250 (Draw_Sweep): Really skip dropout handling for no-dropout mode.
1251
12522008-06-24 Werner Lemberg <wl@gnu.org>
1253
Werner Lemberg5563bea2008-06-24 05:44:28 +00001254 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
1255 if it consists of one point only. Based on a patch from Savannah
1256 bug #23683 (from John Tytgat).
1257
Werner Lemberg745a4f42008-06-22 22:41:24 +000012582008-06-22 Werner Lemberg <wl@gnu.org>
1259
1260 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
1261 with IS_HINTED.
1262
1263 * docs/CHANGES: Updated.
1264
Werner Lembergb2116512008-09-12 16:27:48 +000012652008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +00001266
Werner Lemberg745a4f42008-06-22 22:41:24 +00001267 * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
1268 but LDFLAGS does not, import it to LDFLAGS. The option is used to
1269 specify non-default SDK on Mac OS X (e.g., universal binary SDK for
1270 Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
1271 recommends to add the option only to CFLAGS, LDFLAGS should include
1272 it because libfreetype.la is built with -no-undefined. This fixes a
1273 bug reported by Ryan Schmidt in MacPorts,
1274 http://trac.macports.org/ticket/15331.
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +00001275
Werner Lemberg5df5dbb2008-06-22 13:40:08 +000012762008-06-21 Werner Lemberg <wl@gnu.org>
1277
1278 Enable access to the various dropout rules of the B&W rasterizer.
1279 Pass dropout rules from the TT bytecode interpreter to the
Werner Lemberg959cb8e2008-06-25 20:58:33 +00001280 rasterizer.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +00001281
1282 * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
1283 FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
1284
1285 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
1286 Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
1287 OpenType specification.
1288 Fix mode 4 computation.
1289 (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
1290
Werner Lemberg959cb8e2008-06-25 20:58:33 +00001291 * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
1292 mode to FT_OUTLINE_XXX flags.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +00001293
1294 * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
1295
Werner Lembergcd6dcca2008-06-19 06:20:21 +000012962008-06-19 Werner Lemberg <wl@gnu.org>
1297
Werner Lemberg5b631d82008-06-19 16:23:43 +00001298 * src/cff/cffobjs.c (cff_face_init): Compute final
1299 `dict->units_per_em' value before assigning it to
Werner Lembergbe54a682008-06-29 07:43:41 +00001300 `cffface->units_per_EM'. Otherwise, CFFs without subfonts are
Werner Lemberg5b631d82008-06-19 16:23:43 +00001301 scaled incorrectly if the font matrix is non-standard. This fixes
1302 Savannah bug #23630.
1303
1304 * docs/CHANGES: Updated.
1305
13062008-06-19 Werner Lemberg <wl@gnu.org>
1307
Werner Lembergbe54a682008-06-29 07:43:41 +00001308 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
1309 from 2008-06-19.
Werner Lembergcd6dcca2008-06-19 06:20:21 +00001310
Werner Lembergd57a5e92008-06-18 06:16:39 +000013112008-06-18 Werner Lemberg <wl@gnu.org>
1312
1313 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
1314 Reported by Peter Weilbacher <mozilla@weilbacher.org>.
1315
1316 * docs/CHANGES: Updated.
1317
Werner Lembergca947c22008-06-16 05:33:51 +000013182008-06-15 George Williams <gww@silcom.com>
1319
1320 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
1321 `valid->extra2' to 1. This is undocumented in the OpenType 1.5
1322 specification.
1323
Werner Lembergad83e052008-06-15 11:06:12 +000013242008-06-15 Werner Lemberg <wl@gnu.org>
1325
1326 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
1327 from clobbering. Patch from Savannah bug report #23556.
1328
1329 * docs/CHANGES: Document it.
1330
Werner Lemberg102bb832008-06-10 04:57:19 +000013312008-06-10 Werner Lemberg <wl@gnu.org>
1332
Werner Lembergb796adb2008-06-10 17:15:35 +00001333 * autogen.sh: Add option `--install' to libtoolize.
1334
13352008-06-10 Werner Lemberg <wl@gnu.org>
1336
Werner Lemberg6174e172008-06-10 05:58:25 +00001337 * Version 2.3.6 released.
1338 =========================
1339
1340
1341 Tag sources with `VER-2-3-6'.
1342
1343 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1344 version number to 2.3.6.
1345
1346 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1347 builds/win32/visualc/freetype.dsp,
1348 builds/win32/visualc/freetype.vcproj,
1349 builds/win32/visualce/index.html,
1350 builds/win32/visualce/freetype.dsp,
1351 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
1352
1353 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
1354
1355 * builds/unix/configure.raw (version_info): Set to 9:17:3.
1356
1357
1358 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
1359 and `scale_y'.
1360 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
1361
1362
1363 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
1364 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
1365
13662008-06-10 Werner Lemberg <wl@gnu.org>
1367
Werner Lemberg102bb832008-06-10 04:57:19 +00001368 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
1369 `clazz->done_face'.
1370
Werner Lemberg630e24d2008-06-09 21:20:18 +000013712008-06-09 VaDiM <s_sliva@rambler.ru>
1372
1373 Support debugging on WinCE. From Savannah patch #6536; this fixes
1374 bug #23497.
1375
1376 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
1377 as a replacement for OutputDebugStringA (which WinCE doesn't have).
1378 Update all callers.
1379 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
1380 environment variables.
1381
Werner Lemberga984fda2008-06-09 21:02:13 +000013822008-06-09 Werner Lemberg <wl@gnu.org>
1383
1384 * README.CVS: Updated.
1385
Werner Lemberg26bd7a22008-06-09 21:27:17 +00001386 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
1387 for newer versions of autoconf and friends.
Werner Lemberga984fda2008-06-09 21:02:13 +00001388
Werner Lemberg7cb9ec02008-06-09 20:49:29 +000013892008-06-08 Werner Lemberg <wl@gnu.org>
1390
1391 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
1392 `private_len' unsigned.
1393
1394 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
1395 it as such.
1396 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
1397
1398
1399 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
1400
1401
1402 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
1403 for sane value.
1404 Fix typo.
1405
1406
1407 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
1408
1409
1410 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
1411 `last_point'.
1412
1413
1414 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
1415 `maxTwilightPoints'.
1416
Werner Lembergd77e7222008-06-05 22:07:19 +000014172008-06-06 Werner Lemberg <wl@gnu.org>
1418
1419 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
1420 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
1421
Werner Lemberg4c3cc762008-06-03 20:53:49 +000014222008-06-03 Werner Lemberg <wl@gnu.org>
1423
1424 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
1425 FT_Pointer. Reported by Ian Britten <britten@caris.com>.
1426
Werner Lemberg8e3539b2008-06-02 13:53:54 +000014272008-06-02 Werner Lemberg <wl@gnu.org>
1428
1429 Emit header info for defined FreeType objects in reference.
1430
1431 * src/tools/docmaker/content.py (re_header_macro): New regexp.
1432 (ContentProcessor::__init__): Initialize new dictionary `headers'.
1433 (DocBlock::__init__): Collect macro header definitions.
1434
1435 * src/tools/docmaker/tohtml.py (header_location_header,
1436 header_location_footer): New strings.
1437 (HtmlFormatter::__init__): Pass `headers' dictionary.
1438 (HtmlFormatter::print_html_field): Don't emit paragraph tags.
1439 (HtmlFormatter::print_html_field_list): Emit empty paragraph.
1440 (HtmlFormatter::block_enter): Emit header info.
1441
14422008-06-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg7493ea12008-06-02 07:24:36 +00001443
1444 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
1445 FT_INCREMENTAL_H): Added.
1446
Werner Lembergc94fa662008-05-27 23:24:07 +000014472008-05-28 Werner Lemberg <wl@gnu.org>
1448
Werner Lembergde0d0052008-05-28 21:51:15 +00001449 * src/tools/docmaker/sources.py (SourceBlock::__init__): While
1450 looking for markup tags, return immediately as soon a single one is
1451 found.
1452
14532008-05-28 Werner Lemberg <wl@gnu.org>
1454
Werner Lembergc94fa662008-05-27 23:24:07 +00001455 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
1456 original, unscaled input values. Confirmed by Greg Hitchcock from
1457 Microsoft.
1458
Werner Lemberg35a90b72008-05-27 18:16:03 +000014592008-05-27 Werner Lemberg <wl@gnu.org>
1460
1461 * src/tools/docmaker/tohtml.py (block_footer_start,
1462 block_footer_middle): Beautify output.
1463
Werner Lembergc9381312008-05-25 12:19:34 +000014642008-05-25 Werner Lemberg <wl@gnu.org>
1465
1466 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
1467 trying to render into a zero-width/height bitmap, not an error code.
1468
Werner Lembergffa49652008-05-25 12:43:57 +00001469 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
1470 of the graphics state for subglyphs to...
1471 (TT_Hint_Glyph): This function.
1472 Hinting instructions for a composite glyph apparently refer to the
1473 just hinted subglyphs, not the unhinted, unscaled outline. This
1474 seems to fix Savannah bugs #20973 and (at least partially) #23310.
1475
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +000014762008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1477
1478 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
Werner Lemberg355f1b12008-05-22 06:12:23 +00001479 `aface' is returned by FT_New_Face_From_FOND(). The patch was
1480 proposed by an anonymous reporter of Savannah bug #23204.
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +00001481
Werner Lemberg16dc51f2008-05-18 17:36:15 +000014822008-05-18 Werner Lemberg <wl@gnu.org>
1483
Werner Lemberg5e8a3682008-05-18 21:49:02 +00001484 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
1485 correction for pixel boundary. Without this patch, the effect can
1486 be cumulative under certain circumstances, making glyphs taller and
1487 taller after each call. This fixes Savannah bug #19976.
1488
14892008-05-18 Werner Lemberg <wl@gnu.org>
1490
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001491 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
1492 This fixes Savannah bug #23280.
1493
1494 * docs/CHANGES: Updated.
1495
Werner Lembergb2116512008-09-12 16:27:48 +000014962008-05-18 David Turner <david@freetype.org>
David Turnera92cec52008-05-18 14:08:57 +00001497
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001498 * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
1499 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
1500 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
1501 declarations non-global.
David Turnera92cec52008-05-18 14:08:57 +00001502
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001503 * src/type1/t1load.c: Add missing comment.
David Turnera92cec52008-05-18 14:08:57 +00001504
Werner Lemberg89d64fa2008-05-17 20:06:13 +000015052008-05-17 Sam Hocevar <samh>
1506
1507 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
1508 glyphs correctly. Patch from Savannah bug #23277.
1509
Werner Lemberga2f17cc2008-05-17 10:01:45 +000015102008-05-16 Werner Lemberg <wl@gnu.org>
1511
1512 * docs/CHANGES: Updated.
1513
15142008-05-16 Sergey Tolstov <stolstov@esri.com>
1515
1516 Improve support for WGL4 encoded fonts.
1517
1518 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
1519 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
1520 ft_wgl_extra_glyph_name_offsets): New arrays.
1521 (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
1522 (ps_unicodes_init): Use them to add additional Unicode mappings.
1523
Werner Lemberg504645e2008-05-14 23:26:20 +000015242008-05-15 Werner Lemberg <wl@gnu.org>
1525
Werner Lembergbcc750e2008-05-16 04:50:00 +00001526 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1527 <op_closepath>: `closepath' without a path is a no-op, not an error
1528 (cf. the PS reference manual).
1529
1530 Reported by Martin McBride.
1531
15322008-05-15 Werner Lemberg <wl@gnu.org>
1533
Werner Lembergbcfcc712008-05-15 09:14:39 +00001534 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
1535
15362008-05-15 Werner Lemberg <wl@gnu.org>
1537
Werner Lemberg504645e2008-05-14 23:26:20 +00001538 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
Werner Lemberg2d738992008-05-14 23:33:53 +00001539 which contains a single but empty entry. This is technically
1540 invalid (since it must end with `return'), but...
Werner Lemberg504645e2008-05-14 23:26:20 +00001541
1542 Reported by Martin McBride.
1543
Werner Lemberge6e6ead2008-05-14 23:05:38 +000015442008-05-14 Werner Lemberg <wl@gnu.org>
1545
1546 Finish fix of scaling bug of CID-keyed CFF subfonts.
1547
1548 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
1549 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
1550 functions.
1551
1552 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
1553 provide global hinting data for both the top-font and all subfonts
1554 (with proper scaling).
1555
1556 * src/cff/cffobjs.c (cff_make_private_dict): New function, using
1557 code from `cff_size_init'.
1558 (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
1559 Use CFF_Internal and handle subfonts.
1560 (cff_face_init): Handle top-dict and subfont matrices correctly;
1561 apply some heuristic in case of unlikely matrix concatenation
1562 results. This has been discussed with people from Adobe (thanks
1563 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
1564 and not correct.
1565
1566 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
1567
1568 * src/cff/cffgload.c (cff_builder_init): Updated.
1569 (cff_decoder_prepare): Handle hints globals for subfonts.
1570 Update all callers.
1571 (cff_slot_load): Handling scaling of subfonts properly.
1572
1573 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
1574 (cff_parse_font_matrix): Use it.
1575
1576 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
1577 FT_ULong.
1578
1579 * docs/CHANGES: Document it.
1580
Werner Lembergfb572282008-05-13 12:10:04 +000015812008-05-13 Werner Lemberg <wl@gnu.org>
1582
1583 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
1584 Handle case `face_index < 0'.
1585 * docs/CHANGES: Document it.
1586
Werner Lemberg551dd3c2008-05-04 13:37:38 +000015872008-05-04 Werner Lemberg <wl@gnu.org>
1588
1589 First steps to fix the scaling bug of CID-keyed CFF subfonts,
1590 reported by Ding Li on 2008/03/28 on freetype-devel.
1591
1592 * src/base/cff/cffparse.c (power_tens): New array.
1593 (cff_parse_real): Rewritten to introduce a fourth parameter which
1594 returns the `scaling' of the real number so that we have no
1595 precision loss. This is not used yet.
1596 Update all callers.
1597 (cff_parse_fixed_thousand): Replace with...
1598 (cff_parse_fixed_scaled): This function. Update all callers.
1599
Werner Lemberg6d29f0f2008-05-03 15:54:15 +000016002008-05-03 Werner Lemberg <wl@gnu.org>
1601
1602 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
1603 transformation since it recursively calls FT_Load_Glyph. This fixes
1604 Savannah bug #23143.
1605
Werner Lembergde9479a2008-04-26 12:52:57 +000016062008-04-26 Werner Lemberg <wl@gnu.org>
1607
1608 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
1609 and `scale_y' as obsolete since they aren't used.
1610 * src/psaux/psobjs.c (t1_builder_init): Updated.
1611
1612 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
1613 obsolete since they aren't used.
1614 * src/cff/cffgload.c (cff_builder_init): Updated.
1615
Werner Lemberg4ebc8902008-04-13 22:06:12 +000016162008-04-14 Werner Lemberg <wl@gnu.org>
1617
1618 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
1619 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
1620 bug #22909.
1621
Werner Lemberg048b7562008-04-13 05:55:36 +000016222008-04-13 Werner Lemberg <wl@gnu.org>
1623
1624 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
1625 integer part is zero.
1626
Werner Lembergc32e83f2008-04-01 06:07:37 +000016272008-04-01 Werner Lemberg <wl@gnu.org>
1628
1629 Fix compilation with g++ 4.1 (with both `single' and `multi'
1630 targets).
1631
1632 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
1633 which is crossed by a `goto'.
1634
1635 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
1636
Werner Lemberg210d6182008-04-01 05:55:48 +000016372008-03-31 Werner Lemberg <wl@gnu.org>
1638
1639 Fix support for subsetted CID-keyed CFFs.
1640
1641 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
1642 FT_IS_CID_KEYED): New macros.
1643
1644 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
1645 maximum CID value in CID-keyed CFFs.
1646 Handle FT_FACE_FLAG_CID_KEYED flag.
1647
1648 * docs/CHANGES: Document it.
1649
1650
1651 Fix CFF font matrix calculation and improve precision.
1652
1653 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
1654 part is zero.
1655 (cff_parse_font_matrix): Simplify computation of `units_per_em';
1656 this prevents overflow also.
1657
1658
1659 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
1660
1661 * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
1662 (cid_get_ros): New function.
1663 (cid_service_cid_info): New service structure.
1664 (cid_services): Register it.
1665
Werner Lemberga56e5262008-03-23 14:53:44 +000016662008-03-23 Werner Lemberg <wl@gnu.org>
1667
1668 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
1669
1670 * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
1671 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
1672
Werner Lemberg85751172008-03-21 07:16:00 +000016732008-03-21 Laurence Darby <ldarby>
1674
1675 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
1676 Savannah bug #22675.
1677
Werner Lemberg3863c952008-03-13 06:38:37 +000016782008-03-13 Derek Clegg <dclegg@apple.com>
1679
1680 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
1681 Patch from Savannah bug #22541.
1682
Werner Lembergfc293932008-03-03 08:08:12 +000016832008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
1684
1685 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
1686 tt_cmap14_find_variant): Return correct value.
1687 (tt_cmap14_variant_chars): Fix check for `di'.
1688
Werner Lemberg5057e362008-02-29 07:23:02 +000016892008-02-29 Wermer Lemberg <wl@gnu.org>
1690
1691 * docs/CHANGES: Updated.
1692
Werner Lemberg7faa1552008-02-29 07:14:38 +000016932008-02-29 Wolf
1694
1695 Add build support for symbian platform. From Savannah bug #22440.
1696
1697 * builds/symbian/*: New files.
1698
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +000016992008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1700
Werner Lemberg9b9d3342008-02-21 23:22:06 +00001701 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
1702 synthesis. For any face of a specified FOND, always the name for
1703 the first face was used. Except of a FOND that refers multiple
1704 Type1 font files, wrong synthesized font names are not used at all,
1705 so this is an invisible bug. A few limit checks are added too.
Suzuki, Toshiya (鈴木俊哉)6cb2faa2008-02-21 18:46:07 +00001706
1707 * builds/mac/ftmac.c: Ditto.
1708
17092008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1710
Werner Lemberg31093cc2008-02-21 17:10:04 +00001711 * builds/unix/configure.raw: Split compiler option to link Carbon
1712 frameworks to one option for CoreServices framework and another
1713 option for ApplicationServices framework. The split options can be
1714 managed by GNU libtool to avoid unrequired duplication when FreeType
1715 is linked with other applications. Suggested by Daniel Macks,
1716 Savannah bug #22366.
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +00001717
Werner Lemberg28464c42008-02-18 20:34:42 +000017182008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
1719
1720 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
1721 from Savannah bug #22356.
1722
Werner Lemberg44c655b2008-02-17 08:22:08 +000017232008-02-17 Jonathan Blow <jon@number-none.com>
1724
1725 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1726 Check for valid callback pointers.
1727
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +000017282008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1729
1730 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
1731 handle by its value instead of ResError(), fix provided by Deron
Werner Lembergc903f2f2008-02-17 08:23:04 +00001732 Kazmaier. According to the Resource Manager Reference,
1733 GetResource(), Get1Resource(), GetNamedResource(),
1734 Get1NamedResource() and RGetResource() set noErr but return NULL
1735 handle when they can not find the requested resource. These
1736 functions never return undefined values, so it is sufficient to
1737 check if the handle is not NULL.
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +00001738
1739 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
1740
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +000017412008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1742
1743 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
Werner Lembergaa722df2008-02-14 10:46:40 +00001744 inclusion styles. Now it always includes src/base/ftmac.c;
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00001745 builds/mac/ftmac.c is never included in any configuration.
Werner Lembergaa722df2008-02-14 10:46:40 +00001746
1747 * builds/unix/configure.raw: Print warning if configure is executed
1748 with options to specify Carbon functionalities explicitly.
1749
1750 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00001751 included automatically and manual replacement is required.
1752
Werner Lemberg744dd452008-02-11 08:22:40 +000017532008-02-11 Werner Lemberg <wl@gnu.org>
1754
1755 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
1756 (dos_setup), builds/freetype.mk (clean_project_dos,
1757 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
1758 Murdoch.
1759
Werner Lemberg4c933992008-01-18 05:32:55 +000017602008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
1761
1762 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
1763 mention intra-pixel algorithm.
1764
1765 * include/freetype/freetype.h (FT_Render_Mode): Mention that
1766 FT_Library_SetLcdFilter can be used to reduce fringes.
1767
Werner Lemberg1ddd1b72008-01-16 06:58:54 +000017682008-01-16 Werner Lemberg <wl@gnu.org>
1769
1770 * src/raster/ftraster.c (ft_black_render): Check `outline' before
1771 using it. Reported by Allan Yang.
1772
Werner Lembergeca1f272008-01-12 07:46:09 +000017732008-01-12 Werner Lemberg <wl@gnu.org>
1774
1775 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
1776
17772008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
1778
1779 * src/raster/ftraster.c (ft_black_init)
1780 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
1781
Werner Lembergbf391cb2008-01-10 08:47:08 +000017822008-01-10 Werner Lemberg <wl@gnu.org>
1783
1784 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
1785 where the number of contours in a simple glyph is zero (and which
1786 does contain an entry in the `glyf' table). This fixes Savannah bug
1787 #21990.
1788
Suzuki, Toshiya (鈴木俊哉)75696862008-01-04 01:43:23 +000017892008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1790
1791 Formatting suggested by Sean McBride.
1792
1793 * builds/mac/ftmac.c: Formatting (tab expanded).
1794 * src/autofit/afindic.c: Ditto.
1795 * src/base/ftcid.c: Ditto.
1796 * src/base/ftmac.c: Ditto.
1797
Werner Lembergd2e15732007-12-30 23:49:14 +000017982007-12-30 Werner Lemberg <wl@gnu.org>
1799
1800 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
1801 correctly.
1802
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +000018032007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1804
1805 Improvement of POSIX resource-fork accessor to load unsorted
Werner Lembergd2e15732007-12-30 23:49:14 +00001806 references in a resource. In HelveLTMM (resource-fork PostScript
1807 Type1 font bundled with Mac OS X since 10.3.x), the appearance order
1808 of PFB chunks is not sorted; sorting the chunks by reference IDs is
1809 required.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001810
Werner Lembergd2e15732007-12-30 23:49:14 +00001811 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
1812 type to store a pair of reference ID and offset to the chunk.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001813
Werner Lembergd2e15732007-12-30 23:49:14 +00001814 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
1815 sort FT_RFork_Ref by their reference IDs.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001816
Werner Lembergd2e15732007-12-30 23:49:14 +00001817 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
1818 sorted by reference ID.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001819
Werner Lembergd156cab2007-12-14 07:48:32 +000018202007-12-14 Werner Lemberg <wl@gnu.org>
1821
1822 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
1823 division too early; otherwise the most significant digit(s) of the
1824 final result are lost as the value is truncated to an integer. This
1825 fixes Savannah bug #21794 (where the patch has been posted too).
1826
Werner Lembergbd7e1c32007-12-06 17:17:30 +000018272007-12-06 Fix <4d876b82@gmail.com>
1828
1829 Pass options from one configure script to another as-is (not
1830 expanded). This is needed for options like
1831 --includedir='${prefix}/include'.
1832
1833 * builds/unix/detect.mk, configure: Prevent argument expansion in
1834 call to the (real) `configure' script.
1835
18362007-12-06 Werner Lemberg <wl@gnu.org>
1837
1838 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
1839 TT_USE_BYTECODE_INTERPRETER isn't defined.
1840
18412007-12-06 Werner Lemberg <wl@gnu.org>
1842
1843 There exist CFFs which contain opcodes for the Type 1 operators
1844 `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
1845 However, it doesn't harm to support them.
1846
1847 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
1848 `cff_op_closepath.'
1849 (cff_argument_counts): Ditto.
1850
1851 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
1852 and 13 (hsbw) which are invalid in Type 2 charstrings.
1853
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +000018542007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1855
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001856 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
1857 support new pathname syntax `..namedfork/rsrc' to access a resource
1858 fork on Mac OS X. The legacy syntax `/rsrc' does not work on
1859 case-sensitive HFS+.
Suzuki, Toshiya (鈴木俊哉)a6d36572007-12-06 10:27:15 +00001860 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
1861 buffer size to store a pathname.
1862 * include/freetype/internal/ftrfork.h: Increment the number of
1863 resource fork guessing rule.
1864
18652007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1866
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001867 * builds/unix/configure.raw: Improve the compile tests to search
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +00001868 Carbon functions.
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001869 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +00001870 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
1871
18722007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1873
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +00001874 The documents and comments for Mac OS X are improved by Sean
1875 McBride.
1876
1877 * src/base/ftmac.c: Fix a comment.
1878 * include/freetype/ftmac.h: Ditto.
1879 * docs/INSTALL.MAC: Improve English and add comment on lowest
1880 system version specified by MACOSX_DEPLOYMENT_TARGET.
1881
Werner Lemberga10d2b72007-12-04 22:05:54 +000018822007-12-04 Werner Lemberg <wl@gnu.org>
1883
1884 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
1885 concatenate error codes.
1886 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
1887
Werner Lembergd496b922007-12-04 21:49:59 +000018882007-12-04 Graham Asher <graham.asher@btinternet.com>
1889
1890 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
1891 concatenate error codes.
1892
Werner Lembergc0da5232007-12-04 21:44:32 +000018932007-12-04 Sean McBride <sean@rogue-research.com>
1894
1895 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
1896 warning.
1897
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +000018982007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1899
Werner Lemberg6174e172008-06-10 05:58:25 +00001900 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
Werner Lemberg24fe6182007-11-23 09:18:07 +00001901 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
1902 cannot mmap() the specified file and cannot seek to head of the
1903 specified file, it returns NULL stream and FT_Open_New() returns the
1904 error immediately. On MacOS, most legacy MacOS fonts fall into such
1905 a scenario because their data forks are zero-sized and cannot be
1906 sought. To proceed to guessing of resource fork fonts, the
1907 functions for legacy MacOS font must properly handle the NULL stream
1908 returned by FT_New_Stream().
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001909
Werner Lemberg24fe6182007-11-23 09:18:07 +00001910 * src/base/ftobjs.c (IsMacBinary): Return error
1911 FT_Err_Invalid_Stream_Operation immediately when NULL stream is
1912 passed.
1913 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
1914 to fallback. Originally, legacy MacOS font is tested in the cases
1915 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
1916 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
1917 .dfont header is combined). Now the case of
1918 FT_Err_Cannot_Open_Stream is included.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001919
Werner Lemberg24fe6182007-11-23 09:18:07 +00001920 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
1921 skip FT_Stream_Seek(), which seeks to the head of stream, and
1922 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
1923 for a NULL stream causes a Bus error on Mac OS X.
1924 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001925 immediately if passed stream is NULL.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00001926 (raccess_guess_apple_single): Ditto.
1927
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000019282007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1929
Suzuki, Toshiya (鈴木俊哉)a5470682007-11-16 16:29:36 +00001930 Fix for Carbon incompatibilities since Mac OS X 10.5,
1931 proposed by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001932
1933 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
1934
1935 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
Werner Lemberg830846e2008-07-27 06:27:21 +00001936 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001937 Carbon functions from a forked process is classified as unsafe
Werner Lemberg830846e2008-07-27 06:27:21 +00001938 by Apple. All Carbon-dependent functions should be deprecated.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001939
Werner Lembergf2e33c12009-01-06 06:59:36 +00001940 * src/base/ftmac.c: Use essential header files
1941 <CoreServices/CoreServices.h> and
1942 <ApplicationServices/ApplicationServices.h> instead of
1943 all-in-one header file <Carbon/Carbon.h>.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00001944
1945 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
1946 genuine macro PATH_MAX.
1947
1948 Add fallback macro for kATSOptionFlagsUnRestrictedScope which
1949 is not found in Mac OS X 10.0.
1950
1951 Multi-character constants ('POST', 'sfnt' etc) are replaced by
1952 64bit constants calculated by FT_MAKE_TAG() macro.
1953
1954 For the index in the segment of resource fork, new portable
1955 type ResourceIndex is introduced for better compatibility.
1956 This type is since Mac OS X 10.5, so it is defined as short
1957 when built on older platforms.
1958
1959 (FT_ATSFontGetFileReference): If build target is only the systems
1960 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
1961
1962 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
1963 and newer or 64bit platform, because legacy type FSSpec type is
1964 removed completely.
1965
1966 (FT_New_Face_From_FSSpec): Ditto.
1967
19682007-11-01 Werner Lemberg <wl@gnu.org>
Werner Lembergd503fc52007-11-01 09:19:44 +00001969
1970 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
1971 fixes Savannah bug #21485.
1972
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000019732007-10-29 Daniel Svoboda <dasvo@planeta@cz>
Werner Lemberg27649fb2007-10-29 22:00:58 +00001974
1975 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
1976 can handle the font at all, then check `face_index'. Otherwise, the
1977 driver might return the wrong error code. This fixes Savannah bug
1978 #21468.
1979
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000019802007-10-21 Werner Lemberg <wl@gnu.org>
Werner Lemberg7d9c1892007-10-21 08:12:30 +00001981
1982 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
Werner Lemberge77b6c42007-10-21 08:18:40 +00001983 support for bit 8 of the `fsSelection' field in the `OS/2' table.
1984 MS is already using this; hopefully, this becomes part of OpenType
1985 1.5.
Werner Lemberg7d9c1892007-10-21 08:12:30 +00001986 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
1987 (WWS_SUBFAMILY).
1988
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000019892007-10-20 Werner Lemberg <wl@gnu.org>
Werner Lemberg66842572007-10-20 16:17:28 +00001990
1991 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
1992 Add `td.left' element to CSS.
1993 (toc_section_enter): Use it.
1994
David Turnercf432db2007-10-19 12:36:40 +000019952007-10-18 David Turner <david@freetype.org>
1996
Werner Lemberg7f2425f2007-10-20 16:15:07 +00001997 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
1998 functions related to cmap type 14 support to the
1999 `FT_Object_ActionName' scheme:
David Turnercf432db2007-10-19 12:36:40 +00002000
Werner Lemberg7f2425f2007-10-20 16:15:07 +00002001 FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
2002 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
2003 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
2004 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
2005 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
2006
2007 Update documentation accordingly.
2008
2009 * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
2010 Make the code a little more consistent with FreeType coding
2011 conventions and modify the cmap14 functions that returned a newly
2012 allocated array to use a persistent vector from the TT_CMap14 object
David Turnercf432db2007-10-19 12:36:40 +00002013 instead.
2014
Werner Lemberg7f2425f2007-10-20 16:15:07 +00002015 (TT_CMap14Rec): Provide array and auxiliary data for result.
2016 (tt_cmap14_done, tt_cmap14_ensure): New functions.
2017
2018 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
2019 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
2020 tt_cmap14_char_var_index, tt_cmap14_variants,
2021 tt_cmap14_char_variants, tt_cmap14_def_char_count,
2022 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
2023 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
2024
Werner Lemberg9a966b72007-10-15 17:21:32 +000020252007-10-15 George Williams <gww@silcom.com>
2026
2027 Add support for cmap type 14.
2028
2029 * devel/ftoption.h, include/freetype/config/ftoption.h
2030 (TT_CONFIG_CMAP_FORMAT_14): New macro.
2031
2032 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
2033 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
2034 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
2035 support function prototypes.
2036 (FT_CMap_ClassRec): Add them.
2037 Update all users.
2038
2039 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
2040 macro.
2041
2042 * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
2043 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
2044 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
2045 functions.
2046
2047 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
2048 function.
2049 (FT_Set_Charmap): Disallow cmaps of type 14.
2050 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
2051 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
2052 FT_Get_Chars_Of_Variant): New API functions.
2053
2054 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
2055
2056 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
2057 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
2058 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
2059 tt_cmap14_find_variant, tt_cmap14_char_var_index,
2060 tt_cmap14_char_var_isdefault, tt_cmap14_variants,
2061 tt_cmap14_char_variants, tt_cmap14_def_char_count,
2062 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
2063 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
2064 structures for cmap 14 support.
2065 (tt_cmap_classes): Register tt_cmap14_class_rec.
2066 (tt_face_build_cmaps): One more error message.
2067
2068 * docs/CHANGES: Mention cmap 14 support.
2069
Werner Lemberg74597cc2007-10-01 07:08:56 +000020702007-10-01 Werner Lemberg <wl@gnu.org>
2071
2072 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
David Turnercf432db2007-10-19 12:36:40 +00002073 charmap fails, do the loop again while searching a UCS-2 charmap.
Werner Lemberg74597cc2007-10-01 07:08:56 +00002074 This favours MS charmaps over Apple ones.
2075
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +000020762007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2077
Werner Lemberg9a966b72007-10-15 17:21:32 +00002078 * src/base/ftmac.c: Introduction of abstract `short' data types,
2079 ResFileRefNum and ResID. These types were introduced for Copland,
2080 then backported to MPW. The variables exchanged with FileManager
2081 QuickDraw frameworks are redefined by these data types. Patch was
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +00002082 proposed by Sean McBride.
2083 * builds/mac/ftmac.c: Ditto.
2084
Werner Lembergabc44f52007-08-18 06:38:07 +000020852007-08-18 Werner Lemberg <wl@gnu.org>
2086
2087 * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
2088 by Imran Yousaf. Fixes Savannah bug #20773.
2089
2090 (otv_Lookup_validate): Correct handling of LookupType. Found by
2091 Imran Yousaf. Fixes Savannah bug #20782.
2092
Werner Lemberg23a424f2007-08-17 20:16:44 +000020932007-08-17 George Williams <gww@silcom.com>
2094
2095 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
2096 SingleSubstFormat1.
2097
Suzuki, Toshiya (鈴木俊哉)4fc0cce2007-08-11 16:35:06 +000020982007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2099
2100 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
2101 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
2102 Found by Ryan Hill.
2103
Werner Lemberg3f1905b2007-08-11 15:45:32 +000021042007-08-11 George Williams <gww@silcom.com>
2105
2106 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
2107 (otv_Coverage_validate): Add fourth argument to pass an expected
2108 count value. Update all users.
2109 Check glyph IDs.
2110 (otv_ClassDef_validate): Check `StartGlyph'.
2111
2112 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
2113 checks.
2114
2115 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
2116 56 constants.
2117 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
2118 Check glyph IDs.
2119
Werner Lembergd76fe5a2007-08-08 06:38:06 +000021202007-08-08 Werner Lemberg <wl@gnu.org>
2121
2122 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
2123 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
2124 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
2125 appropriate. Reported by George.
2126
2127 * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
2128
2129 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
2130
2131 * docs/CHANGES: Updated.
2132
21332007-08-08 George Williams <gww@silcom.com>
2134
2135 Add `MATH' validating support to otvalid module.
2136
2137 * include/freetype/tttags.h (TTAG_MATH): New macro.
2138 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
2139 (FT_VALIDATE_OT): Updated.
2140
2141 * src/otvalid/otmath.c: New file.
2142
2143 * src/otvalid/otvalid.c: Include otvmath.c.
2144 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
2145
Werner Lembergb6617882007-08-04 22:17:48 +000021462007-08-04 Werner Lemberg <wl@gnu.org>
2147
David Turnercf432db2007-10-19 12:36:40 +00002148 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
Werner Lembergb6617882007-08-04 22:17:48 +00002149 Fixes Savannah bug #20686.
2150
Werner Lembergd6752a62007-08-02 22:03:30 +000021512007-08-03 Werner Lemberg <wl@gnu.org>
2152
2153 * src/psnames/psmodule.c: Fix usage of
2154 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
2155
Suzuki, Toshiya (鈴木俊哉)cf093cd2007-07-31 03:58:09 +000021562007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2157
2158 * src/base/ftmac.c (open_face_from_buffer): The argument
2159 `driver_name' is typed as `const char*' to match with the
2160 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
2161 This is same with open_face_from_buffer in src/base/ftobjs.c.
2162 Found and fixed by Sean McBride.
2163
Werner Lemberg39c91ad2007-07-28 05:40:40 +000021642007-07-28 Werner Lemberg <wl@gnu.org>
2165
2166 * src/raster/ftraster.c (count_table): Make it conditional.
2167 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
2168 a preprocessor statement.
2169
Werner Lemberg71dd6872007-07-27 04:44:36 +000021702007-07-27 Werner Lemberg <wl@gnu.org>
2171
2172 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
2173 first usage. From Savannah patch #6115.
2174
Werner Lembergef915c32007-07-16 20:46:05 +000021752007-07-16 Werner Lemberg <wl@gnu.org>
2176
2177 * docs/CHANGES: Updated.
2178
21792007-07-16 Derek Clegg <dclegg@apple.com>
2180
2181 Add new service for getting the ROS from a CID font.
2182
2183 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
2184 * include/freetype/ftcid.h: New file.
2185
2186 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
2187 * include/freetype/internal/services/svcid.h: New file.
2188
2189 * src/base/ftcid.c: New file.
2190
2191 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
2192 (cff_get_ros): New function.
2193 (cff_service_cid_info): New service structure.
2194 (cff_services): Register it.
2195
2196 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
2197
2198 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
2199
2200 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
2201
Werner Lemberg2f109562007-07-11 05:32:00 +000022022007-07-11 Derek Clegg <dclegg@apple.com>
2203
2204 Add support for postscript name service to CFF driver.
2205
2206 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
2207 (cff_get_ps_name): New function.
2208 (cff_service_ps_name): New service structure.
2209 (cff_services): Register it.
2210
Werner Lembergb003b3e2007-07-08 07:13:12 +000022112007-07-07 Werner Lemberg <wl@gnu.org>
2212
2213 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
2214 `target'. Reported by Sean McBride.
2215
Werner Lemberg1e1b6df2007-07-07 07:30:40 +000022162007-07-06 Werner Lemberg <wl@gnu.org>
2217
2218 * src/pfr/pfrcmap.c: Include pfrerror.h.
2219
2220 * src/autofit/afindic.c: Add some external declarations to pacify
2221 `make multi' compilation.
2222
2223 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
2224
2225 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
2226 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
2227 src/autofit/aflatin.c (af_latin_hints_compute_edges),
2228 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
2229 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
2230 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
2231
2232 * docs/release: Mention test compilation targets.
2233
Werner Lemberg986ea4b2007-07-04 04:53:15 +000022342007-07-04 Werner Lemberg <wl@gnu.org>
2235
2236 * docs/PROBLEMS: Mention that some PS based fonts can't be
2237 handled correctly by FreeType.
2238
Werner Lemberg3033f432007-07-04 14:12:19 +00002239 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
2240 recursion depth of 1. This was the maximum value in TrueType 1.0,
2241 and some older fonts don't set this field correctly.
2242
2243 * src/gxvalid/gxvmort1.c
2244 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
2245
Werner Lemberg3b0e5002007-07-03 04:48:19 +000022462007-07-03 Werner Lemberg <wl@gnu.org>
2247
2248 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
2249 `round' to pacify compiler.
2250
22512007-07-02 Werner Lemberg <wl@gnu.org>
2252
2253
2254 * Version 2.3.5 released.
2255 =========================
2256
2257
2258 Tag sources with `VER-2-3-5'.
2259
2260 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2261 version number to 2.3.5.
2262
2263 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2264 builds/win32/visualc/freetype.dsp,
2265 builds/win32/visualc/freetype.vcproj,
2266 builds/win32/visualce/index.html,
2267 builds/win32/visualce/freetype.dsp,
2268 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
2269
2270 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
2271
2272 * builds/unix/configure.raw (version_info): Set to 9:16:3.
2273
David Turner0ba89912007-07-01 09:34:04 +000022742007-07-01 David Turner <david@freetype.org>
2275
Werner Lemberge3be90b2007-07-02 14:58:58 +00002276 * include/freetype/freetype.h, src/base/ftpatent.c
2277 (FT_Face_SetUnpatentedHinting): New function to dynamically change
2278 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +00002279
Werner Lemberge3be90b2007-07-02 14:58:58 +00002280 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
2281 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +00002282
David Turner74cc0e92007-06-30 22:54:12 +000022832007-06-30 David Turner <david@freetype.org>
2284
Werner Lemberge3be90b2007-07-02 14:58:58 +00002285 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
2286 initialization.
David Turner74cc0e92007-06-30 22:54:12 +00002287
Werner Lemberge3be90b2007-07-02 14:58:58 +00002288 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
2289 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +00002290
Werner Lemberg7723dc32007-06-26 04:44:35 +000022912007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
2292
2293 Add autofit module for Indic scripts. This currently just reuses
2294 the CJK-specific functions.
2295
2296 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
2297 macro.
2298 * devel/ftoption.h: Synchronize with
2299 include/freetype/config/ftoption.h.
2300
2301 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
2302
2303 * src/autofit/afglobal.c, src/autofit/aftypes.h,
2304 src/autofit/autofit.c: Updated.
2305
2306 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
2307 (AUTOF_DRV_SRC): Updated.
2308
David Turner8f626b02007-06-22 22:22:38 +000023092007-06-23 David Turner <david@freetype.org>
2310
Werner Lemberg7854c4a2007-06-23 07:16:20 +00002311 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
2312 2007-06-16 that prevented the TrueType module from loading most
2313 glyphs.
David Turner8f626b02007-06-22 22:22:38 +00002314
Werner Lemberg5b4d4352007-06-20 07:07:55 +000023152007-06-20 Werner Lemberg <wl@gnu.org>
2316
2317 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
2318 change.
2319
Werner Lemberg9fe58152007-06-19 07:57:30 +000023202007-06-19 Werner Lemberg <wl@gnu.org>
2321
2322 * src/type1/t1load.c (parse_encoding): Handle one more error.
2323
Werner Lemberg5a829392007-06-19 04:53:30 +000023242007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
2325
2326 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
2327 FNT_Err_Invalid_File_Format if file format was recognized but
2328 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
2329 Add verbose debug logs to make it easier to debug failing load
2330 attempts.
2331 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
2332 so return an error if requested face index is > 0.
2333 Do not do further attempt to load fonts if a previous attempt has
2334 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
2335 file format has been recognized but no fonts found in the file.
2336
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000023372007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2338
2339 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
2340 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
2341 the compiler warnings against unused arguments.
2342 (FT_ATSFontGetFileReference): Ditto.
2343 (FT_GetFile_From_Mac_ATS_Name): Ditto.
2344 (FT_New_Face_From_FSSpec): Ditto.
2345 (lookup_lwfn_by_fond): Fix wrong comment.
2346 Replace `const StringPtr' by more appropriate type
2347 `ConstStr255Param'.
2348 FSRefMakePathPath always returns UTF8 POSIX pathname in
2349 Mach-O, thus HFS pathname support is dropped.
2350 (count_faces): Remove HLock and HUnlock which is not
2351 required on Mac OS X anymore.
2352 (FT_New_Face_From_SFNT): Ditto.
2353 (FT_New_Face_From_FOND): Ditto.
2354 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
2355 except of HFS pathname support and HLock/HUnlock.
2356 They are required on classic CFM environment.
2357
23582007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +00002359
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002360 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
2361 assertion.
2362 (ps_parser_to_bytes): Fix error message.
2363
Werner Lembergbb2510d2007-06-18 17:07:49 +00002364 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002365 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
2366 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +00002367 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +00002368 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002369
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000023702007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002371
Werner Lembergf48aec72007-06-18 07:07:55 +00002372 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
2373 logic.
2374 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
2375 correctly.
2376 (ps_parser_load_field_table): Use `fields->array_max' instead of
2377 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
2378
Werner Lemberg95104a42007-06-18 07:33:10 +00002379 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
2380 2007-06-06.
2381
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000023822007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +00002383
2384 * src/tools/ftrandom.c (font_size): New global variable.
2385 (TestFace): Use it.
2386 (main): Handle new option `--size' to set `font_size'.
2387 (Usage): Updated.
2388
Werner Lembergbe183eb2007-06-17 11:27:17 +00002389 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
2390 invalid font.
2391 (FNT_Load_Glyph): Protect against invalid bitmap width.
2392
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000023932007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +00002394
Werner Lemberge12ed562007-06-17 05:31:23 +00002395 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
2396 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +00002397
Werner Lemberge12ed562007-06-17 05:31:23 +00002398 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
2399 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +00002400
Werner Lemberge12ed562007-06-17 05:31:23 +00002401 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
2402 and `zp2'.
2403 (Ins_IP): Check argument ranges to reject bogus operations properly.
2404 (IUP_WorkerRec): Add `max_points' member.
2405 (_iup_worker_interpolate): Check argument ranges.
2406 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +00002407
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000024082007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +00002409
2410 * src/winfonts/winfnt.h: Add necessary structures for PE resource
2411 parsing.
2412 (WinPE32_HeaderRec): New structure.
2413 (WinPE32_SectionRec): New structure.
2414 (WinPE_RsrcDirRec): New structure.
2415 (WinPE_RsrcDirEntryRec): New structure.
2416 (WinPE_RsrcDataEntryRec): New structure.
2417 (FNT_FontRec): Remove unused `size_shift' field.
2418
2419 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
2420 loading bitmap .fon files in PE format.
2421
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000024222007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +00002423
2424 * builds/win32/ftdebug.c: Unify debug level handling with other
2425 platforms.
2426
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000024272007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +00002428
2429 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
2430 console as well as to the debugger.
2431
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000024322007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +00002433
2434 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
2435 cover all ranges which could possibly be handled by the aflatin
2436 module (since the default fallback for unknown ranges is now the
2437 afcjk module). It might be necessary to fine-tune this further by
2438 splitting off modules for Greek, Cyrillic, or other blocks.
2439
David Turnerb7920172007-06-11 05:37:35 +000024402007-06-11 David Turner <david@freetype.org>
2441
Werner Lemberg49e18b82007-06-11 21:15:09 +00002442 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
2443 incorrect segment linking computation. This was the root cause of
2444 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +00002445
2446
Werner Lemberg49e18b82007-06-11 21:15:09 +00002447 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
2448 to improve the Latin auto-hinter. Note that the new code is
2449 disabled by default since it is not stabilized yet.
2450
2451 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
2452 (disabled currently).
2453
2454 * src/autofit/afhints.c: Remove dead code.
2455 (af_axis_hints_new_edge): Add argument to handle segment directions.
2456 (af_edge_flags_to_string): New function.
2457 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
2458 option flags.
2459 (af_glyph_hints_reload): Add argument to handle inflections.
2460 Simplify.
2461 (af_direction_compute): Fine tuning.
2462 (af_glyph_hints_align_edge_points): Fix logic.
2463 (af_glyph_hints_align_strong_points): Do linear search for small
2464 edge counts.
2465 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
2466 (af_iup_shift): Handle zero `delta'.
2467
2468 * src/autofit/afhints.h: Updated.
2469 (AF_SORT_SEGMENTS): New macro (disabled).
2470 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
2471
2472 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
2473 argument to pass option flags for handling scripts.
2474 * src/autofit/afglobal.h: Updated.
2475
2476 * src/autofit/afcjk.c: Updated.
2477 * src/autofit/aflatin.c: Updated.
2478 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
2479
2480 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
2481 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
2482 Don't set `edge->dir'
2483 (af_latin_hint_edges): Add more logging.
2484
2485 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +00002486
Werner Lembergf6c120f2007-06-11 04:55:58 +000024872007-06-11 Werner Lemberg <wl@gnu.org>
2488
Werner Lembergcf7b7642007-06-11 04:58:01 +00002489 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +00002490
David Turner84c6f882007-06-10 20:51:04 +000024912007-06-10 David Turner <david@freetype.org>
2492
Werner Lembergf6c120f2007-06-11 04:55:58 +00002493 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
2494 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +00002495
Werner Lembergf6c120f2007-06-11 04:55:58 +00002496 * include/freetype/config/ftoption.h: Clarify documentation
2497 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +00002498
Werner Lembergf6c120f2007-06-11 04:55:58 +00002499
2500 Add new `FT_Face_CheckTrueTypePatents' API.
2501
2502 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
2503 declaration.
2504
2505 * include/freetype/internal/services/svttglyf.h,
2506 src/base/ftpatent.c: New files.
2507
2508 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
2509 New macro.
2510
2511 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
2512 `ttpload.h'.
2513 (tt_service_truetype_glyf): New service structure.
2514 (tt_services): Register it.
2515
2516 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
2517 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +00002518
Werner Lemberg33db39e2007-06-08 06:30:29 +000025192007-06-08 Werner Lemberg <wl@gnu.org>
2520
David Turner84c6f882007-06-10 20:51:04 +00002521 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +00002522 Fonts without a cmap must be handled correctly by FreeType (anything
2523 else would be a bug).
2524
2525
2526 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
2527 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
2528
Werner Lemberg88ab6382007-06-07 05:01:56 +000025292007-06-07 Werner Lemberg <wl@gnu.org>
2530
2531 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
2532 tt_sbit_decoder_load_image): Protect against integer overflows.
2533
2534
2535 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
2536 for `x_control' and `y_control'.
2537
Werner Lemberg2a2dca62007-06-06 04:39:37 +000025382007-06-06 Werner Lemberg <wl@gnu.org>
2539
2540 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
2541
Werner Lemberga8d65492007-06-06 04:47:49 +00002542
2543 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
2544 FreeType error.
2545
Werner Lemberg470210b2007-06-06 10:05:49 +00002546
2547 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
2548 `font_count'.
2549
2550
2551 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
2552
2553
2554 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
2555 `FT_Error'.
2556 Check `fd_index'.
2557 (cff_slot_load): Updated.
2558 * src/cff/cffgload.h: Updated.
2559
Werner Lemberg6c054752007-06-05 05:27:54 +000025602007-06-05 Werner Lemberg <wl@gnu.org>
2561
2562 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
2563 (pfr_glyph_load_simple): Convert assertion into normal FreeType
2564 error.
2565 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +00002566 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
2567 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +00002568
2569 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
2570
Werner Lembergf4bc3f42007-06-05 07:32:15 +00002571
Werner Lemberg470210b2007-06-06 10:05:49 +00002572 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +00002573
Werner Lemberge5c14d92007-06-05 20:50:37 +00002574
2575 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
2576 in case of parsing error.
2577 (ps_parser_load_field): Updated.
2578
2579 * src/type1/t1load.c (parse_font_matrix): Updated.
2580
Werner Lembergad18b362007-06-04 07:04:05 +000025812007-06-04 Werner Lemberg <wl@gnu.org>
2582
2583 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
2584
2585 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
2586
Werner Lemberg3d507fe2007-06-03 16:54:55 +000025872007-06-03 Werner Lemberg <wl@gnu.org>
2588
Werner Lemberg99a320b2007-06-03 19:21:26 +00002589 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
2590 George Williams (with some modifications).
2591
25922007-06-03 Werner Lemberg <wl@gnu.org>
2593
Werner Lemberg3d507fe2007-06-03 16:54:55 +00002594 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
2595 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
2596 face == NULL. Suggested by Graham Asher.
2597
Werner Lembergce280a22007-06-03 05:58:30 +000025982007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
2599
2600 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
2601
Werner Lemberg5b591e42007-06-01 22:16:43 +000026022007-06-02 Werner Lemberg <wl@gnu.org>
2603
2604 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
2605 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
2606
2607 * src/bdf/bdflib.c (bdf_load_font): Use them.
2608
2609 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
2610
Werner Lembergb9933f42007-06-01 21:27:12 +000026112007-06-01 Werner Lemberg <wl@gnu.org>
2612
2613 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
2614 (FTC_CMapCache_Lookup): Remove unused code.
2615
Werner Lembergc793d902007-06-01 20:51:11 +000026162007-06-01 Sean McBride <sean@rogue-research.com>
2617
2618 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
2619 unused.
2620
Werner Lembergbebc7b12007-06-01 06:32:30 +000026212007-06-01 Werner Lemberg <wl@gnu.org>
2622
2623 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
2624 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +00002625 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +00002626
Werner Lembergcb37b3b2007-06-01 06:49:03 +00002627 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
2628 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
2629
Werner Lembergba03af62007-05-30 13:57:02 +000026302007-05-30 Werner Lemberg <wl@gnu.org>
2631
2632 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
2633 against too small binary data strings.
2634
2635 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
2636
David Turnerf0cd69c2007-05-28 15:42:09 +000026372007-05-28 David Turner <david@freetype.org>
2638
Werner Lemberg99e0c182007-05-29 07:00:23 +00002639 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
2640 transformation. This significantly reduces the loading time of CFF
2641 glyphs.
David Turner552a9562007-05-28 15:45:35 +00002642
Werner Lemberg99e0c182007-05-29 07:00:23 +00002643 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +00002644
Werner Lemberg99e0c182007-05-29 07:00:23 +00002645 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
2646 hinting script to CJK, since it works well with more scripts than
2647 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
2648 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +00002649
Werner Lemberg1c8980e2007-05-25 07:11:12 +000026502007-05-25 Werner Lemberg <wl@gnu.org>
2651
2652 * docs/CHANGES: Updated.
2653
Werner Lemberg6ff2ff52007-05-24 19:39:14 +000026542007-05-24 Werner Lemberg <wl@gnu.org>
2655
2656 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
2657 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
2658
26592007-05-24 Graham Asher <graham.asher@btinternet.com>
2660
2661 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
2662 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
2663
David Turner0d0365e2007-05-22 09:53:44 +000026642007-05-22 David Turner <david@freetype.org>
2665
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002666 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
2667 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +00002668
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002669
2670 Avoid heap blowup with very large .Z font files. This fixes
2671 Savannah bug #19910.
2672
2673 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
2674 `in_limit', `pad', `pad_bits', and `in_buff' members.
2675 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
2676 `buf_total' members.
2677
2678 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
2679 only one argument.
2680 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +00002681
26822007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +00002683
2684 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
2685 (ps_dimension_set_mask_bits): Remove `const'.
2686
David Turner0d0365e2007-05-22 09:53:44 +000026872007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +00002688
2689 * src/sfnt/ttmtx.c (tt_face_get_metrics)
2690 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
2691
Werner Lembergb826fa72007-05-19 07:18:48 +000026922007-05-19 Derek Clegg <dclegg@apple.com>
2693
2694 Savannah patch #5929.
2695
2696 * include/freetype/tttables.h, src/base/ftobjcs.c
2697 (FT_Get_CMap_Format): New function.
2698
2699 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
2700 `format' member.
2701 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
2702 cmap_info->format.
2703
Werner Lemberg6f99c882007-05-19 07:01:49 +000027042007-05-19 Werner Lemberg <wl@gnu.org>
2705
2706 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
2707 before handling subglyphs so that it can be reinitialized each time.
2708 This fixes Savannah bug #19859.
2709
Werner Lemberg95bc9d32007-05-16 15:19:42 +000027102007-05-16 Werner Lemberg <wl@gnu.org>
2711
2712 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
2713 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
2714 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
2715 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
2716 tt_face_get_metrics): Fix type-punning issues.
2717
David Turner0a24bd22007-05-15 10:54:10 +000027182007-05-15 David Turner <david@freetype.org>
2719
2720 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00002721 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
2722 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +00002723 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00002724 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +00002725
Werner Lemberg607dec72007-05-15 06:49:37 +000027262007-05-15 Graham Asher <graham.asher@btinternet.com>
2727
2728 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
2729 variable.
2730 * src/autofit/afloader.c (af_loader_load_g): Ditto.
2731
2732 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
2733 (open_face_from_buffer): Initialize `stream'.
2734 (FT_Request_Metrics): Remove unused variable.
2735 Remove redundant `break' statements.
2736 (FT_Get_Track_Kerning): Remove unused variable.
2737
2738 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
2739 afm_parse_kern_data): Remove redundant
2740 `break' statements.
2741 (afm_parser_parse): Ditto.
2742 Don't use uninitialized variables.
2743
2744 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
2745 Use `|' operator instead of `^' to set it.
2746 Update all users.
2747
2748 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
2749 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
2750
2751 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
2752 comparison.
2753 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
2754 (TT_Load_Glyph): Remove unused variable.
2755
Werner Lemberg8d463a52007-05-13 16:01:55 +000027562007-05-13 Derek Clegg <dclegg@apple.com>
2757
2758 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
2759 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
2760
David Turner711cf842007-05-11 14:36:24 +000027612007-05-11 David Turner <david@freetype.org>
2762
Werner Lemberg56ceaa42007-05-14 18:53:58 +00002763 * src/cache/ftbasic.c, include/freetype/ftcache.h
2764 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
2765 functions that allow us to look up glyphs using an FTC_Scaler object
2766 to specify the size, making it possible to use fractional pixel
2767 sizes.
2768
2769 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
2770 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +00002771
Werner Lemberg94be20e2007-05-09 20:02:55 +000027722007-05-09 Graham Asher <graham.asher@btinternet.com>
2773
2774 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
2775 (af_latin_metrics_scale_dim): Fix compiler warnings.
2776
Werner Lemberg41271032007-05-06 04:51:48 +000027772007-05-06 Werner Lemberg <wl@gnu.org>
2778
2779 * builds/win32/visualce/freetype.sln: Removed, as requested by
2780 Vincent.
2781
Werner Lembergdf49e692007-05-04 06:30:05 +000027822007-05-04 Vincent RICHOMME <richom.v@free.fr>
2783
2784 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
2785 PC targets.
2786
2787 * docs/CHANGES: Document them.
2788
27892007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +00002790
2791 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
2792 mmap (which might happen on some RTOS). From Savannah patch #5909.
2793
Werner Lemberg106eaf12007-05-03 07:07:47 +000027942007-05-03 Werner Lemberg <wl@gnu.org>
2795
2796 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
2797 * include/freetype/freetype.h (FT_Set_Char_Size): Update
2798 documentation.
2799
Werner Lemberg1b5267d2007-04-28 21:06:15 +000028002007-04-28 Victor Stinner <victor.stinner@inl.fr>
2801
2802 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
2803 `cmap'.
2804
Werner Lembergcc712a22007-04-27 17:16:50 +000028052007-04-27 Werner Lemberg <wl@gnu.org>
2806
2807 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
2808 number of points in contours. Problem reported by Victor Stinner
2809 <victor.stinner@haypocalc.com>.
2810 (TT_Process_Simple_Glyph): Synchronize variable types.
2811
Werner Lemberg45bb18f2007-04-26 06:26:35 +000028122007-04-26 Werner Lemberg <wl@gnu.org>
2813
2814 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
2815 zero in case of error. This fixes Savannah bug #19689.
2816
Werner Lembergb2116512008-09-12 16:27:48 +000028172007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
David Turnera8b45e62007-05-11 14:10:30 +00002818
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002819 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
2820 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +00002821
Werner Lembergfcc1f472007-04-10 11:51:50 +000028222007-04-10 Martin Horak <horakm@centrum.cz>
2823
2824 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
2825 Ignore `hhea' table. This fixes Savannah bug #19261.
2826
Werner Lemberg14bf82e2007-04-10 04:09:49 +000028272007-04-09 Werner Lemberg <wl@gnu.org>
2828
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002829
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002830 * Version 2.3.4 released.
2831 =========================
2832
2833
2834 Tag sources with `VER-2-3-4'.
2835
2836 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2837 version number to 2.3.4.
2838
2839 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2840 builds/win32/visualc/freetype.dsp,
2841 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
2842
2843 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
2844
2845 * builds/unix/configure.raw (version_info): Set to 9:15:3.
2846
Werner Lembergf4a52a62007-04-09 08:40:11 +000028472007-04-09 Martin Horak <horakm@centrum.cz>
2848
2849 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
2850 memory stream to avoid a crash with the incremental memory
2851 interface (Savannah bug #19260).
2852
David Turner1dcb4442007-04-06 08:19:04 +000028532007-04-06 David Turner <david@freetype.org>
2854
Werner Lembergc81cf612007-04-06 09:28:23 +00002855 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
2856 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +00002857
Werner Lemberg9f83e052007-04-05 02:28:23 +000028582007-04-04 Werner Lemberg <wl@gnu.org>
2859
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002860
Werner Lemberg9f83e052007-04-05 02:28:23 +00002861 * Version 2.3.3 released.
2862 =========================
2863
2864
2865 Tag sources with `VER-2-3-3'.
2866
2867 * docs/CHANGES: Mention CVE-2007-1351.
2868
David Turner7338ec22007-04-03 14:30:34 +000028692007-04-03 David Turner <david@freetype.org>
2870
2871 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +00002872 if one of the resolution values is 0, treat it as if it were the
2873 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +00002874
David Turnere6472c12007-04-02 13:13:54 +000028752007-04-02 David Turner <david@freetype.org>
2876
Werner Lemberg94f12272007-04-03 07:19:53 +00002877 Add special code to detect `extra-light' fonts and do not snap their
2878 stem widths too much to avoid bizarre hinting effects.
2879
2880 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
2881 `extra_light' members.
2882
2883 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
2884 them.
2885 (af_latin_metrics_scale_dim): Set `extra_light'.
2886 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +00002887
David Turner3f539692007-03-28 14:53:40 +000028882007-03-28 David Turner <david@freetype.org>
2889
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002890 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +00002891 padding.
2892
Werner Lemberga08b2172007-03-28 07:17:17 +000028932007-03-28 Werner Lemberg <wl@gnu.org>
2894
2895 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
2896 gracefully.
2897 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +00002898 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +00002899 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
2900 number of code points in Unicode.
2901
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002902 * builds/win32/visualc/index.html,
2903 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002904 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002905 s/232/233/.
2906
2907 * docs/CHANGES: Mention ftdiff.
2908
David Turner3b242d32007-03-26 12:03:04 +000029092007-03-26 David Turner <david@freetype.org>
2910
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002911 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
2912 corresponding code.
2913 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +00002914
Werner Lemberga08b2172007-03-28 07:17:17 +00002915 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002916 computations in order to ignore single-point contours. These are
2917 never rasterized and correspond in certain fonts to mark-attach
2918 points that are very far from the glyph's real outline, ruining the
2919 computation.
David Turnerf58caa02007-03-26 12:39:25 +00002920
Werner Lemberga08b2172007-03-28 07:17:17 +00002921 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +00002922 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +00002923 Otherwise code that uses them will most certainly ruin the fixed
2924 advance property.
David Turner23553d62007-03-26 13:37:17 +00002925
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002926 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
2927 documentation and bump version number to 2.3.3.
2928
2929 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
2930
2931 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +00002932
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000029332007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2934
Werner Lemberg644b1ad2007-03-28 21:17:11 +00002935 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
2936 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00002937 * builds/vms/ftconfig.h: Ditto.
2938 * include/freetype/config/ftconfig.h: Ditto.
2939
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000029402007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2941
Werner Lemberg14ffe092007-03-22 06:12:43 +00002942 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
2943 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +00002944 proposed by Sean McBride:
2945 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
2946
29472007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2948
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00002949 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
2950 setjmp, proposed by Sean McBride:
2951 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
2952
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000029532007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2954
Werner Lembergc9f6c662007-03-21 13:30:14 +00002955 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
2956 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
2957 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00002958
David Turner74c34eb2007-03-18 07:19:31 +000029592007-03-18 David Turner <david@freetype.org>
2960
Werner Lembergc9f6c662007-03-21 13:30:14 +00002961 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
2962 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +00002963
Werner Lembergc9f6c662007-03-21 13:30:14 +00002964 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +00002965
David Turner89020d92007-03-17 17:48:57 +000029662007-03-17 David Turner <david@freetype.org>
2967
Werner Lembergc9f6c662007-03-21 13:30:14 +00002968 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
2969 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +00002970
Werner Lemberg25d592a2007-03-09 07:59:35 +000029712007-03-09 Werner Lemberg <wl@gnu.org>
2972
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002973
Werner Lemberg25d592a2007-03-09 07:59:35 +00002974 * Version 2.3.2 released.
2975 =========================
2976
2977
2978 Tag sources with `VER-2-3-2'.
2979
2980 * builds/win32/visualc/index.html,
2981 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002982 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +00002983 s/231/232/.
2984
David Turner3a51afa2007-03-08 10:50:38 +000029852007-03-08 David Turner <david@freetype.org>
2986
Werner Lemberg25d592a2007-03-09 07:59:35 +00002987 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +00002988
Werner Lemberg25d592a2007-03-09 07:59:35 +00002989 * builds/unix/configure.raw (version_info): Set to 9:13:3.
2990
2991 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
2992
2993 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +00002994
Werner Lemberg1e259de2007-03-08 15:39:21 +00002995 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
2996 function to work properly, over-writing user-provided buffers in
2997 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +00002998
David Turner121cad52007-03-08 16:43:50 +00002999
Werner Lemberg3d92f082007-03-06 11:59:24 +000030002007-03-05 Werner Lemberg <wl@gnu.org>
3001
3002 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
3003 macro for `strstr'.
3004
3005 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
3006 `trick_names', as suggested by Ivan Nincic.
3007
David Turner085bc6e2007-03-05 17:40:03 +000030082007-03-05 David Turner <david@freetype.org>
3009
Werner Lembergd112cf02007-03-06 12:06:56 +00003010 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
3011 case FT_Init_FreeType fails for some reason. Problem reported by
3012 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +00003013
Werner Lembergd112cf02007-03-06 12:06:56 +00003014 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
3015 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
3016 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
3017 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +00003018
Werner Lembergd112cf02007-03-06 12:06:56 +00003019 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
3020 signed values, not unsigned ones. Problem reported by Johannes
3021 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +00003022
David Turner601aefe2007-02-21 16:47:49 +000030232007-02-21 David Turner <david@freetype.org>
3024
Werner Lembergde5e6862007-02-25 21:06:43 +00003025 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
3026 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +00003027
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +000030282007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3029
3030 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
3031 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
3032 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
3033
Werner Lemberga0915172007-02-16 08:12:50 +000030342007-02-16 Werner Lemberg <wl@gnu.org>
3035
3036 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
3037 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
3038
David Turner2c4500e2007-02-14 15:08:47 +000030392007-02-14 David Turner <david@freetype.org>
3040
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00003041 It seems that the following changes fix most of the known
3042 interpreter problems with my fonts, but more testing is needed,
3043 though.
3044
3045 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
3046 (TT_MulFix14): Rewrite.
3047 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
3048 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +00003049
Werner Lembergc6a14082007-02-12 22:08:15 +000030502007-02-12 Werner Lemberg <wl@gnu.org>
3051
3052 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
3053 warnings.
3054
3055 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
3056 (bdf_interpret_style): Ditto.
3057
David Turnerc0f9c4a2007-02-12 14:55:03 +000030582007-02-12 David Turner <david@freetype.org>
3059
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00003060 Simplify projection and dual-projection code interface.
3061
Werner Lemberg406d25f2007-02-12 22:01:18 +00003062 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
3063 FT_Vector' as argument type.
3064 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
3065 Updated.
3066 (CUR_fast_project, CUR_fast_dualproj): New macros.
3067 (Project, Dual_Project, Project_x, Project_y): Updated.
3068 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
3069 macros.
3070
3071
3072 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
3073 adjustments for the non-light auto-hinted modes. Gets rid of
3074 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +00003075
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00003076 * src/autofit/aflatin.c (af_latin_hints_link_segments,
3077 af_latin_hints_compute_edges): Slight optimization of the segment
3078 linker and better handling of serif segments to get rid of broken
3079 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +00003080
David Turnerc0f9c4a2007-02-12 14:55:03 +00003081
Werner Lemberg442bfb82007-02-12 21:44:10 +00003082 Introduce new string functions and the corresponding macros to get
3083 rid of various uses of strcpy and other `evil' functions, as well as
3084 to simplify a few things.
3085
3086 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
3087 ft_mem_strcpyn): New declarations.
3088 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
3089 macros.
3090 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
3091 functions.
3092
3093 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
3094 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
3095 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
3096 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
3097 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
3098 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
3099 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
3100 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +00003101
Werner Lemberg406d25f2007-02-12 22:01:18 +00003102 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
3103
Werner Lemberg582067d2007-02-11 15:03:05 +000031042007-02-11 Werner Lemberg <wl@gnu.org>
3105
3106 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
3107 non-spacing glyphs.
3108
Werner Lemberg8f474532007-02-07 08:31:01 +000031092007-02-07 Tom Parker <palfrey@tevp.net>
3110
3111 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
3112 pointer.
3113
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000031142007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3115
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00003116 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
3117 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +00003118 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00003119 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
3120 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
3121 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
3122 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +00003123
3124 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
3125 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00003126 * builds/mac/ftmac.c: Ditto.
3127
31282007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3129
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00003130 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +00003131 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00003132 #include <ftmac.c>.
3133
31342007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3135
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +00003136 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
3137 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
3138 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
3139 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
3140 FT_GetFilePath_From_Mac_ATS_Name.
3141 * builds/mac/ftmac.c: Ditto.
3142
31432007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3144
Werner Lembergdcbb7082007-02-08 08:54:09 +00003145 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +00003146 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
3147 for passing to FT_New_Face_From_FSSpec.
3148
31492007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3150
Werner Lembergdcbb7082007-02-08 08:54:09 +00003151 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003152 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +00003153
3154 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
3155 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003156 * builds/mac/ftmac.c (OS_INLINE): Ditto.
3157
Werner Lemberg313d7772007-02-01 08:10:45 +000031582007-02-01 Werner Lemberg <wl@gnu.org>
3159
3160 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
3161 Explain why applications shouldn't use it. Found by Alexei.
3162
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000031632007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00003164
3165 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
3166 message.
3167
3168 * src/gxvalid/gxvmort1.c
3169 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
3170 message.
3171
Werner Lemberg53935932007-01-31 08:53:02 +000031722007-01-31 Werner Lemberg <wl@gnu.org>
3173
3174
3175 * Version 2.3.1 released.
3176 =========================
3177
3178
3179 Tag sources with `VER-2-3-1-FINAL'.
3180
3181 * builds/win32/visualc/freetype.dsp,
3182 builds/win32/visualc/freetype.vcproj: s/230/231/.
3183 * builds/win32/visualc/index.html: s/221/231/.
3184
3185 * vms_make.com: Add `ftgasp'.
3186
David Turnera7ee6082007-01-30 10:33:53 +000031872007-01-30 David Turner <david@freetype.org>
3188
Werner Lemberg53935932007-01-31 08:53:02 +00003189 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +00003190
Werner Lemberg53935932007-01-31 08:53:02 +00003191 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +00003192
Werner Lemberg25d592a2007-03-09 07:59:35 +00003193 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +00003194 s/2.3.0/2.3.1/.
3195
3196 * builds/unix/configure.raw (version_info): Set to 9:12:3.
3197
3198
3199 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
3200 (af_loader_load_g): Disable the warper (i.e., the light hinting
3201 improvements) to make a 2.3.1 bugfix release before introducing a
3202 new feature. This should give us more time to tune and improve the
3203 warper for the next release.
3204
3205 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +00003206
David Turnerd91eebd2007-01-26 15:05:41 +000032072007-01-25 David Turner <david@freetype.org>
3208
Werner Lembergbf241762007-01-26 16:08:49 +00003209 For light auto-hinting, improve glyph advance widths and resurrect
3210 normal/full hinting to its normal quality.
3211
3212 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
3213 and `xmax_delta'.
3214 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
3215 and `xmax_delta'.
3216
3217 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
3218 preprocessor conditional with if-clause, handling both light and
3219 normal mode.
3220
3221 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
3222 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00003223
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000032242007-01-25 Werner Lemberg <wl@gnu.org>
3225
3226 * docs/release: Updated -- Savannah uses a new uploading scheme.
3227
David Turnera42567b2007-01-25 12:23:37 +000032282007-01-25 David Turner <david@freetype.org>
3229
Werner Lembergd7855662007-01-25 13:53:56 +00003230 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00003231
Werner Lembergd7855662007-01-25 13:53:56 +00003232 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
3233 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
3234 functions.
David Turnera42567b2007-01-25 12:23:37 +00003235
Werner Lembergd7855662007-01-25 13:53:56 +00003236 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00003237
Werner Lembergb1be9e82007-01-25 11:50:00 +000032382007-01-25 Werner Lemberg <wl@gnu.org>
3239
3240 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00003241 correctly in a sanity check. Since this function is only used to
3242 load local and global functions, any charstring that called the last
3243 local/global function would fail otherwise. This fixes Savannah bug
3244 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00003245
3246 * docs/CHANGES: Document it.
3247
David Turnerb6de8d12007-01-23 15:51:50 +000032482007-01-23 David Turner <david@freetype.org>
3249
Werner Lembergb1be9e82007-01-25 11:50:00 +00003250 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
3251 prevented compilation when disabling both the unpatented and the
3252 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00003253
Werner Lembergb1be9e82007-01-25 11:50:00 +00003254
3255 Fix and enable the warper to improve `light' hinting mode. This is
3256 not necessarily a final version, but it seems to work well.
3257
3258 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
3259 Disable code.
3260 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
3261 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
3262
3263 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
3264 (af_warper_compute_line_best): Fix array size of `scores'.
3265 (af_warper_compute): Better handling of border cases.
3266 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
3267 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00003268
Werner Lemberg011d1112007-01-21 09:36:00 +000032692007-01-21 Werner Lemberg <wl@gnu.org>
3270
Werner Lemberg42b63b22007-01-21 21:01:33 +00003271 * ChangeLog: Split off older entries into...
3272 * ChangeLog.22: This new file.
3273
32742007-01-21 Werner Lemberg <wl@gnu.org>
3275
Werner Lemberg555258f2007-01-21 09:46:37 +00003276 * docs/CHANGES: Document SHZ fix.
3277
32782007-01-21 George Williams <gww@silcom.com>
3279
3280 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
3281 points.
3282
32832007-01-21 Werner Lemberg <wl@gnu.org>
3284
Werner Lemberg011d1112007-01-21 09:36:00 +00003285 * src/sfnt/ttmtx.c (tt_face_get_metrics)
3286 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
3287
Werner Lemberg87a5a432007-01-17 12:44:39 +000032882007-01-17 Werner Lemberg <wl@gnu.org>
3289
Werner Lembergb8003292007-01-17 12:56:25 +00003290
3291 * Version 2.3.0 released.
3292 =========================
3293
3294
3295 Tag sources with `VER-2-3-0-FINAL'.
3296
32972007-01-17 Werner Lemberg <wl@gnu.org>
3298
Werner Lemberg87a5a432007-01-17 12:44:39 +00003299 * docs/release: Updated.
3300
David Turner22122722007-01-16 20:06:44 +000033012007-01-16 David Turner <david@freetype.org>
3302
Werner Lemberg87a5a432007-01-17 12:44:39 +00003303 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
3304 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
3305 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
3306 warnings.
David Turner22122722007-01-16 20:06:44 +00003307
Werner Lemberg267e1d72007-01-15 07:48:09 +000033082007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
3309
3310 * builds/amiga/makefile, builds/amiga/makefile.os4,
3311 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
3312
3313 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
3314
Werner Lemberg8c4120d2007-01-15 06:42:40 +000033152007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
3316
3317 Fix various compiler warnings.
3318
3319 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
3320 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
3321 s/index/strike_index/.
3322 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
3323
3324 * src/gxvalid/gxvmorx5.c
3325 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
3326
3327 * src/truetype/ttinterp.c (Compute_Point_Displacement),
3328 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
3329 uninitialized variables.
3330
Werner Lemberg6164a9d2007-01-13 23:01:36 +000033312007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3332
3333 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
3334
Werner Lemberg281c1482007-01-13 22:50:51 +000033352007-01-13 Werner Lemberg <wl@gnu.org>
3336
3337 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
3338 versions up to 0x3FF without complaining.
3339
Werner Lembergac250b22007-01-13 14:01:36 +000033402007-01-13 Derek Clegg <dclegg@apple.com>
3341
3342 Add FT_Get_PS_Font_Info interface to CFF driver.
3343
3344 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
3345 (CFF_FontRec): Add `font_info' field.
3346
3347 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
3348 (cff_font_done): Free font->font_info if necessary.
3349
3350 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
3351 (cff_service_ps_info): Register cff_ps_get_font_info.
3352
Werner Lemberg23df31a2007-01-13 08:45:00 +000033532007-01-13 Werner Lemberg <wl@gnu.org>
3354
3355 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
3356 with C++ compiler.
3357
3358 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
3359 af_glyph_hints_dump_edges): Ditto.
3360
3361 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
3362 `modules.cfg').
3363
3364 * src/sfnt/ttsbit0.h: Remove.
3365
3366 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
3367
Werner Lemberg27cf9de2007-01-13 07:34:23 +000033682007-01-12 David Turner <david@freetype.org>
3369
3370 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
3371 bug in the bitmap emboldener if the pitch of the source bitmap is
3372 much larger than its width.
3373
3374 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
3375 compilation warning.
3376
Werner Lemberg6d96d312007-01-12 10:30:19 +000033772007-01-12 Werner Lemberg <wl@gnu.org>
3378
3379 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
3380 `automake' CVS module from sources.redhat.com.
3381
Werner Lemberg17432b52007-01-12 09:28:44 +000033822007-01-11 Werner Lemberg <wl@gnu.org>
3383
3384 * src/type1/t1load.c (is_space): Removed.
3385 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
3386 (parse_charstrings): Use IS_PS_TOKEN.
3387
3388
3389 * autogen.sh: Avoid bash specific syntax.
3390
David Turner038ace22007-01-11 15:00:59 +000033912007-01-11 David Turner <david@freetype.org>
3392
Werner Lemberg17432b52007-01-12 09:28:44 +00003393 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00003394
Werner Lemberg17432b52007-01-12 09:28:44 +00003395 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00003396
Werner Lemberg17432b52007-01-12 09:28:44 +00003397 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
3398 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00003399 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00003400
Werner Lemberg17432b52007-01-12 09:28:44 +00003401 * autogen.sh: Small fix to get it working on Mac OS X properly:
3402 The issue is that GNU libtool is called `glibtool' on this platform,
3403 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00003404
David Turner2628ea92007-01-10 13:15:56 +000034052007-01-10 David Turner <david@freetype.org>
3406
Werner Lemberg17432b52007-01-12 09:28:44 +00003407 * all-sources: Tag all sources with VER-2-3-0-RC1 and
3408 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00003409
Werner Lemberg17432b52007-01-12 09:28:44 +00003410 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
3411 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
3412 version number to 2.3.0.
3413
3414 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
3415 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00003416
3417 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00003418 include/freetype/ftlcdfil.h: Update reference documentation with
3419 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00003420
Werner Lemberg17432b52007-01-12 09:28:44 +00003421 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
3422 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00003423
Werner Lembergbf02d392007-01-10 07:07:37 +000034242007-01-10 Derek Clegg <dclegg@apple.com>
3425
3426 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
3427 values.
3428
David Turnerf48b60e2007-01-08 15:15:32 +000034292007-01-08 David Turner <david@freetype.org>
3430
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003431 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00003432
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003433 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
3434 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00003435 corresponding to a given character pixel size.
3436
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003437 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
3438 `gasp' table, in order to avoid potential problems with later
3439 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00003440
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003441 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
3442 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00003443
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003444 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
3445 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
3446 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
3447 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00003448
Werner Lemberge6b6f372007-01-07 00:06:47 +000034492007-01-07 Werner Lemberg <wl@gnu.org>
3450
Werner Lembergb8004d22007-01-07 09:13:38 +00003451 * src/cid/cidparse.c (cid_parser_new): Improve error message for
3452 Type 11 fonts.
3453 Scan for `/sfnts' token.
3454
34552007-01-07 Werner Lemberg <wl@gnu.org>
3456
3457 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00003458
Werner Lembergbe5f7972007-01-06 07:51:48 +000034592007-01-06 Werner Lemberg <wl@gnu.org>
3460
3461 * src/cff/cffload.c (cff_index_init): Remove unused variable.
3462 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
3463
David Turnera8cf42b2007-01-04 16:46:46 +000034642007-01-04 David Turner <david@freetype.org>
3465
Werner Lembergf6294392007-01-06 07:47:45 +00003466 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
3467 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00003468
Werner Lembergf6294392007-01-06 07:47:45 +00003469
3470 Do not allocate interpreter-specific tables in memory if we are not
3471 going to load glyphs with the bytecode interpreter anyway.
3472
3473 * src/truetype/ttgload.c (tt_loader_init): Load execution context
3474 only if glyph is hinted.
3475 Updated.
3476 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
3477 and `cvs_ready'.
3478 Add `tt_size_ready_bytecode' declaration.
3479 * src/truetype/ttobjs.c (tt_size_done_bytecode,
3480 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
3481 (tt_size_init): Move most code into `tt_size_init_bytecode'.
3482 (tt_size_done): Move most code into `tt_size_done_bytecode'.
3483 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00003484
David Turner91a34022007-01-05 14:47:08 +00003485
Werner Lembergf6294392007-01-06 07:47:45 +00003486 Don't extract the metrics table from the SFNT font file. Instead,
3487 reparse it on each glyph load. The runtime difference is not
3488 noticeable, and it can save a lot of heap memory when memory-mapped
3489 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00003490
Werner Lembergf6294392007-01-06 07:47:45 +00003491 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
3492 `horz_metrics_offset' and `vert_metrics_ofset'.
3493 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
3494 Updated.
3495
3496
3497 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
3498
3499
3500 Do not load the CFF index offsets into memory, since this wastes a
3501 *lot* of heap memory with large Asian CFF fonts. There is no
3502 significant performance loss.
3503
3504 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
3505 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
3506 `data_size'.
3507 (CFF_CharsetRec): Add field `num_glyphs'.
3508
3509 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
3510 cff_charset_cid_to_gindex): New functions.
3511 (cff_new_index): Renamed to...
3512 (cff_index_init): This. Update all callers.
3513 Updated -- some code has been moved to `cff_index_load_offsets'.
3514 (cff_done_index): Renamed to...
3515 (cff_index_done): This. Update all callers.
3516 (cff_index_get_pointers, cff_index_access_element): Updated to use
3517 stream offsets.
3518 (cff_charset_compute_cids): Set `num_glyphs' field.
3519 (cff_encoding_load): Updated.
3520
3521 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00003522
35232007-01-04 David Turner <david@freetype.org>
3524
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003525 * docs/INSTALL.UNIX: Simplify some parts, add reference to
3526 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00003527
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003528 * README.CVS: Add common problem description and solution
3529 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00003530
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003531 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00003532
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003533 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00003534
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003535 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00003536
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003537 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
3538 (TWorker): This.
3539 Remove `count_table' and `memory'.
3540 Make `grays' a pointer.
3541 (TRaster): New structure.
3542 (count_table): New static array.
3543 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
3544 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
3545 ft_black_set_mode, ft_black_render): Updated.
3546 (ft_black_init): Don't initialize `count_table'.
3547 (ft_black_reset): Use the render pool. This saves about 6KB of
3548 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00003549
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003550 * src/smooth/ftgrays.c (TRaster): Replaced with...
3551 (TWorker): This.
3552 Remove `memory'.
3553 (TRaster): New structure.
3554
3555 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
3556 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
3557 gray_render_span, gray_raster_render): Updated.
3558 (gray_raster_reset): Use the render pool. This saves about 6KB of
3559 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00003560
David Turner8a6c44e2007-01-04 17:03:11 +00003561 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
3562 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003563 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
3564 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
3565 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00003566
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003567 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
3568 Remove a typo that results in no hinting and a memory leak with some
3569 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00003570
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003571 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00003572 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003573 CFF_Faces in it. We need to close all faces before destroying the
3574 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00003575
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000035762007-01-02 Werner Lemberg <wl@gnu.org>
3577
3578 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
3579 Remove compiler warning.
3580
David Turner9207e002007-01-02 16:58:13 +000035812007-01-02 David Turner <david@freetype.org>
3582
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003583 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00003584
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000035852006-12-31 Masatake YAMATO <jet@gyve.org>
3586
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003587 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
3588 function.
3589 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00003590 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003591 `gxv_kern_subtable_fmt0_pairs_validate'.
3592
David Turner115b4422006-12-22 11:37:05 +000035932006-12-22 David Turner <david@freetype.org>
3594
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003595 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
3596 warnings.
David Turner115b4422006-12-22 11:37:05 +00003597
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003598 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
3599 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00003600
Werner Lemberg4755bf72006-12-16 08:58:44 +000036012006-12-16 Anders Kaseorg <anders@kaseorg.com>
3602
3603 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
3604 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
3605
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000036062006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3607
Werner Lemberg9b774e22007-01-16 06:11:27 +00003608 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00003609 sync with the modification by Jens Claudius on 2006-08-22; cf.
3610 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 +00003611
36122006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3613
3614 * src/base/ftmac.c: Specialized for Mac OS X only.
3615 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
Werner Lemberg830846e2008-07-27 06:27:21 +00003616 * builds/unix/configure.raw: Ditto. When explicit switches for
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +00003617 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
3618 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
3619
36202006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3621
3622 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
3623 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
3624 instead of src/base/ftmac.c
3625 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
3626 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
3627 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
3628 that cannot be built at present.
3629
36302006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3631
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00003632 * src/base/ftobjs.c: Improvement of resource fork handler for
3633 POSIX, cf.
3634 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003635 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
3636 format or .dfont, to simulate the face index number counted by ftmac.c.
3637 (IsMacResource): Return the number of scalable faces correctly.
3638
Werner Lembergec5b4502006-12-10 07:51:38 +000036392006-12-10 Werner Lemberg <wl@gnu.org>
3640
3641 * builds/toplevel.mk (version): Protect against `distclean' target.
3642
Werner Lembergb26b3142006-12-09 20:01:43 +000036432006-12-09 Werner Lemberg <wl@gnu.org>
3644
3645 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
3646 or `type'.
3647
3648 * builds/freetype.mk (version): Extracted from freetype.h, using
3649 GNU make's built-in string functions.
3650 (refdoc): Use $(version) instead of static version number.
3651
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000036522006-12-08 Werner Lemberg <wl@gnu.org>
3653
3654 * builds/toplevel.mk (dist): Extract version number from freetype.h.
3655
Werner Lemberg15c29502006-12-09 07:29:54 +000036562006-12-08 Vladimir Volovich <vvv@vsu.ru>
3657
3658 * src/tools/apinames (State): Remove final comma in structure -- xlc
3659 v5 under AIX 4.3 doesn't like this.
3660
David Turnerdbf3b432006-12-07 21:18:09 +000036612006-12-07 David Turner <david@freetype.org>
3662
Werner Lemberg256a3512006-12-08 06:49:33 +00003663 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
3664 to the spacing of auto-fitted glyphs. This only impacts rare
3665 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00003666
Werner Lemberg11171312006-12-03 09:43:40 +000036672006-12-03 Werner Lemberg <wl@gnu.org>
3668
3669 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
3670
Werner Lemberg960ba592006-12-01 08:20:47 +000036712006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00003672
Werner Lemberg960ba592006-12-01 08:20:47 +00003673 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
3674 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
3675 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00003676
David Turner80658e52006-11-28 08:09:20 +00003677
Werner Lemberg960ba592006-12-01 08:20:47 +00003678 * include/freetype/ftxf86.h: Fix and extend comment so that it
3679 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00003680
Werner Lemberg960ba592006-12-01 08:20:47 +00003681 * include/freetype/ftchapters.h: Add `font_format' section.
3682
3683
3684 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
3685 to TOC in index page.
3686
36872006-11-28 David Turner <david@freetype.org>
3688
3689 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
3690 trying to render into a zero-width/height bitmap, not an error code.
3691
3692 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
3693
3694 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
3695 ones instead.
3696
3697 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
3698 variable.
David Turner80658e52006-11-28 08:09:20 +00003699
Werner Lemberg8636c292006-11-26 22:28:13 +000037002006-11-26 Pierre Hanser <hanser@club-internet.fr>
3701
3702 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
3703
Werner Lemberg960ba592006-12-01 08:20:47 +000037042006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00003705
Werner Lemberg960ba592006-12-01 08:20:47 +00003706 * src/autofit/afhints.c (af_glyph_hints_dump_points,
3707 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
3708 Add stubs to link the `ftgrid' test program when debugging is
3709 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00003710
Werner Lemberg960ba592006-12-01 08:20:47 +000037112006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00003712
3713 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00003714 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
3715
3716 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
3717 Emit more sensible information.
3718
3719 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
3720
3721 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
3722 rounding of blue values.
3723 (af_latin_hints_compute_segments): Hint segment heights.
3724 (af_latin_hints_link_segments): Reduce `len_score' value.
3725 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
3726 value and use `height' member for comparisons.
3727 (af_latin_hint_edges): Extend logging message.
3728 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00003729
Werner Lemberg91959bf2006-11-22 10:36:55 +000037302006-11-22 Werner Lemberg <wl@gnu.org>
3731
3732 Fix Savannah bug #15553.
3733
3734 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
3735 program after a change from mono to grayscaling (and vice versa).
3736 Use correct constant for comparison to get `exec->grayscale'.
3737
Werner Lemberg913a3652006-11-19 09:19:17 +000037382006-11-18 Werner Lemberg <wl@gnu.org>
3739
3740 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00003741 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00003742 This patch fixes Savannah bug #18301.
3743
3744 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
3745 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
3746 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
3747 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
3748 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
3749 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
3750 (FNT_Load_Glyph): Check validity of `glyph_index'.
3751
David Turner7bab6ae2006-11-13 11:25:06 +000037522006-11-13 David Turner <david@freetype.org>
3753
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003754 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
3755 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00003756
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003757 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
3758 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
3759 when building the library to change the default LCD filter to be
3760 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00003761
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003762 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00003763
David Turner8765c712006-11-10 16:49:42 +000037642006-11-10 David Turner <david@freetype.org>
3765
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003766 * src/smooth/ftsmooth.c: API change for the LCD
3767 filter. The FT_LcdFilter value is an enumeration describing which
3768 filter to apply, with new values FT_LCD_FILTER_LIGHT and
3769 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
3770 algorithm which produces strong color fringes for everything
3771 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00003772
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003773 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
3774 second parameter to an enum type.
3775
3776 * src/base/ftlcdfil.c (USE_LEGACY): Define.
3777 (_ft_lcd_filter): Rename to...
3778 (_ft_lcd_filter_fir): This.
3779 Update parameters.
3780 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
3781 (FT_Library_Set_LcdFilter): Update parameters.
3782 Handle new filter modes.
3783
3784 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
3785 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
3786 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
3787 callback and update other fields.
3788
3789 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
3790 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
3791 Other minor improvements.
3792
3793 * src/autofit/aflatin.c: Various tiny improvements that drastically
3794 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
3795 (af_latin_hints_compute_edges): Fix typo.
3796 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00003797
David Turner4e9cc3c2006-11-09 16:31:52 +000037982006-11-09 David Turner <david@freetype.org>
3799
Werner Lemberg49c77a82006-11-09 21:51:57 +00003800 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
3801 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00003802
Werner Lemberg5e430892006-11-07 09:35:03 +000038032006-11-07 Zhe Su <james.su@gmail.com>
3804
3805 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
3806 also.
3807
Werner Lemberg111b5ae2006-11-03 09:40:12 +000038082006-11-03 Werner Lemberg <wl@gnu.org>
3809
3810 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
3811
David Turner40604742006-11-02 16:37:35 +000038122006-11-02 David Turner <david@freetype.org>
3813
Werner Lemberg111b5ae2006-11-03 09:40:12 +00003814 Add a few tweaks to better handle serif fonts.
3815 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00003816
Werner Lemberg111b5ae2006-11-03 09:40:12 +00003817 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
3818 segments that are less than 1.5 pixels high. This gets rid of
3819 *many* corner cases with serifs.
3820 (af_latin_align_linked_edge): Add logging message.
3821 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
3822 Add logging messages.
3823 Handle AF_EDGE_FLAG flag specially.
3824
3825 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
3826 _af_debug_disable_blue_hints, and _af_debug_hints variables.
3827
3828 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
3829 Update external declarations.
3830 (af_corner_orientation, af_corner_is_flat): Replaced by...
3831
3832 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
3833 ft_corner_is_flat): These declarations.
3834
3835 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
3836 Comment out. Replaced by...
3837
3838 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
3839 These functions. Update all callers.
3840 (FT_Add64) [!FT_LONG64]: Simplify.
3841
3842 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
3843 (af_direction_compute): Add a missing FT_ABS call. This bug caused
3844 production of garbage by missing lots of segments.
3845
3846 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
3847
3848 * src/autofit/afloader.c (af_loader_init, af_loader_done)
3849 [AF_DEBUG]: Set _af_debug_hints.
3850
3851
3852 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
3853 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
3854 and ft_corner_orientation.
3855
3856
3857 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00003858
Werner Lemberge88c5262006-10-24 05:46:26 +000038592006-10-24 Werner Lemberg <wl@gnu.org>
3860
3861 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
3862
3863 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
3864 as argument.
3865
David Turnera1861392006-10-23 16:00:59 +000038662006-10-23 Zhe Su <zsu@novell.com>
3867
Werner Lemberg715e96e2006-10-24 05:28:45 +00003868 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
3869 better deal with broken Asian fonts with strange glyphs, having
3870 self-intersections and other peculiarities. The used algorithm is
3871 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00003872
David Turnere140f142006-10-23 08:56:57 +000038732006-10-23 David Turner <david@freetype.org>
3874
Werner Lemberg715e96e2006-10-24 05:28:45 +00003875 Speed up the CFF font loader. With some large CFF fonts,
3876 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00003877
Werner Lemberg715e96e2006-10-24 05:28:45 +00003878 * src/cff/cffload.c (cff_get_offset): Removed.
3879 (cff_new_index): Inline functionality of `cff_get_offset'.
3880 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
3881 (cff_charset_done): Call `cff_charset_free_cids'.
3882 (cff_charset_load): Call `cff_charset_compute_cids'.
3883 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
3884
3885 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
3886 with FT_NEXT_XXX.
3887
3888
3889 Speed up the Postscript hinter, with more than 100% speed increase
3890 on my machine.
3891
3892 * src/pshinter/pshalgo.c (psh_corner_is_flat,
3893 psh_corner_orientation): New functions.
3894 (psh_glyph_compute_inflections): Merge loops for efficiency.
3895 Use `psh_corner_orientation'.
3896 (psh_glyph_init): Use `psh_corner_is_flat'.
3897 (psh_hint_table_find_strong_point): Renamed to...
3898 (psh_hint_table_find_strong_points): This.
3899 Rewrite, adding argument to handle all points at once.
3900 Update all callers.
3901 (PSH_MAX_STRONG_INTERNAL): New macro.
3902 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00003903
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000039042006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3905
3906 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00003907 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00003908
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000039092006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3910
3911 * docs/INSTALL.CROSS: New document file for cross-building.
3912
3913 * builds/unix/configure.raw: Preliminary cross-building support.
3914 Find native C compiler and pass it by CC_BUILD, and
3915 find suffix for native executable and pass it by EXEEXT_BUILD.
3916 Also suffix for target executable is passed by EXEEXT.
3917
Werner Lembergb9e6d692006-10-15 08:58:40 +00003918 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
3919 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00003920 CC_BUILD and EXEEXT_BUILD.
3921
Werner Lembergb9e6d692006-10-15 08:58:40 +00003922 * builds/exports.mk (APINAMES_EXE): Change the extension for
3923 apinames from the suffix for target (E) to that for building host
3924 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00003925
Werner Lemberg82a07e92006-10-12 06:20:44 +000039262006-10-12 Werner Lemberg <wl@gnu.org>
3927
3928 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
3929 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
3930 which reference those files.
3931
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000039322006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3933
Werner Lembergb9e6d692006-10-15 08:58:40 +00003934 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
3935 embedded in freetype2.pc and freetype-config. Use it to record
3936 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00003937
3938 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
3939
3940 * builds/unix/freetype-config.in: Ditto.
3941
Werner Lemberg28e17d92006-10-11 17:27:47 +000039422006-10-11 Werner Lemberg <wl@gnu.org>
3943
3944 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
3945 development.
3946
Jens Claudius336d2292006-10-03 08:53:37 +000039472006-10-03 Jens Claudius <jens.claudius@yahoo.com>
3948
3949 * include/freetype/config/ftstdlib.h: Cast away volatileness from
3950 argument to ft_setjmp.
3951
3952 * include/freetype/internal/ftvalid.h: Add comment that
3953 ft_validator_run must not be used.
3954
Werner Lemberg2863cfa2006-10-01 17:04:00 +000039552006-10-01 Werner Lemberg <wl@gnu.org>
3956
3957 * src/base/ftbase.c: Undo change from 2006-09-30.
3958
3959 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
3960
39612006-09-30 David Turner <david@freetype.org>
3962
Werner Lemberg046bf8b2006-10-03 08:43:42 +00003963 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
3964 s/unpatented_hinting/ignore_unpatented_hinter/.
3965 Update all callers.
3966
3967 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
3968 auto-hinting shall be used or not.
3969
3970 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00003971
Werner Lemberg2863cfa2006-10-01 17:04:00 +000039722006-09-30 Werner Lemberg <wl@gnu.org>
3973
Werner Lemberg1e4402e2006-09-29 22:10:36 +00003974 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
3975 in use).
3976
3977 * src/base/ftbase.c: Include `ftlcdfil.c'.
3978
Werner Lemberg9b15ea32006-09-29 18:22:11 +000039792006-09-29 Werner Lemberg <wl@gnu.org>
3980
3981 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
3982 overlapping segments. Bug reported by Stefan Koch.
3983
David Turnerad830712006-09-27 16:20:59 +000039842006-09-28 David Turner <david@freetype.org>
3985
Werner Lemberg2c002e12006-09-29 21:31:53 +00003986 Fix a bug in the automatic unpatented hinting support which prevents
3987 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00003988
Werner Lemberg2c002e12006-09-29 21:31:53 +00003989 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
3990 s/force_autohint/unpatented_hinting/. Update all callers.
3991
3992 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
3993
3994 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00003995
David Turner8a317cf2006-09-27 07:52:48 +000039962006-09-27 David Turner <david@freetype.org>
3997
Werner Lemberg2c002e12006-09-29 21:31:53 +00003998 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00003999
David Turner8a317cf2006-09-27 07:52:48 +00004000
David Turnere140f142006-10-23 08:56:57 +00004001 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00004002 In a default build, the function `FT_Library_SetLcdFilter' returns
4003 `FT_Err_Unimplemented_Feature'; you need to #define
4004 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
4005 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00004006
Werner Lemberg2c002e12006-09-29 21:31:53 +00004007 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00004008
Werner Lemberg2c002e12006-09-29 21:31:53 +00004009 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
4010 typedef.
4011 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
4012 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00004013
Werner Lemberg2c002e12006-09-29 21:31:53 +00004014 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
4015 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00004016
Werner Lemberg2c002e12006-09-29 21:31:53 +00004017 Handle subpixel rendering.
4018 Simplify function.
4019 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
4020 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
4021
4022 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
4023 pointing to <freetype/ftlcdfil.h>.
4024
4025 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
4026 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
4027
4028 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00004029
Werner Lemberge20df4a2006-09-27 06:29:21 +000040302006-09-26 David Bustin
4031
4032 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
4033 correctly. Reported as Savannah bug #17843.
4034
David Turner6f8c6222006-09-26 15:42:44 +000040352006-09-26 David Turner <david@freetype.org>
4036
Werner Lemberg110246c2006-09-26 21:55:44 +00004037 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
4038 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
4039 horizontal and vertical hinting for the purpose of debugging the
4040 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00004041
Werner Lemberg110246c2006-09-26 21:55:44 +00004042 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
4043 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00004044
Werner Lemberg110246c2006-09-26 21:55:44 +00004045 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
4046
4047 * include/freetype/config/ftoption.h, devel/ftoption.h
4048 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
4049 we want to compile LCD-optimized rendering code (à la ClearType) or
4050 not. The macro *must* be disabled in default builds of the library
4051 for patent reasons.
4052
4053 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
4054 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
4055 isn't defined at compile time. This only changes the content of the
4056 rendered glyph to match the one of normal gray-level rendering,
4057 hence clients should not need to be modified.
4058
4059 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00004060
Werner Lemberg745ff2c2006-09-19 05:48:02 +000040612006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
4062
4063 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
4064 LWFN fails and both are available.
4065
David Turnerf3050052006-09-11 12:00:32 +000040662006-09-11 David Turner <david@freetype.org>
4067
Werner Lembergf9644552006-09-12 13:48:10 +00004068 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
4069 report their English names through an Apple Roman
4070 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00004071
Werner Lembergf9644552006-09-12 13:48:10 +00004072 If the font uses another name entry with language_id == English, it
4073 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00004074
Werner Lembergf9644552006-09-12 13:48:10 +00004075 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
4076 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00004077
Werner Lemberg36d2eab2006-09-05 19:24:34 +000040782006-09-05 Werner Lemberg <wl@gnu.org>
4079
4080 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00004081 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00004082 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
4083 `HAN NOM B.ttf').
4084
4085 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
4086
David Turner772e55d2006-09-05 09:45:15 +000040872006-09-05 David Turner <david@freetype.org>
4088
Werner Lemberg36d2eab2006-09-05 19:24:34 +00004089 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00004090
Werner Lemberg36d2eab2006-09-05 19:24:34 +00004091 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
4092 (TRaster): Remove `count_ex' and `count_ey'.
4093 (gray_find_cell): Remove 2nd and 3rd argument.
4094 (gray_alloc_cell): Merged with `gray_find_cell'.
4095 (gray_record_cell): Simplify.
4096 (gray_set_cell): Rewrite.
4097 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
4098 (gray_render_span): Don't use FT_MEM_SET for small values.
4099 (gray_dump_cells) [DEBUG_GRAYS]: New function.
4100 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
4101 bitmap scanline.
4102 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00004103
David Turneraa557a92006-09-04 16:42:44 +000041042006-09-04 David Turner <david@freetype.org>
4105
Werner Lembergd1fc7d42006-09-05 07:55:42 +00004106 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
4107 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00004108
Werner Lemberg2d8629b2006-09-03 06:18:45 +000041092006-09-03 Werner Lemberg <wl@gnu.org>
4110
4111 * devel/ftoption.h: Synchronize with
4112 include/freetype/config/ftoption.h.
4113
4114 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
4115 variable declaration.
4116 (gray_convert_glyph): Fix compiler warnings.
4117
David Turner6d79f212006-09-01 14:09:35 +000041182006-09-01 David Turner <david@freetype.org>
4119
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004120 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
4121 to recognize a few fonts that require the automatic unpatented
4122 loader.
David Turnerbd502952006-09-01 19:05:24 +00004123
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004124 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
4125 rasterizer. The speed improvement is between 15% and 25%, depending
4126 on the font data.
4127
4128 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
4129 (TCell): Redefine.
4130 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
4131 (gray_init_cells): Updated.
4132 (gray_find_cell, gray_alloc_cell): New functions.
4133 (gray_record_cell): Rewritten to use `gray_find_cell' and
4134 `gray_alloc_cell'.
4135 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
4136 QSORT_THRESHOLD):
4137 Removed.
4138 (gray_shell_sort, gray_quick_sort, gray_check_sort,
4139 gray_dump_cells): Removed.
4140 (gray_sweep): Rewritten.
4141 (gray_convert_glyph): Rewrite code which used one of the sorting
4142 functions.
4143 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00004144
Werner Lembergd898aed2006-08-29 09:50:34 +000041452006-08-29 Dr. Werner Fink <werner@suse.de>
4146
4147 * configure: Make it possible to handle configure options which
4148 have strings containing spaces.
4149
41502006-08-27 David Turner <david@freetype.org>
4151
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004152 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
4153 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
4154 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
4155
4156 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
4157 src/truetype/truetype.c, src/truetype/ttdriver.c,
4158 src/truetype/ttgload.c, src/truetype/ttgload.h,
4159 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
4160 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
4161 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
4162
4163 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
4164 member `force_autohint'.
4165
4166 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
4167
4168 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
4169 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00004170
Jens Claudiusa787f452006-08-27 11:26:18 +000041712006-08-27 Jens Claudius <jens.claudius@yahoo.com>
4172
4173 Fix miscellaneous compiler warnings.
4174
Werner Lemberg32e05a62008-05-04 16:53:22 +00004175 * include/freetype/internal/ftobjs.h: Close comment with `*/' to
4176 avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00004177
Werner Lemberg32e05a62008-05-04 16:53:22 +00004178 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004179 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
4180 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00004181
Werner Lemberg32e05a62008-05-04 16:53:22 +00004182 * src/base/ftobjs.c (t_validator_error): Cast away
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004183 volatileness of argument to ft_longjmp. Spotted by Werner
4184 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00004185
Werner Lemberg32e05a62008-05-04 16:53:22 +00004186 * src/bdf/bdflib.c (bdf_load_font): Initialize local
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004187 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00004188
Werner Lemberg32e05a62008-05-04 16:53:22 +00004189 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
4190 `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00004191
Werner Lembergc4c35b72006-08-27 08:03:46 +000041922006-08-27 Werner Lemberg <wl@gnu.org>
4193
4194 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
4195 Reported by Jens.
4196
Jens Claudius088e44e2006-08-22 14:24:30 +000041972006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00004198
Jens Claudius088e44e2006-08-22 14:24:30 +00004199 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00004200 about addresses of volatile objects passed as function arguments as
4201 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00004202
Werner Lemberg32e05a62008-05-04 16:53:22 +00004203 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
4204 pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004205
Werner Lemberg32e05a62008-05-04 16:53:22 +00004206 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
4207 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004208
Werner Lemberg32e05a62008-05-04 16:53:22 +00004209 * src/otvalid/otvmod.c (otv_load_table): Make function argument
4210 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004211
Jens Claudius2652bd52006-08-18 17:20:37 +000042122006-08-18 Jens Claudius <jens.claudius@yahoo.com>
4213
Werner Lemberg32e05a62008-05-04 16:53:22 +00004214 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
4215 as volatile since it must keep its value across a call to ft_setjmp.
Jens Claudius2652bd52006-08-18 17:20:37 +00004216 (gxv_validate): Same for local variables `memory' and `valid'.
4217 (classic_kern_validate): Same for local variables `memory',
4218 `ckern', and `valid'.
4219
Werner Lemberg32e05a62008-05-04 16:53:22 +00004220 * src/otvalid/otvmod.c (otv_validate): Same for function parameter
4221 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
4222 and 'valid'.
Jens Claudius2652bd52006-08-18 17:20:37 +00004223
Werner Lemberg32e05a62008-05-04 16:53:22 +00004224 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
4225 `cmap'.
Jens Claudius2652bd52006-08-18 17:20:37 +00004226
David Turner9fbfc6a2006-08-16 09:11:31 +000042272006-08-16 David Turner <david@freetype.org>
4228
Werner Lemberg12342992006-08-19 11:18:09 +00004229 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
4230 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00004231
Werner Lemberg12342992006-08-19 11:18:09 +00004232 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
4233 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00004234
David Turner33f5f242006-08-16 16:50:55 +00004235
Werner Lemberg830846e2008-07-27 06:27:21 +00004236 Improvements to native TrueType hinting. This is a first try,
Werner Lemberg12342992006-08-19 11:18:09 +00004237 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
4238
4239 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
4240 `extra_points2'.
4241
4242 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
4243 `orus'.
4244
4245 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
4246 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
4247 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
4248 handle `extra_points2'.
4249
4250 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
4251 Remove compiler warning.
4252 (cur_to_arg): Remove macro.
4253 (TT_Hint_Glyph): Updated.
4254 (TT_Process_Simple_Glyph): Handle `orus'.
4255
4256 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
4257 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
4258 (LOC_Ins_IUP): Renamed to...
4259 (IUP_WorkerRec): This.
4260 Add `orus' member.
4261 (Shift): Renamed to...
4262 (_iup_worker_shift): This.
4263 Updated.
4264 (Interp): Renamed to...
4265 (_iup_worker_interpolate): This.
4266 Updated to handle `orus'.
4267 (Ins_IUP): Updated.
4268
4269 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
4270 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00004271
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000042722006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4273
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00004274 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00004275 build ftvalid in ft2demos. This has been inadvertedly changed
4276 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00004277
42782006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4279
Werner Lemberg12342992006-08-19 11:18:09 +00004280 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
4281 Jens:
4282 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004283
Werner Lemberg32e05a62008-05-04 16:53:22 +00004284 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
4285 It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004286
Werner Lemberg32e05a62008-05-04 16:53:22 +00004287 * src/gxvalid/gxvmod.c: Ditto.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004288
Jens Claudius9950adc2006-08-13 12:14:36 +000042892006-08-13 Jens Claudius <jens.claudius@yahoo.com>
4290
Werner Lemberg32e05a62008-05-04 16:53:22 +00004291 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
Werner Lemberg12342992006-08-19 11:18:09 +00004292 T1_TOKEN_TYPE_KEY.
4293 (T1_FieldRec): Add `dict'.
4294 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
4295 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
4296 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00004297
Werner Lemberg32e05a62008-05-04 16:53:22 +00004298 * src/cid/cidload.c: (cid_field_records): Adjust invocations of
4299 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004300
Werner Lemberg32e05a62008-05-04 16:53:22 +00004301 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004302
Werner Lemberg32e05a62008-05-04 16:53:22 +00004303 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00004304 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
4305 not T1_TOKEN_TYPE_ANY.
4306 (ps_parser_load_field): Make sure a token that should be a string or
4307 name is really a string or name.
4308 Avoid memory leak if a keyword has been already encountered and its
4309 value is overwritten.
Werner Lemberg32e05a62008-05-04 16:53:22 +00004310 * src/type1/t1load.c: (t1_keywords): Adjust invocations of
Werner Lemberg12342992006-08-19 11:18:09 +00004311 T1_FIELD_XXX.
4312 (parse_dict): Ignore keywords that occur in the wrong dictionary
4313 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00004314
Werner Lemberg32e05a62008-05-04 16:53:22 +00004315 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004316
Werner Lemberg32e05a62008-05-04 16:53:22 +00004317 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
4318 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004319
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000043202006-07-18 Jens Claudius <jens.claudius@yahoo.com>
4321
4322 Move creation of field `buildchar' of T1_DecoderRec out of
4323 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
4324 of it.
4325
4326 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
4327 and `T1_Compute_Max_Advance'.
4328
Werner Lemberg32e05a62008-05-04 16:53:22 +00004329 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
4330 `face', add `len_buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004331
Werner Lemberg32e05a62008-05-04 16:53:22 +00004332 * include/freetype/internal/t1types.h (T1_FaceRec): Add field
4333 `buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004334
Werner Lemberg32e05a62008-05-04 16:53:22 +00004335 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
4336 for T1_Decoder.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004337 (cid_slot_load_glyph): Do not ignore failure when initializing the
4338 T1_Decoder.
4339
Werner Lemberg32e05a62008-05-04 16:53:22 +00004340 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004341 (t1_decoder_init): Remove initialization of fields `buildchar' and
4342 `len_buildchar'.
4343 (t1_decoder_done): Remove deallocation of field `buildchar'.
4344
4345 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
4346 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
4347 T1_Decoder.
4348 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
4349 `len_buildchar'; make sure to call finisher for T1_Decoder even in
4350 case of error.
4351
Werner Lemberg32e05a62008-05-04 16:53:22 +00004352 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
4353 of T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004354
Werner Lemberg32e05a62008-05-04 16:53:22 +00004355 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
4356 T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004357
Werner Lemberg1a380e02006-07-14 18:28:08 +000043582006-07-14 Jens Claudius <jens.claudius@yahoo.com>
4359
Werner Lemberg32e05a62008-05-04 16:53:22 +00004360 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
4361 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
4362 and IS_PS_BASE85 (from src/psaux/psconv.h).
Werner Lemberg1a380e02006-07-14 18:28:08 +00004363 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
4364 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
4365 (T1_DecoderRec): New fields `buildchar' and `face'.
4366 (IS_PS_TOKEN): New macro.
4367
Werner Lemberg32e05a62008-05-04 16:53:22 +00004368 * include/freetype/internal/t1types.h (T1_FaceRec): New fields
4369 `ndv_idx', `cdv_idx', and `len_buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004370
Werner Lemberg32e05a62008-05-04 16:53:22 +00004371 * include/freetype/t1tables.h (PS_BlendRec): New fields
Werner Lemberg1a380e02006-07-14 18:28:08 +00004372 `default_design_vector' and `num_default_design_vector'.
4373
Werner Lemberg32e05a62008-05-04 16:53:22 +00004374 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
4375 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
4376 IS_PS_BASE85 to include/freetype/internal/psaux.h.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004377
Werner Lemberg32e05a62008-05-04 16:53:22 +00004378 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
4379 argument to be NULL if we want only to count the number of tokens.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004380 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
4381 want to skip the array.
4382 (ps_tofixedarray): Allow `values' argument to be NULL if we just
4383 want to skip the array.
4384
Werner Lemberg32e05a62008-05-04 16:53:22 +00004385 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
4386 for (partially commented out) othersubrs 19-25, 27, and 28.
4387 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004388 (t1_decoder_done): Release new field `buildchar'.
4389
Werner Lemberg32e05a62008-05-04 16:53:22 +00004390 * src/type1/t1load.c (parse_buildchar, parse_private): New
Werner Lemberg1a380e02006-07-14 18:28:08 +00004391 functions.
4392 (t1_keywords): Register them.
4393 (t1_allocate_blend): Updated.
4394 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
4395 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
4396 (parse_dict): Remove `keyword_flags' argument.
4397 Use new macro IS_PS_TOKEN.
4398 Changed function so that later PostScript definitions override
4399 earlier ones.
4400 (t1_init_loader): Initialize new field `keywords_encountered'.
4401 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
4402 `len_buildchar'.
4403 Remove `keywords_flags'.
4404
Werner Lemberg32e05a62008-05-04 16:53:22 +00004405 * src/type1/t1load.h (T1_LoaderRect): New field
Werner Lemberg1a380e02006-07-14 18:28:08 +00004406 `keywords_encountered'.
4407 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
4408
Werner Lemberg32e05a62008-05-04 16:53:22 +00004409 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
4410 entries for parsing /NDV, /CDV, and /DesignVector.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004411
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000044122006-07-07 Werner Lemberg <wl@gnu.org>
4413
4414 Add many checks to protect against malformed PCF files.
4415
4416 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
4417 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
4418
4419 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
4420 data and check that tables don't overlap (using a simple
4421 bubblesort).
4422 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
4423 New macros which give the size of data structures in the data
4424 stream.
4425 (pcf_get_properties): Use rough estimates to get array size limits.
4426 Assign `face->nprops' and `face->properties' earlier so that a call
4427 to PCF_Face_Done can do the clean-up in case of error.
4428 Protect against invalid string offsets.
4429 (pcf_get_metrics): Clean up code.
4430 Adjust tracing message levels.
4431 Use rough estimate to get array size limit.
4432 (pcf_get_bitmaps): Clean up code.
4433 Adjust tracing message levels.
4434 Use rough estimates to get offset limits.
4435 (pcf_get_encodings): Adjust tracing message level.
4436 (pcf_get_accel): Clean up code.
4437
Werner Lemberg8eb05252006-06-27 06:20:01 +000044382006-06-26 Werner Lemberg <wl@gnu.org>
4439
4440 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
4441 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
4442
Werner Lemberg24703f82006-06-26 19:12:51 +000044432006-06-26 Jens Claudius <jens.claudius@yahoo.com>
4444
4445 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
4446 (t1_decoder_parse_charstrings): Operator with
4447 opcode 15 pops its two arguments.
4448 Handle the case where the pops of an othersubr may be part of a
4449 subroutine.
4450 Handle unknown othersubrs gracefully: count their operands and let
4451 the following pop operators push the operands as the results onto
4452 the Type1 stack.
4453 Improve handling of setcurrentpoint opcode.
4454
Werner Lembergc011f4c2006-06-26 09:40:00 +000044552006-06-25 Jens Claudius <jens.claudius@yahoo.com>
4456
4457 The Type 1 parser now skips over top-level procedures as required
4458 for a `Simplified Parser'. This makes the parser more robust as it
4459 doesn't poke around in PostScript code. Additionally, it makes the
4460 FontDirectory hackery in src/type1/t1load.c unnecessary.
4461
4462 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
4463 (skip_literal_string): Add FT_Error as return value.
4464 Handle escapes better.
4465 (skip_string): Add FT_Error as return value.
4466 Don't set `parser->error' but return error code directly.
4467 (skip_procedure): New function.
4468 (ps_parser_skip_PS_token): Handle procedures.
4469 Update code.
4470 (ps_parser_to_token): Update code.
4471 (ps_parser_load_field_table): Handle bbox entries also.
4472
4473 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
4474 Add commented-out code for synthetic fonts.
4475
Werner Lemberga2da05c2006-06-25 06:27:27 +000044762006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
4477
4478 Fix two hinting bugs as reported in
4479 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
4480
4481 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
4482 `first_point' member.
4483
4484 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
4485 `first_point'.
4486 (TT_Process_Composite_Glyph): Always untouch points.
4487
4488 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
4489 `first_point' and `last_point' in case of composite glyphs.
4490 (Ins_IUP): Fix computation of `end_point'.
4491
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000044922006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4493
Werner Lembergef3d2c22006-06-25 06:07:14 +00004494 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
4495 Mac. The original patch was written by David Sachitano and Lawrence
4496 Coopet, and modified by Sean McBride for MPW compatibility. Only
4497 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00004498
Werner Lembergef3d2c22006-06-25 06:07:14 +00004499 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
4500 Mac OS X platforms.
4501 (OS_INLINE): Undefine before definition.
4502 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
4503 FontAssociation table in FOND resource.
4504 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
4505 and fontSize at each entry of FontAssociation table in FOND
4506 resource.
4507 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
4508 ffStylOff of FamilyRecord header of FOND resource, the header,
4509 fontSize, fontID at each entry of FontAssociation table, and
4510 StyleMapping table.
4511 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00004512
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000045132006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4514
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004515 Public API of TrueTypeGX, OpenType, and classic kern table validator
4516 should return `FT_Err_Unimplemented_Feature' if validation service
4517 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00004518 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004519 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
4520
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004521 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
4522 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
4523 unavailable.
4524 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
4525 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004526
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004527 * src/base/ftotval.c (FT_OpenType_Validate): Return
4528 FT_Err_Unimplemented_Feature if OpenType validation service is
4529 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004530
Werner Lembergb10e45a2006-06-08 07:32:56 +000045312006-06-08 Werner Lemberg <wl@gnu.org>
4532
4533 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
4534 errors.
4535
David Turner5f1f7502006-06-07 05:11:50 +000045362006-06-07 David Turner <david@freetype.org>
4537
Werner Lemberg7d48cb02006-06-08 06:00:08 +00004538 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
4539 (T1_Read_Metrics): Fix memory leak which happened when the metrics
4540 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00004541
David Turner457b4a82006-06-06 08:14:14 +000045422006-06-06 David Turner <david@freetype.org>
4543
Werner Lemberg4836f952006-06-06 12:54:08 +00004544 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00004545
Werner Lemberg4836f952006-06-06 12:54:08 +00004546 We change `ps_unicodes_init' so that it also takes a
4547 `free_glyph_name' callback to release the glyph names returned by
4548 `get_glyph_name'
4549
4550 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
4551 Renamed to ...
4552 (PS_GetGlyphNameFunc): This.
4553 (PS_FreeGlyphNameFunc): New typedef.
4554 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
4555
4556 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
4557 argument.
4558 (cff_sid_free_glyph_name): New function.
4559 (cff_cmap_unicode_init): Updated.
4560
4561 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
4562
4563 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
4564 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00004565
4566
David Turner09717352006-06-04 14:33:08 +000045672006-06-04 David Turner <david@freetype.org>
4568
Werner Lembergd724f202006-06-04 15:17:41 +00004569 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
4570 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00004571 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00004572
Werner Lembergd724f202006-06-04 15:17:41 +00004573 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
4574 of `face->num_glyphs' which missed the last glyph, due to
4575 the offset-by-1 computation, since the PFR format doesn't
4576 guarantee that glyph index 0 corresponds to the `missing
4577 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00004578
Werner Lemberg33779662006-05-26 06:30:05 +000045792006-05-25 Werner Lemberg <wl@gnu.org>
4580
4581 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
4582 `-no-undefined'. Reported by Christian Biesinger.
4583
Werner Lemberg24773d62006-05-20 08:53:13 +000045842006-05-19 Brian Weed <bw@imaginengine.com>
4585
4586 * builds/win32/visualc/freetype.dsp: Release libraries no longer
4587 have debug information, and debug libraries use `C7 compatible'
4588 debug info.
4589
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000045902006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4591
Werner Lemberga6523a62006-05-20 08:47:01 +00004592 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00004593 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004594
Werner Lemberga6523a62006-05-20 08:47:01 +00004595 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
4596 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004597
4598 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00004599 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004600
46012006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4602
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00004603 * build/unix/configure.raw: Add a fallback to disable Carbon
4604 dependency, if configured with no options on Mac OS X.
4605
46062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4607
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00004608 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00004609 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00004610 the second part of Savannah bug #16590.
4611
Werner Lemberg545c4e52006-05-17 22:55:04 +000046122006-05-18 Werner Lemberg <wl@gnu.org>
4613
4614 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
4615 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
4616
David Turnerdc3ff312006-05-17 12:59:35 +000046172006-05-17 David Turner <david@freetype.org>
4618
Werner Lemberg545c4e52006-05-17 22:55:04 +00004619 This is a major patch used to drastically improve the performance of
4620 loading glyphs. This both speeds up loading the glyph vectors
4621 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00004622
Werner Lemberg545c4e52006-05-17 22:55:04 +00004623 We now use inline assembler code with GCC to implement `FT_MulFix',
4624 which is probably the most important function related to the
4625 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00004626
Werner Lemberg545c4e52006-05-17 22:55:04 +00004627 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00004628
4629
Werner Lemberg545c4e52006-05-17 22:55:04 +00004630 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
4631 `cursor' and `limit'.
4632
4633 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
4634 New functions.
4635 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
4636 [TEST]: Remove.
4637
4638 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
4639 code.
4640
4641 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
4642 `FT_ZERO'
4643 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
4644 (af_glyph_hints_reload: Rewrite recognition of weak points.
4645
4646 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
4647 constant values out of the loops.
4648
4649 * src/autofit/aftypes.h: Updated.
4650
4651 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
4652
4653 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
4654 product to get orientation.
4655
4656 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
4657 (FT_Stream_OpenGzip): Use it to handle small files directly in
4658 memory.
4659
4660 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
4661 Improve performance.
4662
4663 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
4664 `limit'.
4665
4666 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
4667 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
4668 exceedingly large values of number of contours. Speed up by
4669 reducing the number of loops.
4670
4671 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
4672
4673
4674 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
4675 used to detect rogue clients from 4 to 16. This is to prevent some
4676 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
4677 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00004678
Werner Lembergde2d90a2006-05-17 08:54:30 +000046792007-05-17 Werner Lemberg <wl@gnu.org>
4680
4681 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00004682 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00004683
46842006-05-16 Werner Lemberg <wl@gnu.org>
4685
4686 * docs/PROBLEMS: Updated icl issues.
4687
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004688----------------------------------------------------------------------------
4689
Werner Lembergf2e33c12009-01-06 06:59:36 +00004690Copyright 2006, 2007, 2008, 2009 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004691David Turner, Robert Wilhelm, and Werner Lemberg.
4692
4693This file is part of the FreeType project, and may only be used, modified,
4694and distributed under the terms of the FreeType project license,
4695LICENSE.TXT. By continuing to use, modify, or distribute this file you
4696indicate that you have read the license and understand and accept it
4697fully.
4698
4699
4700Local Variables:
4701version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004702coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004703End: