blob: 6e7569007901b4b08d86a2a4752fe372769dfd56 [file] [log] [blame]
Werner Lembergee3cc2e2009-03-09 13:13:44 +000012009-03-09 Alexey Kryukov <anagnost@yandex.ru>
2
3 Fix handling of EBDT formats 8 and 9 (part 2).
4
5 This patch fixes the following problems in ttsbit0.c:
6
7 . Bitmaps for compound glyphs were never allocated.
8
9 . `SBitDecoder' refused to load metrics if some other metrics have
10 already been loaded. This condition certainly makes no sense for
11 recursive calls, so I've just disabled it. Another possibility
12 would be resetting `decoder->metrics_loaded' to false before
13 loading each composite component. However, we must restore the
14 original metrics after finishing the recursion; otherwise we can
15 get a misaligned glyph.
16
17 . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos',
18 causing some glyph components to be shifted too far to the right
19 (especially noticeable for small sizes).
20
21 Note that support for grayscale bitmaps (not necessarily compound) is
22 completely broken in ttsbit0.c.
23
24 * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
25 (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
26 of `h == height'.
27 (tt_sbit_decoder_load_compound): Reset metrics after loading
28 components.
29 Allocate bitmap.
30
Werner Lemberg1a5edf72009-03-09 08:36:18 +0000312009-03-09 Werner Lemberg <wl@gnu.org>
32
33 * builds/unix/configure.raw (version_info): Set to 9:20:3.
34
David Turner01ca4da2009-03-03 13:28:59 +0000352009-03-03 David Turner <david@freetype.org>
36
Werner Lemberg42f5c712009-03-03 23:34:49 +000037 Protect SFNT kerning table parser against malformed tables.
David Turnerab7e52b2009-03-03 22:37:13 +000038
Werner Lemberg42f5c712009-03-03 23:34:49 +000039 This closes Savannah BUG #25750.
40
41 * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a
42 bug where a malformed table would be successfully loaded but later
43 crash the engine during parsing.
David Turnerab7e52b2009-03-03 22:37:13 +000044
452009-03-03 David Turner <david@freetype.org>
46
Werner Lemberg15b60bb2009-03-03 21:35:32 +000047 Update documentation and bump version number to 2.3.9.
David Turnercda6f492009-03-03 20:49:32 +000048
Werner Lemberg15b60bb2009-03-03 21:35:32 +000049 * include/freetype/freetype.h: Bump patch version to 9.
50 * docs/CHANGES: Document the ABI break in 2.3.8.
51 * docs/VERSION.DLL: Update version numbers table for 2.3.9.
David Turnercda6f492009-03-03 20:49:32 +000052
532009-03-03 David Turner <david@freetype.org>
54
David Turner01ca4da2009-03-03 13:28:59 +000055 Remove ABI-breaking field in public PS_InfoFontRec definition.
Werner Lemberg15b60bb2009-03-03 21:35:32 +000056
David Turner01ca4da2009-03-03 13:28:59 +000057 Instead, we define a new internal PS_FontExtraRec structure to
58 hold the additionnal field, then place it in various internal
59 positions of the corresponding FT_Face derived objects.
David Turnercda6f492009-03-03 20:49:32 +000060
David Turner01ca4da2009-03-03 13:28:59 +000061 * include/freetype/t1tables.h (PS_FontInfoRec): Remove the
62 `fs_type' field from the public structure.
Werner Lemberg15b60bb2009-03-03 21:35:32 +000063 * include/freetype/internal/psaux.h (T1_FieldLocation): New
64 enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
65 * include/freetype/internal/t1types.h (PS_FontExtraRec): New
66 structure.
67 (T1_FontRec, CID_FaceRec): Add it.
David Turner01ca4da2009-03-03 13:28:59 +000068
Werner Lemberg15b60bb2009-03-03 21:35:32 +000069 * src/cid/cidload.c (cid_load_keyword): Handle
70 T1_FIELD_LOCATION_FONT_EXTRA.
71 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
72 Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
73 * src/type1/t1load.c (t1_load_keyword): Handle
74 T1_FIELD_LOCATION_FONT_EXTRA.
David Turner01ca4da2009-03-03 13:28:59 +000075
Werner Lemberg15b60bb2009-03-03 21:35:32 +000076 * include/freetype/internal/services/svpsinfo.h (PsInfo service):
77 Add `PS_GetFontExtraFunc' function typedef.
78
79 * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
80 FT_SERVICE_POSTSCRIPT_INFO_H.
81 (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
82
83 * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
84 * src/cid/cidriver.c (cid_ps_get_font_extra): New function.
85 (cid_service_ps_info): Updated.
86 * src/type1/t1driver.c (t1_ps_get_font_extra): New function.
87 (t1_service_ps_info): Updated.
88 * src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
89 (t42_service_ps_info): Updated.
David Turner01ca4da2009-03-03 13:28:59 +000090
Werner Lemberge5a7cc22009-03-02 09:09:12 +0000912009-03-02 Alexey Kryukov <anagnost@yandex.ru>
92
93 Fix handling of EBDT formats 8 and 9.
94
95 The main cycle in `blit_sbit' makes too many iterations: it actually
96 needs the count of lines in the source bitmap rather than in the
97 target image.
98
99 * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]:
100 Add parameter `source_height' and use it for main loop.
101 (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated.
102
Werner Lemberg14de1112009-02-24 21:34:51 +00001032009-02-23 Werner Lemberg <wl@gnu.org>
104
105 Fix Savannah bug #25669.
106
107 * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
108
109 * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
110 scaling factor for non-scalable fonts.
111
112 * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
113 value to prevent incorrect scaling.
114
115 * docs/CHANGES: Document it.
116
Werner Lemberg1e859922009-02-15 07:54:35 +00001172009-02-15 Matt Godbolt <matt@godbolt.org>
118
119 Fix Savannah bug #25588.
120
121 * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
122 `orr' instruction.
123
Werner Lemberg0552a492009-02-11 22:59:40 +00001242009-02-11 Werner Lemberg <wl@gnu.org>
125
126 * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
127 Reported by David Bevan <dbevan@emtex.com>.
128
Werner Lembergc2cabd42009-02-09 22:20:27 +00001292009-02-09 Werner Lemberg <wl@gnu.org>
130
131 Fix Savannah bug #25495.
132
133 * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
134 setting metrics and bbox values. This ensures that the check for a
135 font with neither a `glyf' table nor bitmap strikes can be performed
136 early enough to set metrics and bbox values too.
137
Werner Lemberg67bbcbd2009-02-04 07:59:16 +00001382009-02-04 Werner Lemberg <wl@gnu.org>
139
140 Fix Savannah bug #25480.
141
142 * builds/unix/freetype-config.in: For --ftversion, don't use $prefix
143 but $includedir.
144
Werner Lemberg763ae202009-01-30 23:45:53 +00001452009-01-31 Werner Lemberg <wl@gnu.org>
146
147 Minor docmaker improvements.
148
149 * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
150 code blocks.
151
Werner Lemberg1e5e7aa2009-01-25 16:27:04 +00001522009-01-25 Werner Lemberg <wl@gnu.org>
153
154 Fix SCANCTRL handling in TTFs.
155 Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
156
157 * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
158
Werner Lemberg5184ed62009-01-22 10:13:59 +00001592009-01-23 Werner Lemberg <wl@gnu.org>
160
161 Move FT_Get_FSType_Flags to a separate file.
162 Problem reported by Mickey Gabel <mickey@monfort.co.il>.
163
164 * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
165 * src/base/ftfstype.c: This new file.
166
167 * modules.cfg (BASE_EXTENSION): Add ftfstype.c.
168
169 * docs/INSTALL.ANY: Updated.
170
171 * builds/mac/*.txt, builds/amiga/*makefile*,
172 builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
173 Updated.
174
Suzuki, Toshiya (鈴木俊哉)5a009092009-01-22 03:50:37 +00001752009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
176
Suzuki, Toshiya (鈴木俊哉)a7c5de52009-01-22 04:00:32 +0000177 * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
178 messages ending without "\n".
179
1802009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
181
Suzuki, Toshiya (鈴木俊哉)5a009092009-01-22 03:50:37 +0000182 Fix Savannah bug #25347.
183
184 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
185 the stream to the original position passed to this function,
186 when ft_lookup_PS_in_sfnt_stream() failed.
187 (Mac_Read_sfnt_Resource): Rewind the stream to the head of
188 sfnt resource body, when open_face_PS_from_sfnt_stream()
189 failed.
190
Werner Lembergc591c172009-01-19 08:55:15 +00001912009-01-19 Michael Lotz <mmlr@mlotz.ch>
192
193 Fix Savannah bug #25355.
194
195 * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
196 assembler code work with gcc 2.95.3 (as used by the Haiku project).
197 Add `cc' register to the clobber list.
198
Werner Lemberg59e2c8d2009-01-18 06:42:59 +00001992009-01-18 Werner Lemberg <wl@gnu.org>
200
Werner Lemberg3739f8b2009-01-18 13:13:17 +0000201 Protect FT_Get_Next_Char.
202
203 * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
204 change from 2008-07-22.
205
206 Patch from Ronen Ghoshal <rghoshal@emtex.com>.
207
2082009-01-18 Werner Lemberg <wl@gnu.org>
209
Werner Lemberg4f7ef402009-01-18 10:53:29 +0000210 Implement FT_Get_Name_Index for SFNT driver.
211
212 * src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
213 (sfnt_service_glyph_dict): Use it.
214
215 Problem reported by Truc Truong <tructv@necsv.com>.
216
2172009-01-18 Werner Lemberg <wl@gnu.org>
218
Werner Lemberg59e2c8d2009-01-18 06:42:59 +0000219 * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
220 documentation. Problem reported by Truc Truong <tructv@necsv.com>.
221
222 * docs/CHANGES: Updated.
223
Werner Lembergfb4ddb22009-01-14 05:30:56 +00002242009-01-14 Werner Lemberg <wl@gnu.org>
225
Werner Lemberge22dd0b2009-01-14 06:52:18 +0000226 * Version 2.3.8 released.
227 =========================
228
229
230 Tag sources with `VER-2-3-8'.
231
232 * docs/VERSION.DLL: Update documentation and bump version number to
233 2.3.8.
234
235 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
236 builds/win32/visualc/freetype.dsp,
237 builds/win32/visualc/freetype.vcproj,
238 builds/win32/visualce/index.html,
239 builds/win32/visualce/freetype.dsp,
240 builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/.
241
242 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
243
244 * builds/unix/configure.raw (version_info): Set to 9:19:3.
245
246 * docs/release: Updated.
247
2482009-01-14 Werner Lemberg <wl@gnu.org>
249
Werner Lembergfb4ddb22009-01-14 05:30:56 +0000250 * builds/toplevel.mk (dist): Compress better.
251
Werner Lemberg24d72a12009-01-13 17:34:48 +00002522009-01-13 Werner Lemberg <wl@gnu.org>
253
Werner Lemberg9bf73ec2009-01-13 17:42:00 +0000254 * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
255 with C++.
256
2572009-01-13 Werner Lemberg <wl@gnu.org>
258
Werner Lemberg24d72a12009-01-13 17:34:48 +0000259 Don't use stdlib.h and friends directly.
260 Reported by Mickey Gabel <mickey@monfort.co.il>.
261
262 * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
263
264 * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
265 s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
266
267 * src/autofit/aftypes.h, src/autofit/afhints.c,
268 src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
269
270 * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
271
Werner Lemberge85baf42009-01-12 20:01:10 +00002722009-01-12 Werner Lemberg <wl@gnu.org>
273
Werner Lembergf47acf22009-01-12 20:11:14 +0000274 Avoid compiler warnings.
275
276 * */*: s/do ; while ( 0 )/do { } while ( 0 )/.
277 Reported by Sean McBride <sean@rogue-research.com>.
278
2792009-01-12 Werner Lemberg <wl@gnu.org>
280
Werner Lemberge85baf42009-01-12 20:01:10 +0000281 Fix stdlib dependencies.
282
283 Problem reported by Mickey Gabel <mickey@monfort.co.il>.
284
285 * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused.
286
287 * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
288 s/memcpy/ft_memcpy/.
289 * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
290
Werner Lembergfc6d12a2009-01-11 10:55:45 +00002912009-01-11 Werner Lemberg <wl@gnu.org>
292
293 * docs/formats.txt: Add link to PCF specification.
294
Werner Lemberg214ca052009-01-11 11:45:54 +0000295 * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
296 documentation.
297
Suzuki, Toshiya (鈴木俊哉)759c07d2009-01-09 11:11:53 +00002982009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
299
300 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
301 FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
302 FT_Int32, to match with the flags for FT_Load_Glyph().
303 * src/cff/cffdrivr.c (cff_get_advances): Ditto.
304 * src/truetype/ttdriver.c (tt_get_advances): Ditto.
305 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
306 Ditto.
307 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
308 Ditto.
309
Suzuki, Toshiya (鈴木俊哉)68e16e02009-01-09 08:01:15 +00003102009-01-09 Daniel Zimmermann <netzimme@aol.com>
311
312 * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
Werner Lembergfc6d12a2009-01-11 10:55:45 +0000313 length check. From Savannah patch #6682.
Suzuki, Toshiya (鈴木俊哉)68e16e02009-01-09 08:01:15 +0000314
Werner Lemberg9d83d292009-01-09 07:58:08 +00003152009-01-09 Werner Lemberg <wl@gnu.org>
316
317 Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
318
319 * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
320 `count_offset' if it is zero (i.e., unused). Otherwise, the first
321 element of the structure which holds the data is erroneously
322 modified. Problem reported by Chi Nguyen <chint@necsv.com>.
323
Suzuki, Toshiya (鈴木俊哉)2dc10792009-01-09 05:07:15 +00003242009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
325
Suzuki, Toshiya (鈴木俊哉)a7c00b72009-01-09 07:21:16 +0000326 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
327 FT_Get_Advances): Extend the type of load_flags from FT_UInt to
328 FT_UInt32, to pass 32-bit flags on 16bit platforms.
329 * src/cff/cffdrivr.c (cff_get_advances): Ditto.
330 * src/truetype/ttdriver.c (tt_get_advances): Ditto.
331 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
332 Ditto.
333 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
334 Ditto.
335
3362009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
337
Suzuki, Toshiya (鈴木俊哉)2dc10792009-01-09 05:07:15 +0000338 * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
339 FT_Done_Face() cannot free all faces. If the list of the opened
340 faces includes broken face which FT_Done_Face() cannot free,
341 FT_Done_Library() retries FT_Done_Face() and it can fall into
342 an endless loop. See the discussion:
343 http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
344 http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
345
Werner Lemberga79de112009-01-07 08:27:37 +00003462009-01-07 Werner Lemberg <wl@gnu.org>
347
348 * docs/CHANGES: Document new key `a' in ftdiff.
349
Werner Lemberga86f1b92009-01-06 09:07:22 +00003502009-01-06 Werner Lemberg <wl@gnu.org>
351
Werner Lembergc3263722009-01-06 21:00:47 +0000352 * autogen.sh: Don't use GNUisms while calling sed. Problem reported
353 by Sean McBride.
354
3552009-01-06 Werner Lemberg <wl@gnu.org>
356
Werner Lemberga86f1b92009-01-06 09:07:22 +0000357 * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
358 and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen
359 <chint@necsv.com>.
360
Werner Lembergc6791152009-01-06 07:07:39 +00003612009-01-06 Diego Pettenò <flameeyes@gmail.com>
362
363 * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
364 AC_CANONICAL_TARGET and use $host_os only. A nice explanation for
365 this change can be found at
366 http://blog.flameeyes.eu/s/canonical-target.
367
368 From Savannah patch #6712.
369
Werner Lembergf2e33c12009-01-06 06:59:36 +00003702009-01-06 Sean McBride <sean@rogue-research.com>
371
372 * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
373
374 * src/base/ftmac.c: Remove some #undefs.
375
Werner Lemberg1ad384d2008-12-25 23:52:00 +00003762008-12-26 Werner Lemberg <wl@gnu.org>
377
378 Set `face_index' field in FT_Face for all font formats.
379
380 * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
381 sfnt/sfobjs.c (sfnt_init_face): Do it.
382
383 * docs/CHANGES: Document it.
384
Werner Lemberg66043b12008-12-22 18:09:48 +00003852008-12-22 Steve Grubb
386
David Turnercda6f492009-03-03 20:49:32 +0000387 * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
Werner Lemberg66043b12008-12-22 18:09:48 +0000388 Patch from Savannah bug #25151.
389
Werner Lemberg478cca12008-12-21 17:38:23 +00003902008-12-21 Werner Lemberg <wl@gnu.org>
391
Werner Lemberg3c5ad952008-12-21 17:51:12 +0000392 * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
393 src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
394 s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for
395 errors in the bytecode interpreter only.
396
3972008-12-21 Werner Lemberg <wl@gnu.org>
398
Werner Lemberg478cca12008-12-21 17:38:23 +0000399 * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
400 arguments.
401 Fix return value for non-PFR fonts. Both problems reported by Chi
402 Nguyen <chint@necsv.com>.
403
Werner Lembergce33a312008-12-21 10:29:30 +00004042008-12-21 anonymous
405
406 FT_USE_MODULE declares things as:
407
408 extern const FT_Module_Class
409
410 (or similar for C++). However, the actual types of the variables
411 being declared are often different, e.g., FT_Driver_ClassRec or
412 FT_Renderer_Class. (Some are, indeed, FT_Module_Class.)
413
414 This works with most C compilers (since those structs begin with an
415 FT_Module_Class struct), but technically it's undefined behavior.
416
417 To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
418 paragraph 2:
419
420 All declarations that refer to the same object or function shall
421 have compatible type; otherwise, the behavior is undefined.
422
423 (And they are not compatible types.)
424
425 Most C compilers don't reject (or even detect!) code which has this
426 issue, but the GCC LTO development branch compiler does. (It
427 outputs the types of the objects while generating .o files, along
428 with a bunch of other information, then compares them when doing the
429 final link-time code generation pass.)
430
431 Patch from Savannah bug #25133.
432
433 * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
434
435 * builds/amiga/include/freetype/config/ftmodule.h,
436 include/freetype/config/ftmodule.h, */module.mk: Updated to declare
437 pass correct types to FT_USE_MODULE.
438
Werner Lembergb6fa8452008-12-21 09:46:31 +00004392008-12-21 Hongbo Ni <hongbo@njstar.com>
440
441 * src/autofit/aflatin.c (af_latin_hint_edges),
442 src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
Werner Lembergce33a312008-12-21 10:29:30 +0000443 (af_cjk_hint_edges): Protect against division by zero. This fixes
444 Savannah bug #25124.
Werner Lembergb6fa8452008-12-21 09:46:31 +0000445
Werner Lemberg05bf6872008-12-18 06:32:10 +00004462008-12-18 Werner Lemberg <wl@gnu.org>
447
448 * docs/CHANGES: Updated.
449
4502008-12-18 Bevan, David <dbevan@emtex.com>
451
452 Provide API for accessing embedding and subsetting restriction
453 information.
454
455 * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
456 FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
457 FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
458 FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
459 macros.
460 (FT_Get_FSType_Flags): New function declaration.
461
462 * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
463
464 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
465 (t42_keywords): Handle `FSType'.
466
467 * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
468
Werner Lembergc8c4cc82008-12-17 10:50:31 +00004692008-12-17 Werner Lemberg <wl@gnu.org>
470
Werner Lembergcfc514e2008-12-17 11:03:26 +0000471 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
472 macros so that copying the source code into an application works
473 out of the box.
474
4752008-12-17 Werner Lemberg <wl@gnu.org>
476
477 * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
Werner Lembergc8c4cc82008-12-17 10:50:31 +0000478 FT_GlyphSlot_Own_Bitmap to...
479 * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
480
481 * docs/CHANGES: Document it.
482
Werner Lembergb972a2a2008-12-11 08:55:48 +00004832008-12-10 Werner Lemberg <wl@gnu.org>
484
485 Generalize the concept of `tricky' fonts by introducing
486 FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
487 engine is necessary for correct rendering.
488
489 At the same time, slightly modify the behaviour of tricky fonts:
490 FT_LOAD_NO_HINTING is now ignored. To really force raw loading
491 of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
492 FT_LOAD_NO_AUTOHINT must be used.
493
494 Finally, tricky TrueType fonts always use the bytecode interpreter
495 even if the patented code is used.
496
497 * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
498 New macros.
499
500 * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
501 semantics as described above.
502
503 * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
504 code of ...
505 (tt_face_init): This function, now simplified and updated to new
506 semantics.
507
508 * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
509 fonts.
510
511 * docs/CHANGES: Document it.
512
Werner Lemberg1474f432008-12-09 06:51:56 +00005132008-12-09 Werner Lemberg <wl@gnu.org>
514
515 Really fix Savannah bug #25010: An SFNT font with neither outlines
516 nor bitmaps can be considered as containing space `glyphs' only.
517
518 * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
519 a `glyf' table is missing.
520
521 * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
522 `glyf' table but a non-zero `loca' entry.
523 (tt_loader_init): Handle missing `glyf' table.
524
525 * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
526
527 * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
528 nor bitmaps is scalable.
529
Werner Lemberg76fffcd2008-12-05 18:37:44 +00005302008-12-05 Werner Lemberg <wl@nu.org>
531
Werner Lemberge3b083c2008-12-05 22:50:40 +0000532 * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This
533 fixes Savannah bug #21190 which also provides a basic patch.
534
5352008-12-05 Werner Lemberg <wl@nu.org>
536
Werner Lemberg76fffcd2008-12-05 18:37:44 +0000537 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
538 0x100 instead of 0x10000; the latter value is already occupied by
539 FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos.
540
541
542 Handle SFNT with neither outlines nor bitmaps. This fixes Savannah
543 bug #25010.
544
545 * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
546 outlines nor bitmaps.
547
548 * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
549 is no table with glyphs.
550
551
552 * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
553 message.
554
Werner Lembergafe60162008-12-01 12:53:00 +00005552008-12-01 Werner Lemberg <wl@gnu.org>
556
557 GDEF tables need `glyph_count' too for validation. Problem reported
558 by Chi Nguyen <chint@necsv.com>.
559
560 * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
561 (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
562 `glyph_count'.
563
Werner Lemberg1a5d5612008-11-29 22:50:24 +00005642008-11-29 Werner Lemberg <wl@gnu.org>
565
566 * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
567 src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
568 src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
569 src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
570 src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
571 (Atari PureC).
572
Werner Lembergb2cb6ce2008-11-29 09:32:12 +00005732008-11-29 James Cloos <cloos@jhcloos.com>
574
Werner Lemberg8f9b7f52008-11-29 17:35:58 +0000575 * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
576 it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
577 in the /BlendDesignMap space).
578
5792008-11-29 James Cloos <cloos@jhcloos.com>
580
Werner Lembergb2cb6ce2008-11-29 09:32:12 +0000581 * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
582 whereas `design_points' is FT_Long*. Therefore, return blend rather
583 than design points.
584
Werner Lembergc7597ed2008-11-27 21:55:20 +00005852008-11-27 Werner Lemberg <wl@gnu.org>
586
587 * src/cff/cffparse.c (cff_parse_real): Handle more than nine
588 significant digits correctly. This fixes Savannah bug #24953.
589
Werner Lemberg0a263a82008-11-25 05:44:41 +00005902008-11-25 Daniel Zimmermann <netzimme@aol.com>
591
592 * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
593 before the NULL check. From Savannah patch #6681.
594
Werner Lemberg52cd0fc2008-11-24 08:15:05 +00005952008-11-24 Werner Lemberg <wl@gnu.org>
596
597 Fixes from the gnuwin32 port.
598
599 * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
600
601 * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
602
603 * src/psaux/psobjs.c (ps_table_add): Check `length'.
604
Werner Lemberg105721a2008-11-15 10:35:51 +00006052008-11-15 Werner Lemberg <wl@gnu.org>
606
607 * src/truetype/ttinterp.c (tt_default_graphics_state): The default
608 value for `scan_type' is zero, as confirmed by Greg Hitchcock from
609 Microsoft. Problem reported by Michal Nowakowski
610 <miszka@limes.com.pl>.
611
Werner Lemberg312043f2008-11-12 06:29:41 +00006122008-11-12 Tor Andersson <tor.andersson@gmail.com>
613
614 * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
615 This fixes Savannah bug #24819.
616
Werner Lemberge7aad022008-11-08 22:00:55 +00006172008-11-08 Werner Lemberg <wl@gnu.org>
618
619 * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
620 since OpenType version 1.5 has been released.
621
622 * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
623 TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
624 (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
625 TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
626 TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
627 TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
628 TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
629 TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
630 TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
631 TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
632 TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
633 TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
634 TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
635 macros for OpenType 1.5.
636
Werner Lembergfb4ddb22009-01-14 05:30:56 +00006372008-11-08 Wenlin Institute <wenlin@wenlin.com>
Werner Lembergb6192822008-11-08 07:28:39 +0000638
639 * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
640 slot->internal == NULL. Reported by Graham Asher.
641
Werner Lemberg95120922008-11-08 07:20:25 +00006422008-11-08 Werner Lemberg <wl@gnu.org>
643
644 * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
645 code so that memory allocation problems can be distinguished from
646 missing table entries. Reported by Graham Asher.
647 (GET_NAME): New macro.
648 (sfnt_load_face): Use it.
649
Werner Lembergc321b9b2008-11-05 14:34:29 +00006502008-11-05 Werner Lemberg <wl@gnu.org>
651
652 * devel/ftoption.h, include/freetype/config/ftoption.h
653 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
654 TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of
David Turnercda6f492009-03-03 20:49:32 +0000655 `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
Werner Lembergc321b9b2008-11-05 14:34:29 +0000656 Reported in bug #441638 of bugzilla.novell.com.
657
658 * docs/CHANGES: Document it.
659
Werner Lemberge0ed07d2008-11-04 10:37:30 +00006602008-11-03 Werner Lemberg <wl@gnu.org>
661
662 * src/type1/t1load.c (parse_subrs): Use an endless loop. There are
663 fonts (like HELVI.PFB version 003.001, used on OS/2) which define
664 some `subrs' elements more than once. Problem reported by Peter
665 Weilbacher <mozilla@weilbacher.org>.
666
Werner Lembergf31072c2008-10-15 20:03:37 +00006672008-10-15 Graham Asher <graham.asher@btinternet.com>
668
669 * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
670
6712008-10-15 David Turner <david@freetype.org>
Suzuki, Toshiya (鈴木俊哉)69222662008-10-15 15:22:39 +0000672
673 * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
674 meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
675
Werner Lemberg822604c2008-10-14 07:28:03 +00006762008-10-14 Werner Lemberg <wl@gnu.org>
677
David Turnercda6f492009-03-03 20:49:32 +0000678 * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
Werner Lemberg822604c2008-10-14 07:28:03 +0000679 Suggested by Bram Tassyns in Savannah patch #6651.
680
Werner Lemberg174b8de2008-10-12 11:47:29 +00006812008-10-12 Graham Asher <graham.asher@btinternet.com>
682
683 * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
684 `underline_position'.
685
6862008-10-12 Werner Lemberg <wl@gnu.org>
687
688 * docs/CHANGES: Updated.
689
Suzuki, Toshiya (鈴木俊哉)1464bc52008-10-09 05:44:23 +00006902008-10-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
691
692 Fix Savannah bug #24468.
693
694 According to include/freetype/internal/ftobjs.h, the appropriate
695 type to interchange single character codepoint is FT_UInt32. It
696 should be distinguished from FT_UInt which can be 16bit integer.
697
698 * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
699 of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
700 (tt_cmap4_char_map_binary): Ditto.
701 (tt_cmap14_get_nondef_chars): Change the type of return value
702 from FT_UInt* to FT_UInt32*.
703
7042008-10-08 John Tytgat <John.Tytgat@esko.com>
Werner Lembergfa9d3992008-10-08 16:04:46 +0000705
706 Fix Savannah bug #24485.
707
708 * src/type1/t1load.c (parse_charstrings): Assure that we always have
709 a .notdef glyph.
710
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +00007112008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
712
Suzuki, Toshiya (鈴木俊哉)96d87be2008-10-05 03:08:10 +0000713 * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
714 * builds/mac/ftmac.c: Ditto.
715
7162008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
717
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000718 * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
Suzuki, Toshiya (鈴木俊哉)af48cb02008-10-05 02:53:06 +0000719 * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
720
7212008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
722
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000723 * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
724 the beginning of sfnt container.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000725 * src/sfnt/ttload.c (check_table_dir): Return
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000726 `SFNT_Err_Table_Missing' when sfnt table directory structure is
727 correct but essential tables for TrueType fonts (`head', `bhed' or
728 `SING') are missing. Other errors are returned by
729 SFNT_Err_Unknown_File_Format.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000730
731 * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000732 `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is
733 enabled only when old mac font support is configured.
Suzuki, Toshiya (鈴木俊哉)2d3e0af2008-10-05 02:38:57 +0000734
Suzuki, Toshiya (鈴木俊哉)72eb2702008-10-04 17:49:58 +00007352008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
736
Werner Lemberg570b1fd2008-10-05 06:08:40 +0000737 * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
738 TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
739 the repeated calculations of these values in ftobjs.c and ftmac.c.
Suzuki, Toshiya (鈴木俊哉)21bd5162008-10-04 18:10:28 +0000740 * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
741 * src/base/ftmac.c: Ditto.
742 * builds/mac/ftmac.c: Ditto.
743
7442008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
745
Suzuki, Toshiya (鈴木俊哉)72eb2702008-10-04 17:49:58 +0000746 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
747 initialization of *is_sfnt_cid.
748
Werner Lemberg45489582008-10-04 11:39:03 +00007492008-10-04 Werner Lemberg <wl@gnu.org>
750
751 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
752 warnings.
753
Suzuki, Toshiya (鈴木俊哉)1137d042008-10-04 07:11:58 +00007542008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
755
756 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
757 (ft_lookup_PS_in_sfnt_stream): This.
Werner Lemberg45489582008-10-04 11:39:03 +0000758 (open_face_PS_from_sfnt_stream): New function. It checks whether
759 the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
760 font, then try to open a face for given face_index.
Suzuki, Toshiya (鈴木俊哉)1137d042008-10-04 07:11:58 +0000761 (Mac_Read_sfnt_Resource): Replace the combination of
762 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
763 `open_face_PS_from_sfnt_stream'.
764 * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
765 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
766 * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
767 `open_face_PS_from_sfnt_stream'.
768
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +00007692008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
770
Werner Lemberg45489582008-10-04 11:39:03 +0000771 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
772 FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
Suzuki, Toshiya (鈴木俊哉)bc2c4982008-10-03 12:28:52 +0000773
7742008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
775
Werner Lemberg45489582008-10-04 11:39:03 +0000776 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
777 MrC compiler of MPW is used. These compilers do not define the
778 macro __APPLE__ by themselves.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000779 * builds/unix/ftconfig.in: Ditto.
780 * builds/vms/ftconfig.h: Ditto.
Werner Lemberg45489582008-10-04 11:39:03 +0000781 * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
782 include ftmac.c if FreeType 2 is built by MPW.
783 * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
784 enable shared functions for ftmac.c if FreeType 2 is built by MPW.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000785
786 * builds/mac/ftmac.c: Include ftbase.h.
787 (memory_stream_close): Removed.
788 (new_memory_stream): Ditto.
789 (open_face_from_buffer): Removed. Use the implementation in
790 ftobjs.c.
791 (ft_lookup_PS_in_sfnt): Ditto.
792
793 * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
Werner Lemberg45489582008-10-04 11:39:03 +0000794 included part of ftbase.c, to share the functions in ftobjs.c. The
795 rule compiling ftmac.c separately is removed and the rule copying
796 ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
Suzuki, Toshiya (鈴木俊哉)9e2b9902008-10-03 11:52:22 +0000797 * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
798 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
799 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
800
Werner Lembergb17fb112008-10-02 10:17:32 +00008012008-10-02 Bram Tassyns <bramt@enfocus.be>
802
803 * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This
804 fixes Savannah bug #24430.
805
Werner Lemberg89a1a512008-10-02 06:48:10 +00008062008-10-02 Werner Lemberg <wl@gnu.org>
807
808 * builds/freetype.mk (BASE_H): Rename to...
809 (INTERNAL_H): This.
810 (FREETYPE_H): Updated.
811 * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
812 * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
813 * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
814 * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
815 * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
816 * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
817
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +00008182008-10-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
819
820 * src/base/ftbase.h: New file to declare the private utility
Werner Lembergcff15b02008-10-02 05:38:29 +0000821 functions shared by the sources of base modules. Currently,
822 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
823 share between ftobjs.c and ftmac.c.
824
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000825 * src/base/rule.mk: Add ftbase.h.
Werner Lembergcff15b02008-10-02 05:38:29 +0000826
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000827 * src/base/ftobjs.c: Include ftbase.h.
Werner Lembergcff15b02008-10-02 05:38:29 +0000828 (memory_stream_close): Build on any platform when old MacOS font
829 support is enabled.
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000830 (new_memory_stream): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000831 (open_face_from_buffer): Build on any platform when old MacOS font
832 support is enabled. The counting of the face in a font file is
833 slightly different between Carbon-dependent parser and Carbon-free
834 parser. They are merged with the platform-specific conditional.
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000835 (ft_lookup_PS_in_sfnt): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000836
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000837 * src/base/ftmac.c: Include ftbase.h.
838 (memory_stream_close): Removed.
839 (new_memory_stream): Ditto.
Werner Lembergcff15b02008-10-02 05:38:29 +0000840 (open_face_from_buffer): Removed. Use the implementation in
Suzuki, Toshiya (鈴木俊哉)f4147022008-10-02 01:43:18 +0000841 ftobjs.c.
842 (ft_lookup_PS_in_sfnt): Ditto.
843
Werner Lembergce1bad02008-10-01 22:46:26 +00008442008-10-02 Werner Lemberg <wl@gnu.org>
845
846 * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
847 if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
848
Werner Lembergd03d8562008-10-01 22:39:05 +00008492008-10-01 Werner Lemberg <wl@gnu.org>
850
851 * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
852 (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
853 src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
854 (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
David Turnercda6f492009-03-03 20:49:32 +0000855 src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
Werner Lembergd03d8562008-10-01 22:39:05 +0000856 Reported by Graham Asher.
857
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +00008582008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
859
Werner Lembergfce4e232008-10-01 04:41:46 +0000860 * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
Werner Lembergcff15b02008-10-02 05:38:29 +0000861 multi' on Mac OS X. If the macro $(ftmac_c) is defined,
Werner Lembergfce4e232008-10-01 04:41:46 +0000862 $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the
863 lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
864 ftmac.c.
Suzuki, Toshiya (鈴木俊哉)ef4a9152008-09-30 16:21:07 +0000865 * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
866 * builds/unix/configure.raw: Add procedure to set up appropriate
Werner Lembergfce4e232008-10-01 04:41:46 +0000867 value of $(ftmac_c) with the consideration of the availability of
868 Carbon framework.
Suzuki, Toshiya (鈴木俊哉)ef4a9152008-09-30 16:21:07 +0000869
8702008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
871
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +0000872 * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
Werner Lembergfce4e232008-10-01 04:41:46 +0000873 * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
874 function for MPW building. It is synchronized the condition to
875 include ftmac.c source into ftbase.c.
Suzuki, Toshiya (鈴木俊哉)c6bdee52008-09-30 00:59:55 +0000876
Werner Lembergb4c810e2008-09-22 11:28:46 +00008772008-09-22 Werner Lemberg <wl@gnu.org>
878
879 * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
880 cff_decoder_parse_charstrings): Handle (invalid)
881 `callothersubr' and `pop' instructions.
882
Werner Lembergbd0f71a2008-09-22 08:55:44 +00008832008-09-22 John Tytgat <John.Tytgat@esko.com>
884
885 Fix Savannah bug #24307.
886
887 * include/freetype/internal/t1types.h (CID_FaceRec),
888 src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
889
8902008-09-21 Werner Lemberg <wl@gnu.org>
891
892 * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
893 `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by
894 Stephan T. Lavavej <stl@nuwen.net>.
895
Suzuki, Toshiya (鈴木俊哉)815e1862008-09-21 18:33:57 +00008962008-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
897
898 * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
899 by jam.
900 * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
901 jam.
902
Werner Lemberg6874d852008-09-20 11:50:47 +00009032008-09-20 Werner Lemberg <wl@gnu.org>
904
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000905 * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values
906 passed to this function are already `normalized'. Problem reported
Werner Lembergbd0f71a2008-09-22 08:55:44 +0000907 by Stephan T. Lavavej <stl@nuwen.net>.
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000908
909 * docs/CHANGES: Document it.
910
9112008-09-20 Werner Lemberg <wl@gnu.org>
912
Werner Lemberg6874d852008-09-20 11:50:47 +0000913 * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
914 (FT_Outline_Decompose): Decorate with tracing messages.
915
916 * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
917 FT_DEBUG_LEVEL_TRACE.
918 [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
919 stdarg.h.
920
921 (FT_TRACE) [_STANDALONE_]: Remove.
922 (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
923 (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
924 (FT_ERROR) [_STANDALONE_]: Updated.
925
926 (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
927 Use FT_TRACE7.
928 (gray_dump_cells): Make it `static void'.
Werner Lemberg70f4cff2008-09-20 16:12:05 +0000929 (gray_convert_glyph): Use FT_TRACE7.
Werner Lemberg6874d852008-09-20 11:50:47 +0000930
931 (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
932 ftoutln.c.
933
934 * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
935 FT_ERROR_BASE.
936
Werner Lemberg22e970a2008-09-20 12:20:21 +0000937 * docs/formats.txt: Updated.
938
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +00009392008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
940
Suzuki, Toshiya (鈴木俊哉)3afbee82008-09-19 17:46:01 +0000941 * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
942 CID-keyed font support.
943 * builds/mac/ftmac.c: Ditto.
944
9452008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
946
Werner Lemberg22e970a2008-09-20 12:20:21 +0000947 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
948 sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
949 `open_face_from_buffer' frees the passed buffer if it cannot open a
950 face from the buffer, so the caller must not free it.
Suzuki, Toshiya (鈴木俊哉)dec8e7b2008-09-19 16:47:01 +0000951
9522008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
953
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +0000954 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
955 for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
956 (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
Werner Lemberg22e970a2008-09-20 12:20:21 +0000957 table in sfnt table directory. It is used before loading TrueType
Suzuki, Toshiya (鈴木俊哉)9ae5eaf2008-09-19 06:48:35 +0000958 font driver.
959
Suzuki, Toshiya (鈴木俊哉)dec8e7b2008-09-19 16:47:01 +0000960 * docs/CHANGES: Add note about the current status of sfnt-wrapped
961 Type1 and sfnt-wrapped CID-keyed font support.
962
Werner Lemberg55c40632008-09-18 11:20:12 +00009632008-09-18 Werner Lemberg <wl@gnu.org>
964
965 * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
966 orthogonality (ft_free and ft_sfree could belong to different memory
967 pools). This fixes Savannah bug #24297.
968
Suzuki, Toshiya (鈴木俊哉)0c0db3e2008-09-18 04:36:56 +00009692008-09-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
970
971 * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
972 in ttags.h instead of numerical value 0x4F54544FL.
973
Werner Lemberg634df6e2008-09-16 07:25:31 +00009742008-09-16 Werner Lemberg <wl@gnu.org>
975
976 * src/cff/cffgload.h, src/cff/cffgload.c
977 (cff_decoder_set_width_only): Eliminate function call.
978
Werner Lemberged6c0e02008-09-15 07:49:40 +00009792008-09-15 George Williams <gww@silcom.com>
980
981 Fix Savannah bug #24179, reported by Bram Tassyns.
982
983 * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
984 of default values.
985
9862008-09-15 Werner Lemberg <wl@gnu.org>
987
988 * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
989 and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
990 prevent unconditional definition. This fixes Savannah bug #24241.
991
992 * src/psnames/pstables.h: Regenerated.
993
Werner Lembergb2116512008-09-12 16:27:48 +00009942008-09-13 Werner Lemberg <wl@gnu.org>
995
996 * autogen.sh, builds/unix/configure.raw,
997 include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
998 beautifying.
999
1000 * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
1001 include/freetype/ftlcdfil.h: Protect against FreeType 1.
1002 Some other minor fixes.
1003
1004 * devel/ftoption.h: Synchronize with
1005 include/freetype/config/ftoption.h.
1006
Werner Lemberg8d3e6ec2008-09-11 08:29:14 +000010072008-09-11 Werner Lemberg <wl@gnu.org>
1008
1009 * src/base/ftbase.c: Include ftadvanc.c.
1010
Werner Lembergb2116512008-09-12 16:27:48 +000010112008-09-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +00001012
1013 * builds/unix/ftconfig.in: Duplicate the cpp computation of
1014 FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
Werner Lembergb2116512008-09-12 16:27:48 +00001015 (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp
1016 computation is disabled and the statically configured sizes are
1017 used. This fixes Savannah bug #21250.
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +00001018
Werner Lembergb2116512008-09-12 16:27:48 +00001019 * builds/unix/configure.raw: Add the checks to compare the cpp
1020 computation results of the bit length of int and long versus the
1021 sizes detected by running `configure'. If the results are
1022 different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
1023 results.
1024 New option --{enable|disable}-biarch-config is added to define or
1025 undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
Suzuki, Toshiya (鈴木俊哉)59188662008-09-11 08:02:23 +00001026
Werner Lembergb2116512008-09-12 16:27:48 +000010272008-09-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)8e296452008-09-05 03:21:21 +00001028
Werner Lembergb2116512008-09-12 16:27:48 +00001029 * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
1030 ApplicationService framework is missing. Although this value is not
1031 used in building of FreeType2, it is written in `freetype2.pc' and
1032 `freetype-config'.
Suzuki, Toshiya (鈴木俊哉)8e296452008-09-05 03:21:21 +00001033
Werner Lembergb2116512008-09-12 16:27:48 +000010342008-09-01 david turner <david@freetype.org>
David Turner28534d62008-09-01 21:35:21 +00001035
Werner Lembergb2116512008-09-12 16:27:48 +00001036 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
1037 index to mean `use default cached FT_Face's charmap'. This fixes
1038 Savannah bug #22625.
1039 * include/freetype/ftcache.h: Document it.
David Turner17cd6872008-09-02 02:34:29 +00001040
Werner Lembergb2116512008-09-12 16:27:48 +00001041
1042 Make FT_MulFix an inlined function. This is done to speed up
David Turnerf47d2632008-09-02 02:21:58 +00001043 FreeType a little (on x86 3% when loading+hinting, 10% when
Werner Lembergb2116512008-09-12 16:27:48 +00001044 rendering, ARM savings are more important though). Disable this by
1045 undefining FT_CONFIG_OPTION_INLINE_MULFIX.
David Turnerf47d2632008-09-02 02:21:58 +00001046
Werner Lembergb2116512008-09-12 16:27:48 +00001047 Use of assembler code can now be controlled with
1048 FT_CONFIG_OPTION_NO_ASSEMBLER.
David Turner28534d62008-09-01 21:35:21 +00001049
Werner Lembergb2116512008-09-12 16:27:48 +00001050 * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
1051 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
1052 implementation.
1053 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
1054 implementation taken from `ftcalc.c'.
1055 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
1056 which is defined to the platform-specific assembler implementation
1057 of FT_MulFix.
1058 [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
1059 (FT_MULFIX_INLINED): New macro.
David Turner28534d62008-09-01 21:35:21 +00001060
Werner Lembergb2116512008-09-12 16:27:48 +00001061 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
1062 FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
1063
1064 * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
1065
1066 * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
1067 FT_MULFIX_INLINED.
1068
1069
1070 Add a new header named FT_ADVANCES_H declaring some new APIs to
1071 extract the advances of one or more glyphs without necessarily
1072 loading their outlines. Also provide `fast loaders' for the
1073 TrueType, Type1, and CFF font drivers (more to come later).
1074
1075 * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
1076
1077 * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
1078 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
1079
1080 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
1081 `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
1082 respectively.
1083
1084 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
1085 ftadvanc.c.
1086
1087 * src/cff/cffdrivr.c (cff_get_advances): New function.
1088 (cff_driver_class): Register it.
1089
1090 * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
1091 (cff_decoder_parse_charstrings): Handle `width_only'.
1092 (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
1093
1094 * src/cff/cffgload.h (cff_decoder): New element `width_only'.
1095 (cff_decoder_set_width_only): New declaration.
1096
1097 * src/truetype/ttdriver.c (tt_get_advances): New function.
1098 (tt_driver_class): Register it.
1099
1100 * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
1101 (TT_Get_HMetrics, TT_Get_VMetrics): This.
1102 Update callers.
1103 * src/truetype/ttgload.h: Declare them.
1104
1105 * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
1106 function.
1107 * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
1108
1109
1110 Add checks for minimum version of the `autotools' stuff.
1111
1112 * autogen.sh: Implement it.
1113 (get_major_version, get_minor_version, get_patch_version,
1114 compare_to_minimum_version, check_tool_version): New auxiliary
1115 functions.
1116
1117 * README.CVS: Document it.
1118
11192008-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)7981fe22008-08-29 06:09:03 +00001120
1121 * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
1122 ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
1123
Werner Lemberg4dbf00a2008-08-28 16:12:48 +000011242008-08-28 Werner Lemberg <wl@gnu.org>
1125
1126 * src/type1/t1load.c (parse_encoding): Protect against infinite
1127 loop. This fixes Savannah bug #24150 (where a patch has been posted
1128 too).
1129
Werner Lemberga4cb0d92008-08-23 19:54:06 +000011302008-08-23 Werner Lemberg <wl@gnu.org>
1131
1132 * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
1133 (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug
1134 #24119.
1135
Werner Lembergb2116512008-09-12 16:27:48 +000011362008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)4c60bd92008-08-19 15:35:44 +00001137
Werner Lemberga4cb0d92008-08-23 19:54:06 +00001138 * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
1139 even if passed library or arguments are invalid. This fixes a bug
1140 that an uninitialized stream is freed when an invalid library handle
1141 is passed. Originally proposed by Mike Fabian, 2008/08/18 on
1142 freetype-devel.
Suzuki, Toshiya (鈴木俊哉)4c60bd92008-08-19 15:35:44 +00001143 (FT_Open_Face): Ditto (stream).
1144 (load_face_in_embedded_rfork): Ditto (stream2).
1145
Werner Lembergb2116512008-09-12 16:27:48 +000011462008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +00001147
Werner Lemberg77f73582008-08-19 04:53:02 +00001148 * src/base/ftmac.c: Add a fallback to guess the availability of the
1149 `ResourceIndex' type. It is used when built without configure
1150 (e.g., a build with Jam).
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +00001151 * builds/mac/ftmac.c: Ditto.
Werner Lemberg77f73582008-08-19 04:53:02 +00001152 * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
1153 explicitly, even if `ResourceIndex' is unavailable.
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +00001154
Werner Lembergb2116512008-09-12 16:27:48 +000011552008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)fdc2d762008-08-18 06:02:07 +00001156
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +00001157 * builds/unix/configure.raw: In checking of Mac OS X features,
Werner Lemberg77f73582008-08-19 04:53:02 +00001158 all-in-one header file `Carbon.h' is replaced by the minimum
1159 header file `CoreServices.h', similar to current src/base/ftmac.c.
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +00001160
Werner Lembergb2116512008-09-12 16:27:48 +000011612008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)a8700d42008-08-18 05:08:01 +00001162
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +00001163 * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
Werner Lemberg77f73582008-08-19 04:53:02 +00001164 sub-header when its code_count is 0. Many Japanese Dynalab fonts
1165 include such an empty sub-header (code_count == 0, first_code == 0
1166 delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
Suzuki, Toshiya (鈴木俊哉)a2637822008-08-18 04:44:56 +00001167
Werner Lemberg7fd20182008-08-04 18:46:37 +000011682008-08-04 Werner Lemberg <wl@gnu.org>
1169
1170 * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes
1171 Savannah bug #23995.
1172
1173 * src/cid/cidload.c (parse_expansion_factor): New callback function.
1174 (cid_field_records): Use it for `ExpansionFactor'.
1175 * src/cod/cidtoken.h: Handle `ForceBold' keyword.
1176 Don't handle `ExpansionFactor'.
1177
Werner Lembergeba3eee2008-08-04 15:54:24 +000011782008-08-04 Bram Tassyns <bramt@enfocus.be>
1179
1180 * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
1181 resulted in incorrect scaling. This fixes Savannah bug #23973.
1182
Werner Lemberg17e69012008-08-04 05:45:41 +000011832008-08-04 Werner Lemberg <wl@gnu.org>
1184
1185 Be more tolerant w.r.t. invalid entries in SFNT table directory.
1186
1187 * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
1188 adjust table count.
1189 Add more trace messages.
1190 (tt_face_load_font_dir): Updated.
1191
Werner Lemberg806f5932008-07-30 05:28:37 +000011922008-07-30 Werner Lemberg <wl@gnu.org>
1193
1194 * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
1195 assume that the first argument on the stack is the bottom-most
1196 element. Two reasons:
1197
1198 o According to people from Adobe it is missing in the Type 2
1199 specification that pushing of additional, superfluous arguments
1200 on the stack is prohibited.
1201
1202 o Acroread in general handles fonts differently, namely by popping
1203 the number of arguments needed for a particular operand (as a PS
1204 interpreter would do). In case of buggy fonts this causes a
1205 different interpretation which of the elements on the stack are
1206 superfluous and which not.
1207
1208 Since there are CFF subfonts (embedded in PDFs) which rely on
1209 Acroread's behaviour, FreeType now does the same.
1210
Werner Lemberg7f30c0c2008-07-27 05:43:59 +000012112008-07-27 Werner Lemberg <wl@gnu.org>
1212
1213 Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This
Werner Lemberg57586882009-01-06 09:40:22 +00001214 fixes Savannah bug #23940.
Werner Lemberg7f30c0c2008-07-27 05:43:59 +00001215
1216 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
1217 (EXTRA_GLYPH_LIST_SIZE): This.
1218 Increase by 2.
1219 (ft_wgl_extra_unicodes): Rename to...
1220 (ft_extra_glyph_unicodes): This.
1221 Add two code values.
1222 (ft_wgl_extra_glyph_names): Rename to...
1223 (ft_extra_glyph_names): This.
1224 Add two glyphs.
1225 (ft_wgl_extra_glyph_name_offsets): Rename to...
1226 (ft_extra_glyph_name_offsets): This.
1227 Add two offsets.
1228
1229 (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
1230 (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
1231 Updated.
1232 (ps_unicodes_init): Updated.
1233
Werner Lembergbdcfddc2008-07-26 21:22:20 +000012342008-07-26 Werner Lemberg <wl@gnu.org>
1235
1236 * src/cff/cffgload.c (cff_decoder_prepare,
1237 cff_decoder_parse_charstrings): Improve debug output.
1238
Werner Lemberge75da452008-07-22 20:59:59 +000012392008-07-22 Martin McBride <mmcbride@emtex.com>
1240
1241 * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
1242 tt_cmap4_char_map_binary): Handle fonts which treat the last segment
1243 specially. According to the specification, such fonts would be
1244 invalid but acroread accepts them.
1245
Werner Lemberg50997cd2008-07-16 21:03:40 +000012462008-07-16 Jon Foster <Jon.Foster@cabot.co.uk>
1247
1248 * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
1249
1250 * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
1251
1252 * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
1253 Fix compiler warning.
1254
Werner Lemberg3d2f06f2008-07-16 06:13:34 +000012552008-07-16 Werner Lemberg <wl@gnu.org>
1256
Werner Lemberge75da452008-07-22 20:59:59 +00001257 Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
Werner Lemberg3d2f06f2008-07-16 06:13:34 +00001258
1259 * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
1260 Invert sids table only if `pure_cff' is set.
1261 * src/cff/cffload.h: Udpated.
1262
1263 * src/cff/cffobjs.c (cff_face_init): Updated.
Werner Lembergbd48d352008-07-16 07:05:11 +00001264 Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
Werner Lemberg3d2f06f2008-07-16 06:13:34 +00001265
Werner Lemberge75da452008-07-22 20:59:59 +00001266 * docs/CHANGES: Updated.
1267
Werner Lemberg6b19e092008-07-09 06:20:12 +000012682008-07-09 Werner Lemberg <wl@gnu.org>
1269
1270 * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
1271 where num_locations < num_glyphs. Problem reported by Ding Li.
1272
Werner Lemberg4e33f9e2008-07-05 06:35:28 +000012732008-07-05 Werner Lemberg <wl@gnu.org>
1274
1275 Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
Werner Lembergca6fc732008-07-05 06:36:39 +00001276 newer. This fixes Savannah bug #23648.
Werner Lemberg4e33f9e2008-07-05 06:35:28 +00001277
1278 * configure: zsh doesn't like ${1+"$@"}.
1279 Update needed GNU make version.
1280 * builds/toplevel.mk: Check for `$(eval ...)'.
1281 * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
1282 it.
1283
Werner Lemberg71b8f3f2008-07-04 07:22:06 +000012842008-07-04 Werner Lemberg <wl@gnu.org>
1285
1286 * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
1287 pixel, only check for dropouts if neither start nor end point lies
1288 on a pixel center. This fixes Savannah bug #23762.
1289
Werner Lembergbe54a682008-06-29 07:43:41 +000012902008-06-29 Werner Lemberg <wl@gnu.org>
1291
1292 * Version 2.3.7 released.
1293 =========================
1294
1295
1296 Tag sources with `VER-2-3-7'.
1297
1298 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1299 version number to 2.3.7.
1300
1301 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1302 builds/win32/visualc/freetype.dsp,
1303 builds/win32/visualc/freetype.vcproj,
1304 builds/win32/visualce/index.html,
1305 builds/win32/visualce/freetype.dsp,
1306 builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
1307
1308 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
1309
1310 * builds/unix/configure.raw (version_info): Set to 9:18:3.
1311
1312 * docs/release: Updated.
1313
Werner Lemberg4e7d9842008-06-27 22:26:11 +000013142008-06-28 Werner Lemberg <wl@gnu.org>
1315
Werner Lembergbe54a682008-06-29 07:43:41 +00001316 * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
Werner Lemberg4e7d9842008-06-27 22:26:11 +00001317 * src/ftcalc.c: Here. This fixes Savannah bug #23729.
1318
Werner Lemberga741c6f2008-06-27 06:58:48 +000013192008-06-27 Werner Lemberg <wl@gnu.org>
1320
1321 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
1322 Horizontal_Gray_Sweep_Drop): Test for intersections which
1323 degenerate to a single point can be ignored; this has been confirmed
1324 by Greg Hitchcock from Microsoft. (This was commented out code.)
1325
Werner Lemberg8a9b6392008-06-26 19:56:51 +000013262008-06-26 Werner Lemberg <wl@gnu.org>
1327
1328 Improve navigation in API reference.
1329
1330 * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
1331 (html_header_6): This.
1332 (html_header_3, html_header_3i, html_header_4, html_header_5,
1333 html_header_5t): New strings.
1334 (toc_footer_start, toc_footer_end): New strings.
1335 (HtmlFormatter::html_header): Updated.
1336 (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
1337 New strings.
1338 (HtmlFormatter::index_enter): Use `html_index_header'.
1339 (HtmlFormatter::index_exit): Print `html_footer'.
1340 (HtmlFormatter::toc_enter): Use `html_toc_header'.
1341 (HtmlFormatter::toc_exit): Print proper footer.
1342
1343 Convert ~ to non-breakable space.
1344
1345 * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
1346 Update header files accordingly.
1347
Werner Lembergb2116512008-09-12 16:27:48 +000013482008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001349
Werner Lemberg8a9b6392008-06-26 19:56:51 +00001350 * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
Werner Lemberge172c332008-06-25 22:21:42 +00001351 and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5
1352 bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
1353 ResourceIndex type definition. The macro does not inform the type
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001354 availability.
1355 * src/base/ftmac.c: More parentheses are inserted to clarify the
Werner Lemberge172c332008-06-25 22:21:42 +00001356 conditionals to disable legacy APIs in `10.5 and later' cases. If
1357 HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
Suzuki, Toshiya (鈴木俊哉)f3a924d2008-06-24 17:13:58 +00001358
Werner Lemberg5563bea2008-06-24 05:44:28 +000013592008-06-24 Werner Lemberg <wl@gnu.org>
1360
Werner Lemberg830846e2008-07-27 06:27:21 +00001361 * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
1362 mode.
Werner Lembergce8853a2008-06-24 11:19:03 +00001363
1364 * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
1365 Draw_Sweep): No-dropout mode is value 2, not value 0.
1366 (Draw_Sweep): Really skip dropout handling for no-dropout mode.
1367
13682008-06-24 Werner Lemberg <wl@gnu.org>
1369
Werner Lemberg5563bea2008-06-24 05:44:28 +00001370 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
1371 if it consists of one point only. Based on a patch from Savannah
1372 bug #23683 (from John Tytgat).
1373
Werner Lemberg745a4f42008-06-22 22:41:24 +000013742008-06-22 Werner Lemberg <wl@gnu.org>
1375
1376 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
1377 with IS_HINTED.
1378
1379 * docs/CHANGES: Updated.
1380
Werner Lembergb2116512008-09-12 16:27:48 +000013812008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +00001382
Werner Lemberg745a4f42008-06-22 22:41:24 +00001383 * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
1384 but LDFLAGS does not, import it to LDFLAGS. The option is used to
1385 specify non-default SDK on Mac OS X (e.g., universal binary SDK for
1386 Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
1387 recommends to add the option only to CFLAGS, LDFLAGS should include
1388 it because libfreetype.la is built with -no-undefined. This fixes a
1389 bug reported by Ryan Schmidt in MacPorts,
1390 http://trac.macports.org/ticket/15331.
Suzuki, Toshiya (鈴木俊哉)b1c36cf2008-06-22 15:32:56 +00001391
Werner Lemberg5df5dbb2008-06-22 13:40:08 +000013922008-06-21 Werner Lemberg <wl@gnu.org>
1393
1394 Enable access to the various dropout rules of the B&W rasterizer.
1395 Pass dropout rules from the TT bytecode interpreter to the
Werner Lemberg959cb8e2008-06-25 20:58:33 +00001396 rasterizer.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +00001397
1398 * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
1399 FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
1400
1401 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
1402 Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
1403 OpenType specification.
1404 Fix mode 4 computation.
1405 (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
1406
Werner Lemberg959cb8e2008-06-25 20:58:33 +00001407 * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
1408 mode to FT_OUTLINE_XXX flags.
Werner Lemberg5df5dbb2008-06-22 13:40:08 +00001409
1410 * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
1411
Werner Lembergcd6dcca2008-06-19 06:20:21 +000014122008-06-19 Werner Lemberg <wl@gnu.org>
1413
Werner Lemberg5b631d82008-06-19 16:23:43 +00001414 * src/cff/cffobjs.c (cff_face_init): Compute final
1415 `dict->units_per_em' value before assigning it to
Werner Lembergbe54a682008-06-29 07:43:41 +00001416 `cffface->units_per_EM'. Otherwise, CFFs without subfonts are
Werner Lemberg5b631d82008-06-19 16:23:43 +00001417 scaled incorrectly if the font matrix is non-standard. This fixes
1418 Savannah bug #23630.
1419
1420 * docs/CHANGES: Updated.
1421
14222008-06-19 Werner Lemberg <wl@gnu.org>
1423
Werner Lembergbe54a682008-06-29 07:43:41 +00001424 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
1425 from 2008-06-19.
Werner Lembergcd6dcca2008-06-19 06:20:21 +00001426
Werner Lembergd57a5e92008-06-18 06:16:39 +000014272008-06-18 Werner Lemberg <wl@gnu.org>
1428
1429 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
1430 Reported by Peter Weilbacher <mozilla@weilbacher.org>.
1431
1432 * docs/CHANGES: Updated.
1433
Werner Lembergca947c22008-06-16 05:33:51 +000014342008-06-15 George Williams <gww@silcom.com>
1435
1436 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
1437 `valid->extra2' to 1. This is undocumented in the OpenType 1.5
1438 specification.
1439
Werner Lembergad83e052008-06-15 11:06:12 +000014402008-06-15 Werner Lemberg <wl@gnu.org>
1441
1442 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
1443 from clobbering. Patch from Savannah bug report #23556.
1444
1445 * docs/CHANGES: Document it.
1446
Werner Lemberg102bb832008-06-10 04:57:19 +000014472008-06-10 Werner Lemberg <wl@gnu.org>
1448
Werner Lembergb796adb2008-06-10 17:15:35 +00001449 * autogen.sh: Add option `--install' to libtoolize.
1450
14512008-06-10 Werner Lemberg <wl@gnu.org>
1452
Werner Lemberg6174e172008-06-10 05:58:25 +00001453 * Version 2.3.6 released.
1454 =========================
1455
1456
1457 Tag sources with `VER-2-3-6'.
1458
1459 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1460 version number to 2.3.6.
1461
1462 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1463 builds/win32/visualc/freetype.dsp,
1464 builds/win32/visualc/freetype.vcproj,
1465 builds/win32/visualce/index.html,
1466 builds/win32/visualce/freetype.dsp,
1467 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
1468
1469 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
1470
1471 * builds/unix/configure.raw (version_info): Set to 9:17:3.
1472
1473
1474 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
1475 and `scale_y'.
1476 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
1477
1478
1479 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
1480 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
1481
14822008-06-10 Werner Lemberg <wl@gnu.org>
1483
Werner Lemberg102bb832008-06-10 04:57:19 +00001484 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
1485 `clazz->done_face'.
1486
Werner Lemberg630e24d2008-06-09 21:20:18 +000014872008-06-09 VaDiM <s_sliva@rambler.ru>
1488
1489 Support debugging on WinCE. From Savannah patch #6536; this fixes
1490 bug #23497.
1491
1492 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
1493 as a replacement for OutputDebugStringA (which WinCE doesn't have).
1494 Update all callers.
1495 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
1496 environment variables.
1497
Werner Lemberga984fda2008-06-09 21:02:13 +000014982008-06-09 Werner Lemberg <wl@gnu.org>
1499
1500 * README.CVS: Updated.
1501
Werner Lemberg26bd7a22008-06-09 21:27:17 +00001502 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
1503 for newer versions of autoconf and friends.
Werner Lemberga984fda2008-06-09 21:02:13 +00001504
Werner Lemberg7cb9ec02008-06-09 20:49:29 +000015052008-06-08 Werner Lemberg <wl@gnu.org>
1506
1507 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
1508 `private_len' unsigned.
1509
1510 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
1511 it as such.
1512 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
1513
1514
1515 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
1516
1517
1518 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
1519 for sane value.
1520 Fix typo.
1521
1522
1523 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
1524
1525
1526 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
1527 `last_point'.
1528
1529
1530 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
1531 `maxTwilightPoints'.
1532
Werner Lembergd77e7222008-06-05 22:07:19 +000015332008-06-06 Werner Lemberg <wl@gnu.org>
1534
1535 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
1536 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
1537
Werner Lemberg4c3cc762008-06-03 20:53:49 +000015382008-06-03 Werner Lemberg <wl@gnu.org>
1539
1540 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
1541 FT_Pointer. Reported by Ian Britten <britten@caris.com>.
1542
Werner Lemberg8e3539b2008-06-02 13:53:54 +000015432008-06-02 Werner Lemberg <wl@gnu.org>
1544
1545 Emit header info for defined FreeType objects in reference.
1546
1547 * src/tools/docmaker/content.py (re_header_macro): New regexp.
1548 (ContentProcessor::__init__): Initialize new dictionary `headers'.
1549 (DocBlock::__init__): Collect macro header definitions.
1550
1551 * src/tools/docmaker/tohtml.py (header_location_header,
1552 header_location_footer): New strings.
1553 (HtmlFormatter::__init__): Pass `headers' dictionary.
1554 (HtmlFormatter::print_html_field): Don't emit paragraph tags.
1555 (HtmlFormatter::print_html_field_list): Emit empty paragraph.
1556 (HtmlFormatter::block_enter): Emit header info.
1557
15582008-06-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg7493ea12008-06-02 07:24:36 +00001559
1560 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
1561 FT_INCREMENTAL_H): Added.
1562
Werner Lembergc94fa662008-05-27 23:24:07 +000015632008-05-28 Werner Lemberg <wl@gnu.org>
1564
Werner Lembergde0d0052008-05-28 21:51:15 +00001565 * src/tools/docmaker/sources.py (SourceBlock::__init__): While
1566 looking for markup tags, return immediately as soon a single one is
1567 found.
1568
15692008-05-28 Werner Lemberg <wl@gnu.org>
1570
Werner Lembergc94fa662008-05-27 23:24:07 +00001571 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
1572 original, unscaled input values. Confirmed by Greg Hitchcock from
1573 Microsoft.
1574
Werner Lemberg35a90b72008-05-27 18:16:03 +000015752008-05-27 Werner Lemberg <wl@gnu.org>
1576
1577 * src/tools/docmaker/tohtml.py (block_footer_start,
1578 block_footer_middle): Beautify output.
1579
Werner Lembergc9381312008-05-25 12:19:34 +000015802008-05-25 Werner Lemberg <wl@gnu.org>
1581
1582 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
1583 trying to render into a zero-width/height bitmap, not an error code.
1584
Werner Lembergffa49652008-05-25 12:43:57 +00001585 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
1586 of the graphics state for subglyphs to...
1587 (TT_Hint_Glyph): This function.
1588 Hinting instructions for a composite glyph apparently refer to the
1589 just hinted subglyphs, not the unhinted, unscaled outline. This
1590 seems to fix Savannah bugs #20973 and (at least partially) #23310.
1591
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +000015922008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1593
1594 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
Werner Lemberg355f1b12008-05-22 06:12:23 +00001595 `aface' is returned by FT_New_Face_From_FOND(). The patch was
1596 proposed by an anonymous reporter of Savannah bug #23204.
Suzuki, Toshiya (鈴木俊哉)062f88a2008-05-20 07:57:53 +00001597
Werner Lemberg16dc51f2008-05-18 17:36:15 +000015982008-05-18 Werner Lemberg <wl@gnu.org>
1599
Werner Lemberg5e8a3682008-05-18 21:49:02 +00001600 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
1601 correction for pixel boundary. Without this patch, the effect can
1602 be cumulative under certain circumstances, making glyphs taller and
1603 taller after each call. This fixes Savannah bug #19976.
1604
16052008-05-18 Werner Lemberg <wl@gnu.org>
1606
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001607 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
1608 This fixes Savannah bug #23280.
1609
1610 * docs/CHANGES: Updated.
1611
Werner Lembergb2116512008-09-12 16:27:48 +000016122008-05-18 David Turner <david@freetype.org>
David Turnera92cec52008-05-18 14:08:57 +00001613
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001614 * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
1615 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
1616 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
1617 declarations non-global.
David Turnera92cec52008-05-18 14:08:57 +00001618
Werner Lemberg16dc51f2008-05-18 17:36:15 +00001619 * src/type1/t1load.c: Add missing comment.
David Turnera92cec52008-05-18 14:08:57 +00001620
Werner Lemberg89d64fa2008-05-17 20:06:13 +000016212008-05-17 Sam Hocevar <samh>
1622
1623 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
1624 glyphs correctly. Patch from Savannah bug #23277.
1625
Werner Lemberga2f17cc2008-05-17 10:01:45 +000016262008-05-16 Werner Lemberg <wl@gnu.org>
1627
1628 * docs/CHANGES: Updated.
1629
16302008-05-16 Sergey Tolstov <stolstov@esri.com>
1631
1632 Improve support for WGL4 encoded fonts.
1633
1634 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
1635 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
1636 ft_wgl_extra_glyph_name_offsets): New arrays.
1637 (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
1638 (ps_unicodes_init): Use them to add additional Unicode mappings.
1639
Werner Lemberg504645e2008-05-14 23:26:20 +000016402008-05-15 Werner Lemberg <wl@gnu.org>
1641
Werner Lembergbcc750e2008-05-16 04:50:00 +00001642 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1643 <op_closepath>: `closepath' without a path is a no-op, not an error
1644 (cf. the PS reference manual).
1645
1646 Reported by Martin McBride.
1647
16482008-05-15 Werner Lemberg <wl@gnu.org>
1649
Werner Lembergbcfcc712008-05-15 09:14:39 +00001650 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
1651
16522008-05-15 Werner Lemberg <wl@gnu.org>
1653
Werner Lemberg504645e2008-05-14 23:26:20 +00001654 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
Werner Lemberg2d738992008-05-14 23:33:53 +00001655 which contains a single but empty entry. This is technically
1656 invalid (since it must end with `return'), but...
Werner Lemberg504645e2008-05-14 23:26:20 +00001657
1658 Reported by Martin McBride.
1659
Werner Lemberge6e6ead2008-05-14 23:05:38 +000016602008-05-14 Werner Lemberg <wl@gnu.org>
1661
1662 Finish fix of scaling bug of CID-keyed CFF subfonts.
1663
1664 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
1665 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
1666 functions.
1667
1668 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
1669 provide global hinting data for both the top-font and all subfonts
1670 (with proper scaling).
1671
1672 * src/cff/cffobjs.c (cff_make_private_dict): New function, using
1673 code from `cff_size_init'.
1674 (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
1675 Use CFF_Internal and handle subfonts.
1676 (cff_face_init): Handle top-dict and subfont matrices correctly;
1677 apply some heuristic in case of unlikely matrix concatenation
1678 results. This has been discussed with people from Adobe (thanks
1679 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
1680 and not correct.
1681
1682 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
1683
1684 * src/cff/cffgload.c (cff_builder_init): Updated.
1685 (cff_decoder_prepare): Handle hints globals for subfonts.
1686 Update all callers.
1687 (cff_slot_load): Handling scaling of subfonts properly.
1688
1689 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
1690 (cff_parse_font_matrix): Use it.
1691
1692 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
1693 FT_ULong.
1694
1695 * docs/CHANGES: Document it.
1696
Werner Lembergfb572282008-05-13 12:10:04 +000016972008-05-13 Werner Lemberg <wl@gnu.org>
1698
1699 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
1700 Handle case `face_index < 0'.
1701 * docs/CHANGES: Document it.
1702
Werner Lemberg551dd3c2008-05-04 13:37:38 +000017032008-05-04 Werner Lemberg <wl@gnu.org>
1704
1705 First steps to fix the scaling bug of CID-keyed CFF subfonts,
1706 reported by Ding Li on 2008/03/28 on freetype-devel.
1707
1708 * src/base/cff/cffparse.c (power_tens): New array.
1709 (cff_parse_real): Rewritten to introduce a fourth parameter which
1710 returns the `scaling' of the real number so that we have no
1711 precision loss. This is not used yet.
1712 Update all callers.
1713 (cff_parse_fixed_thousand): Replace with...
1714 (cff_parse_fixed_scaled): This function. Update all callers.
1715
Werner Lemberg6d29f0f2008-05-03 15:54:15 +000017162008-05-03 Werner Lemberg <wl@gnu.org>
1717
1718 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
1719 transformation since it recursively calls FT_Load_Glyph. This fixes
1720 Savannah bug #23143.
1721
Werner Lembergde9479a2008-04-26 12:52:57 +000017222008-04-26 Werner Lemberg <wl@gnu.org>
1723
1724 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
1725 and `scale_y' as obsolete since they aren't used.
1726 * src/psaux/psobjs.c (t1_builder_init): Updated.
1727
1728 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
1729 obsolete since they aren't used.
1730 * src/cff/cffgload.c (cff_builder_init): Updated.
1731
Werner Lemberg4ebc8902008-04-13 22:06:12 +000017322008-04-14 Werner Lemberg <wl@gnu.org>
1733
1734 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
1735 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
1736 bug #22909.
1737
Werner Lemberg048b7562008-04-13 05:55:36 +000017382008-04-13 Werner Lemberg <wl@gnu.org>
1739
1740 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
1741 integer part is zero.
1742
Werner Lembergc32e83f2008-04-01 06:07:37 +000017432008-04-01 Werner Lemberg <wl@gnu.org>
1744
1745 Fix compilation with g++ 4.1 (with both `single' and `multi'
1746 targets).
1747
1748 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
1749 which is crossed by a `goto'.
1750
1751 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
1752
Werner Lemberg210d6182008-04-01 05:55:48 +000017532008-03-31 Werner Lemberg <wl@gnu.org>
1754
1755 Fix support for subsetted CID-keyed CFFs.
1756
1757 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
1758 FT_IS_CID_KEYED): New macros.
1759
1760 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
1761 maximum CID value in CID-keyed CFFs.
1762 Handle FT_FACE_FLAG_CID_KEYED flag.
1763
1764 * docs/CHANGES: Document it.
1765
1766
1767 Fix CFF font matrix calculation and improve precision.
1768
1769 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
1770 part is zero.
1771 (cff_parse_font_matrix): Simplify computation of `units_per_em';
1772 this prevents overflow also.
1773
1774
1775 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
1776
1777 * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
1778 (cid_get_ros): New function.
1779 (cid_service_cid_info): New service structure.
1780 (cid_services): Register it.
1781
Werner Lemberga56e5262008-03-23 14:53:44 +000017822008-03-23 Werner Lemberg <wl@gnu.org>
1783
1784 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
1785
1786 * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
1787 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
1788
Werner Lemberg85751172008-03-21 07:16:00 +000017892008-03-21 Laurence Darby <ldarby>
1790
1791 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
1792 Savannah bug #22675.
1793
Werner Lemberg3863c952008-03-13 06:38:37 +000017942008-03-13 Derek Clegg <dclegg@apple.com>
1795
David Turnercda6f492009-03-03 20:49:32 +00001796 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
Werner Lemberg3863c952008-03-13 06:38:37 +00001797 Patch from Savannah bug #22541.
1798
Werner Lembergfc293932008-03-03 08:08:12 +000017992008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
1800
1801 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
1802 tt_cmap14_find_variant): Return correct value.
1803 (tt_cmap14_variant_chars): Fix check for `di'.
1804
Werner Lemberg5057e362008-02-29 07:23:02 +000018052008-02-29 Wermer Lemberg <wl@gnu.org>
1806
1807 * docs/CHANGES: Updated.
1808
Werner Lemberg7faa1552008-02-29 07:14:38 +000018092008-02-29 Wolf
1810
1811 Add build support for symbian platform. From Savannah bug #22440.
1812
1813 * builds/symbian/*: New files.
1814
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +000018152008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1816
Werner Lemberg9b9d3342008-02-21 23:22:06 +00001817 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
1818 synthesis. For any face of a specified FOND, always the name for
1819 the first face was used. Except of a FOND that refers multiple
1820 Type1 font files, wrong synthesized font names are not used at all,
1821 so this is an invisible bug. A few limit checks are added too.
Suzuki, Toshiya (鈴木俊哉)6cb2faa2008-02-21 18:46:07 +00001822
1823 * builds/mac/ftmac.c: Ditto.
1824
18252008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1826
Werner Lemberg31093cc2008-02-21 17:10:04 +00001827 * builds/unix/configure.raw: Split compiler option to link Carbon
1828 frameworks to one option for CoreServices framework and another
1829 option for ApplicationServices framework. The split options can be
1830 managed by GNU libtool to avoid unrequired duplication when FreeType
1831 is linked with other applications. Suggested by Daniel Macks,
1832 Savannah bug #22366.
Suzuki, Toshiya (鈴木俊哉)5d3ac4a2008-02-21 10:15:41 +00001833
Werner Lemberg28464c42008-02-18 20:34:42 +000018342008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
1835
1836 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
1837 from Savannah bug #22356.
1838
Werner Lemberg44c655b2008-02-17 08:22:08 +000018392008-02-17 Jonathan Blow <jon@number-none.com>
1840
1841 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1842 Check for valid callback pointers.
1843
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +000018442008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1845
1846 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
1847 handle by its value instead of ResError(), fix provided by Deron
Werner Lembergc903f2f2008-02-17 08:23:04 +00001848 Kazmaier. According to the Resource Manager Reference,
1849 GetResource(), Get1Resource(), GetNamedResource(),
1850 Get1NamedResource() and RGetResource() set noErr but return NULL
1851 handle when they can not find the requested resource. These
1852 functions never return undefined values, so it is sufficient to
1853 check if the handle is not NULL.
Suzuki, Toshiya (鈴木俊哉)d2c55ab2008-02-15 09:12:59 +00001854
1855 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
1856
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +000018572008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1858
1859 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
Werner Lembergaa722df2008-02-14 10:46:40 +00001860 inclusion styles. Now it always includes src/base/ftmac.c;
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00001861 builds/mac/ftmac.c is never included in any configuration.
Werner Lembergaa722df2008-02-14 10:46:40 +00001862
1863 * builds/unix/configure.raw: Print warning if configure is executed
1864 with options to specify Carbon functionalities explicitly.
1865
1866 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
Suzuki, Toshiya (鈴木俊哉)60e83a12008-02-14 02:55:16 +00001867 included automatically and manual replacement is required.
1868
Werner Lemberg744dd452008-02-11 08:22:40 +000018692008-02-11 Werner Lemberg <wl@gnu.org>
1870
1871 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
1872 (dos_setup), builds/freetype.mk (clean_project_dos,
1873 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
1874 Murdoch.
1875
Werner Lemberg4c933992008-01-18 05:32:55 +000018762008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
1877
1878 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
1879 mention intra-pixel algorithm.
1880
1881 * include/freetype/freetype.h (FT_Render_Mode): Mention that
1882 FT_Library_SetLcdFilter can be used to reduce fringes.
1883
Werner Lemberg1ddd1b72008-01-16 06:58:54 +000018842008-01-16 Werner Lemberg <wl@gnu.org>
1885
1886 * src/raster/ftraster.c (ft_black_render): Check `outline' before
1887 using it. Reported by Allan Yang.
1888
Werner Lembergeca1f272008-01-12 07:46:09 +000018892008-01-12 Werner Lemberg <wl@gnu.org>
1890
1891 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
1892
18932008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
1894
1895 * src/raster/ftraster.c (ft_black_init)
1896 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
1897
Werner Lembergbf391cb2008-01-10 08:47:08 +000018982008-01-10 Werner Lemberg <wl@gnu.org>
1899
1900 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
1901 where the number of contours in a simple glyph is zero (and which
1902 does contain an entry in the `glyf' table). This fixes Savannah bug
1903 #21990.
1904
Suzuki, Toshiya (鈴木俊哉)75696862008-01-04 01:43:23 +000019052008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1906
1907 Formatting suggested by Sean McBride.
1908
1909 * builds/mac/ftmac.c: Formatting (tab expanded).
1910 * src/autofit/afindic.c: Ditto.
1911 * src/base/ftcid.c: Ditto.
1912 * src/base/ftmac.c: Ditto.
1913
Werner Lembergd2e15732007-12-30 23:49:14 +000019142007-12-30 Werner Lemberg <wl@gnu.org>
1915
1916 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
1917 correctly.
1918
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +000019192007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1920
1921 Improvement of POSIX resource-fork accessor to load unsorted
Werner Lembergd2e15732007-12-30 23:49:14 +00001922 references in a resource. In HelveLTMM (resource-fork PostScript
1923 Type1 font bundled with Mac OS X since 10.3.x), the appearance order
1924 of PFB chunks is not sorted; sorting the chunks by reference IDs is
1925 required.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001926
Werner Lembergd2e15732007-12-30 23:49:14 +00001927 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
1928 type to store a pair of reference ID and offset to the chunk.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001929
Werner Lembergd2e15732007-12-30 23:49:14 +00001930 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
1931 sort FT_RFork_Ref by their reference IDs.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001932
Werner Lembergd2e15732007-12-30 23:49:14 +00001933 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
1934 sorted by reference ID.
Suzuki, Toshiya (鈴木俊哉)540b9542007-12-21 06:03:59 +00001935
Werner Lembergd156cab2007-12-14 07:48:32 +000019362007-12-14 Werner Lemberg <wl@gnu.org>
1937
1938 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
1939 division too early; otherwise the most significant digit(s) of the
1940 final result are lost as the value is truncated to an integer. This
1941 fixes Savannah bug #21794 (where the patch has been posted too).
1942
Werner Lembergbd7e1c32007-12-06 17:17:30 +000019432007-12-06 Fix <4d876b82@gmail.com>
1944
1945 Pass options from one configure script to another as-is (not
1946 expanded). This is needed for options like
1947 --includedir='${prefix}/include'.
1948
1949 * builds/unix/detect.mk, configure: Prevent argument expansion in
1950 call to the (real) `configure' script.
1951
19522007-12-06 Werner Lemberg <wl@gnu.org>
1953
1954 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
1955 TT_USE_BYTECODE_INTERPRETER isn't defined.
1956
19572007-12-06 Werner Lemberg <wl@gnu.org>
1958
1959 There exist CFFs which contain opcodes for the Type 1 operators
1960 `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
1961 However, it doesn't harm to support them.
1962
1963 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
1964 `cff_op_closepath.'
1965 (cff_argument_counts): Ditto.
1966
1967 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
1968 and 13 (hsbw) which are invalid in Type 2 charstrings.
1969
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +000019702007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1971
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001972 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
1973 support new pathname syntax `..namedfork/rsrc' to access a resource
1974 fork on Mac OS X. The legacy syntax `/rsrc' does not work on
1975 case-sensitive HFS+.
Suzuki, Toshiya (鈴木俊哉)a6d36572007-12-06 10:27:15 +00001976 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
1977 buffer size to store a pathname.
1978 * include/freetype/internal/ftrfork.h: Increment the number of
1979 resource fork guessing rule.
1980
19812007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1982
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001983 * builds/unix/configure.raw: Improve the compile tests to search
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +00001984 Carbon functions.
Werner Lembergbd7e1c32007-12-06 17:17:30 +00001985 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
Suzuki, Toshiya (鈴木俊哉)44b5e572007-12-06 07:47:25 +00001986 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
1987
19882007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1989
Suzuki, Toshiya (鈴木俊哉)05f5c582007-12-06 05:43:36 +00001990 The documents and comments for Mac OS X are improved by Sean
1991 McBride.
1992
1993 * src/base/ftmac.c: Fix a comment.
1994 * include/freetype/ftmac.h: Ditto.
1995 * docs/INSTALL.MAC: Improve English and add comment on lowest
1996 system version specified by MACOSX_DEPLOYMENT_TARGET.
1997
Werner Lemberga10d2b72007-12-04 22:05:54 +000019982007-12-04 Werner Lemberg <wl@gnu.org>
1999
2000 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
2001 concatenate error codes.
2002 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
2003
Werner Lembergd496b922007-12-04 21:49:59 +000020042007-12-04 Graham Asher <graham.asher@btinternet.com>
2005
2006 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
2007 concatenate error codes.
2008
Werner Lembergc0da5232007-12-04 21:44:32 +000020092007-12-04 Sean McBride <sean@rogue-research.com>
2010
2011 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
2012 warning.
2013
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +000020142007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2015
Werner Lemberg6174e172008-06-10 05:58:25 +00002016 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
Werner Lemberg24fe6182007-11-23 09:18:07 +00002017 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
2018 cannot mmap() the specified file and cannot seek to head of the
2019 specified file, it returns NULL stream and FT_Open_New() returns the
2020 error immediately. On MacOS, most legacy MacOS fonts fall into such
2021 a scenario because their data forks are zero-sized and cannot be
2022 sought. To proceed to guessing of resource fork fonts, the
2023 functions for legacy MacOS font must properly handle the NULL stream
2024 returned by FT_New_Stream().
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00002025
Werner Lemberg24fe6182007-11-23 09:18:07 +00002026 * src/base/ftobjs.c (IsMacBinary): Return error
2027 FT_Err_Invalid_Stream_Operation immediately when NULL stream is
2028 passed.
2029 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
2030 to fallback. Originally, legacy MacOS font is tested in the cases
2031 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
2032 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
2033 .dfont header is combined). Now the case of
2034 FT_Err_Cannot_Open_Stream is included.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00002035
Werner Lemberg24fe6182007-11-23 09:18:07 +00002036 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
2037 skip FT_Stream_Seek(), which seeks to the head of stream, and
2038 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
2039 for a NULL stream causes a Bus error on Mac OS X.
2040 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00002041 immediately if passed stream is NULL.
Suzuki, Toshiya (鈴木俊哉)86c0f902007-11-20 14:00:17 +00002042 (raccess_guess_apple_single): Ditto.
2043
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000020442007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2045
Suzuki, Toshiya (鈴木俊哉)a5470682007-11-16 16:29:36 +00002046 Fix for Carbon incompatibilities since Mac OS X 10.5,
2047 proposed by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00002048
2049 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
2050
2051 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
Werner Lemberg830846e2008-07-27 06:27:21 +00002052 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00002053 Carbon functions from a forked process is classified as unsafe
Werner Lemberg830846e2008-07-27 06:27:21 +00002054 by Apple. All Carbon-dependent functions should be deprecated.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00002055
Werner Lembergf2e33c12009-01-06 06:59:36 +00002056 * src/base/ftmac.c: Use essential header files
2057 <CoreServices/CoreServices.h> and
2058 <ApplicationServices/ApplicationServices.h> instead of
2059 all-in-one header file <Carbon/Carbon.h>.
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +00002060
2061 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
2062 genuine macro PATH_MAX.
2063
2064 Add fallback macro for kATSOptionFlagsUnRestrictedScope which
2065 is not found in Mac OS X 10.0.
2066
2067 Multi-character constants ('POST', 'sfnt' etc) are replaced by
2068 64bit constants calculated by FT_MAKE_TAG() macro.
2069
2070 For the index in the segment of resource fork, new portable
2071 type ResourceIndex is introduced for better compatibility.
2072 This type is since Mac OS X 10.5, so it is defined as short
2073 when built on older platforms.
2074
2075 (FT_ATSFontGetFileReference): If build target is only the systems
2076 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
2077
2078 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
2079 and newer or 64bit platform, because legacy type FSSpec type is
2080 removed completely.
2081
2082 (FT_New_Face_From_FSSpec): Ditto.
2083
20842007-11-01 Werner Lemberg <wl@gnu.org>
Werner Lembergd503fc52007-11-01 09:19:44 +00002085
2086 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
2087 fixes Savannah bug #21485.
2088
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000020892007-10-29 Daniel Svoboda <dasvo@planeta@cz>
Werner Lemberg27649fb2007-10-29 22:00:58 +00002090
2091 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
2092 can handle the font at all, then check `face_index'. Otherwise, the
2093 driver might return the wrong error code. This fixes Savannah bug
2094 #21468.
2095
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000020962007-10-21 Werner Lemberg <wl@gnu.org>
Werner Lemberg7d9c1892007-10-21 08:12:30 +00002097
2098 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
David Turnercda6f492009-03-03 20:49:32 +00002099 support for bit 8 of the `fsSelection' field in the `OS/2' table.
Werner Lemberge77b6c42007-10-21 08:18:40 +00002100 MS is already using this; hopefully, this becomes part of OpenType
2101 1.5.
Werner Lemberg7d9c1892007-10-21 08:12:30 +00002102 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
2103 (WWS_SUBFAMILY).
2104
Suzuki, Toshiya (鈴木俊哉)00518ca2007-11-16 15:48:58 +000021052007-10-20 Werner Lemberg <wl@gnu.org>
Werner Lemberg66842572007-10-20 16:17:28 +00002106
2107 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
2108 Add `td.left' element to CSS.
2109 (toc_section_enter): Use it.
2110
David Turnercf432db2007-10-19 12:36:40 +000021112007-10-18 David Turner <david@freetype.org>
2112
Werner Lemberg7f2425f2007-10-20 16:15:07 +00002113 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
2114 functions related to cmap type 14 support to the
2115 `FT_Object_ActionName' scheme:
David Turnercf432db2007-10-19 12:36:40 +00002116
Werner Lemberg7f2425f2007-10-20 16:15:07 +00002117 FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
2118 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
2119 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
2120 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
2121 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
2122
2123 Update documentation accordingly.
2124
2125 * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
2126 Make the code a little more consistent with FreeType coding
2127 conventions and modify the cmap14 functions that returned a newly
2128 allocated array to use a persistent vector from the TT_CMap14 object
David Turnercf432db2007-10-19 12:36:40 +00002129 instead.
2130
Werner Lemberg7f2425f2007-10-20 16:15:07 +00002131 (TT_CMap14Rec): Provide array and auxiliary data for result.
2132 (tt_cmap14_done, tt_cmap14_ensure): New functions.
2133
2134 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
2135 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
2136 tt_cmap14_char_var_index, tt_cmap14_variants,
2137 tt_cmap14_char_variants, tt_cmap14_def_char_count,
2138 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
2139 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
2140
Werner Lemberg9a966b72007-10-15 17:21:32 +000021412007-10-15 George Williams <gww@silcom.com>
2142
2143 Add support for cmap type 14.
2144
2145 * devel/ftoption.h, include/freetype/config/ftoption.h
2146 (TT_CONFIG_CMAP_FORMAT_14): New macro.
2147
2148 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
2149 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
2150 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
2151 support function prototypes.
2152 (FT_CMap_ClassRec): Add them.
2153 Update all users.
2154
2155 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
2156 macro.
2157
2158 * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
2159 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
2160 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
2161 functions.
2162
2163 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
2164 function.
2165 (FT_Set_Charmap): Disallow cmaps of type 14.
2166 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
2167 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
2168 FT_Get_Chars_Of_Variant): New API functions.
2169
2170 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
2171
2172 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
2173 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
2174 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
2175 tt_cmap14_find_variant, tt_cmap14_char_var_index,
2176 tt_cmap14_char_var_isdefault, tt_cmap14_variants,
2177 tt_cmap14_char_variants, tt_cmap14_def_char_count,
2178 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
2179 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
2180 structures for cmap 14 support.
2181 (tt_cmap_classes): Register tt_cmap14_class_rec.
2182 (tt_face_build_cmaps): One more error message.
2183
2184 * docs/CHANGES: Mention cmap 14 support.
2185
Werner Lemberg74597cc2007-10-01 07:08:56 +000021862007-10-01 Werner Lemberg <wl@gnu.org>
2187
2188 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
David Turnercf432db2007-10-19 12:36:40 +00002189 charmap fails, do the loop again while searching a UCS-2 charmap.
Werner Lemberg74597cc2007-10-01 07:08:56 +00002190 This favours MS charmaps over Apple ones.
2191
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +000021922007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2193
Werner Lemberg9a966b72007-10-15 17:21:32 +00002194 * src/base/ftmac.c: Introduction of abstract `short' data types,
2195 ResFileRefNum and ResID. These types were introduced for Copland,
2196 then backported to MPW. The variables exchanged with FileManager
2197 QuickDraw frameworks are redefined by these data types. Patch was
Suzuki, Toshiya (鈴木俊哉)2be3f472007-08-29 06:08:59 +00002198 proposed by Sean McBride.
2199 * builds/mac/ftmac.c: Ditto.
2200
Werner Lembergabc44f52007-08-18 06:38:07 +000022012007-08-18 Werner Lemberg <wl@gnu.org>
2202
2203 * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
2204 by Imran Yousaf. Fixes Savannah bug #20773.
2205
2206 (otv_Lookup_validate): Correct handling of LookupType. Found by
2207 Imran Yousaf. Fixes Savannah bug #20782.
2208
Werner Lemberg23a424f2007-08-17 20:16:44 +000022092007-08-17 George Williams <gww@silcom.com>
2210
2211 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
2212 SingleSubstFormat1.
2213
Suzuki, Toshiya (鈴木俊哉)4fc0cce2007-08-11 16:35:06 +000022142007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2215
2216 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
2217 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
2218 Found by Ryan Hill.
2219
Werner Lemberg3f1905b2007-08-11 15:45:32 +000022202007-08-11 George Williams <gww@silcom.com>
2221
2222 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
2223 (otv_Coverage_validate): Add fourth argument to pass an expected
2224 count value. Update all users.
2225 Check glyph IDs.
2226 (otv_ClassDef_validate): Check `StartGlyph'.
2227
2228 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
2229 checks.
2230
2231 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
2232 56 constants.
2233 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
2234 Check glyph IDs.
2235
Werner Lembergd76fe5a2007-08-08 06:38:06 +000022362007-08-08 Werner Lemberg <wl@gnu.org>
2237
2238 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
2239 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
2240 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
2241 appropriate. Reported by George.
2242
2243 * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
2244
2245 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
2246
2247 * docs/CHANGES: Updated.
2248
22492007-08-08 George Williams <gww@silcom.com>
2250
2251 Add `MATH' validating support to otvalid module.
2252
2253 * include/freetype/tttags.h (TTAG_MATH): New macro.
2254 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
2255 (FT_VALIDATE_OT): Updated.
2256
2257 * src/otvalid/otmath.c: New file.
2258
2259 * src/otvalid/otvalid.c: Include otvmath.c.
2260 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
2261
Werner Lembergb6617882007-08-04 22:17:48 +000022622007-08-04 Werner Lemberg <wl@gnu.org>
2263
David Turnercf432db2007-10-19 12:36:40 +00002264 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
Werner Lembergb6617882007-08-04 22:17:48 +00002265 Fixes Savannah bug #20686.
2266
Werner Lembergd6752a62007-08-02 22:03:30 +000022672007-08-03 Werner Lemberg <wl@gnu.org>
2268
2269 * src/psnames/psmodule.c: Fix usage of
2270 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
2271
Suzuki, Toshiya (鈴木俊哉)cf093cd2007-07-31 03:58:09 +000022722007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2273
2274 * src/base/ftmac.c (open_face_from_buffer): The argument
2275 `driver_name' is typed as `const char*' to match with the
2276 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
2277 This is same with open_face_from_buffer in src/base/ftobjs.c.
2278 Found and fixed by Sean McBride.
2279
Werner Lemberg39c91ad2007-07-28 05:40:40 +000022802007-07-28 Werner Lemberg <wl@gnu.org>
2281
2282 * src/raster/ftraster.c (count_table): Make it conditional.
2283 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
2284 a preprocessor statement.
2285
Werner Lemberg71dd6872007-07-27 04:44:36 +000022862007-07-27 Werner Lemberg <wl@gnu.org>
2287
2288 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
2289 first usage. From Savannah patch #6115.
2290
Werner Lembergef915c32007-07-16 20:46:05 +000022912007-07-16 Werner Lemberg <wl@gnu.org>
2292
2293 * docs/CHANGES: Updated.
2294
22952007-07-16 Derek Clegg <dclegg@apple.com>
2296
2297 Add new service for getting the ROS from a CID font.
2298
2299 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
2300 * include/freetype/ftcid.h: New file.
2301
2302 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
2303 * include/freetype/internal/services/svcid.h: New file.
2304
2305 * src/base/ftcid.c: New file.
2306
2307 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
2308 (cff_get_ros): New function.
2309 (cff_service_cid_info): New service structure.
2310 (cff_services): Register it.
2311
2312 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
2313
2314 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
2315
2316 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
2317
Werner Lemberg2f109562007-07-11 05:32:00 +000023182007-07-11 Derek Clegg <dclegg@apple.com>
2319
2320 Add support for postscript name service to CFF driver.
2321
2322 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
2323 (cff_get_ps_name): New function.
2324 (cff_service_ps_name): New service structure.
2325 (cff_services): Register it.
2326
Werner Lembergb003b3e2007-07-08 07:13:12 +000023272007-07-07 Werner Lemberg <wl@gnu.org>
2328
2329 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
2330 `target'. Reported by Sean McBride.
2331
Werner Lemberg1e1b6df2007-07-07 07:30:40 +000023322007-07-06 Werner Lemberg <wl@gnu.org>
2333
2334 * src/pfr/pfrcmap.c: Include pfrerror.h.
2335
2336 * src/autofit/afindic.c: Add some external declarations to pacify
2337 `make multi' compilation.
2338
2339 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
2340
2341 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
2342 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
2343 src/autofit/aflatin.c (af_latin_hints_compute_edges),
2344 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
2345 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
2346 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
2347
2348 * docs/release: Mention test compilation targets.
2349
Werner Lemberg986ea4b2007-07-04 04:53:15 +000023502007-07-04 Werner Lemberg <wl@gnu.org>
2351
2352 * docs/PROBLEMS: Mention that some PS based fonts can't be
2353 handled correctly by FreeType.
2354
Werner Lemberg3033f432007-07-04 14:12:19 +00002355 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
2356 recursion depth of 1. This was the maximum value in TrueType 1.0,
2357 and some older fonts don't set this field correctly.
2358
2359 * src/gxvalid/gxvmort1.c
2360 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
2361
Werner Lemberg3b0e5002007-07-03 04:48:19 +000023622007-07-03 Werner Lemberg <wl@gnu.org>
2363
2364 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
2365 `round' to pacify compiler.
2366
23672007-07-02 Werner Lemberg <wl@gnu.org>
2368
2369
2370 * Version 2.3.5 released.
2371 =========================
2372
2373
2374 Tag sources with `VER-2-3-5'.
2375
2376 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2377 version number to 2.3.5.
2378
2379 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2380 builds/win32/visualc/freetype.dsp,
2381 builds/win32/visualc/freetype.vcproj,
2382 builds/win32/visualce/index.html,
2383 builds/win32/visualce/freetype.dsp,
2384 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
2385
2386 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
2387
2388 * builds/unix/configure.raw (version_info): Set to 9:16:3.
2389
David Turner0ba89912007-07-01 09:34:04 +000023902007-07-01 David Turner <david@freetype.org>
2391
Werner Lemberge3be90b2007-07-02 14:58:58 +00002392 * include/freetype/freetype.h, src/base/ftpatent.c
2393 (FT_Face_SetUnpatentedHinting): New function to dynamically change
2394 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +00002395
Werner Lemberge3be90b2007-07-02 14:58:58 +00002396 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
2397 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +00002398
David Turner74cc0e92007-06-30 22:54:12 +000023992007-06-30 David Turner <david@freetype.org>
2400
Werner Lemberge3be90b2007-07-02 14:58:58 +00002401 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
2402 initialization.
David Turner74cc0e92007-06-30 22:54:12 +00002403
Werner Lemberge3be90b2007-07-02 14:58:58 +00002404 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
2405 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +00002406
Werner Lemberg7723dc32007-06-26 04:44:35 +000024072007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
2408
2409 Add autofit module for Indic scripts. This currently just reuses
2410 the CJK-specific functions.
2411
2412 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
2413 macro.
2414 * devel/ftoption.h: Synchronize with
2415 include/freetype/config/ftoption.h.
2416
2417 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
2418
2419 * src/autofit/afglobal.c, src/autofit/aftypes.h,
2420 src/autofit/autofit.c: Updated.
2421
2422 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
2423 (AUTOF_DRV_SRC): Updated.
2424
David Turner8f626b02007-06-22 22:22:38 +000024252007-06-23 David Turner <david@freetype.org>
2426
Werner Lemberg7854c4a2007-06-23 07:16:20 +00002427 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
2428 2007-06-16 that prevented the TrueType module from loading most
2429 glyphs.
David Turner8f626b02007-06-22 22:22:38 +00002430
Werner Lemberg5b4d4352007-06-20 07:07:55 +000024312007-06-20 Werner Lemberg <wl@gnu.org>
2432
2433 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
2434 change.
2435
Werner Lemberg9fe58152007-06-19 07:57:30 +000024362007-06-19 Werner Lemberg <wl@gnu.org>
2437
2438 * src/type1/t1load.c (parse_encoding): Handle one more error.
2439
Werner Lemberg5a829392007-06-19 04:53:30 +000024402007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
2441
2442 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
2443 FNT_Err_Invalid_File_Format if file format was recognized but
2444 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
2445 Add verbose debug logs to make it easier to debug failing load
2446 attempts.
2447 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
2448 so return an error if requested face index is > 0.
2449 Do not do further attempt to load fonts if a previous attempt has
2450 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
2451 file format has been recognized but no fonts found in the file.
2452
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000024532007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2454
2455 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
2456 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
2457 the compiler warnings against unused arguments.
2458 (FT_ATSFontGetFileReference): Ditto.
2459 (FT_GetFile_From_Mac_ATS_Name): Ditto.
2460 (FT_New_Face_From_FSSpec): Ditto.
2461 (lookup_lwfn_by_fond): Fix wrong comment.
2462 Replace `const StringPtr' by more appropriate type
2463 `ConstStr255Param'.
2464 FSRefMakePathPath always returns UTF8 POSIX pathname in
2465 Mach-O, thus HFS pathname support is dropped.
2466 (count_faces): Remove HLock and HUnlock which is not
2467 required on Mac OS X anymore.
2468 (FT_New_Face_From_SFNT): Ditto.
2469 (FT_New_Face_From_FOND): Ditto.
2470 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
2471 except of HFS pathname support and HLock/HUnlock.
2472 They are required on classic CFM environment.
2473
24742007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +00002475
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002476 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
2477 assertion.
2478 (ps_parser_to_bytes): Fix error message.
2479
Werner Lembergbb2510d2007-06-18 17:07:49 +00002480 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002481 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
2482 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +00002483 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +00002484 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002485
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000024862007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +00002487
Werner Lembergf48aec72007-06-18 07:07:55 +00002488 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
2489 logic.
2490 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
2491 correctly.
2492 (ps_parser_load_field_table): Use `fields->array_max' instead of
2493 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
2494
Werner Lemberg95104a42007-06-18 07:33:10 +00002495 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
2496 2007-06-06.
2497
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000024982007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +00002499
2500 * src/tools/ftrandom.c (font_size): New global variable.
2501 (TestFace): Use it.
2502 (main): Handle new option `--size' to set `font_size'.
2503 (Usage): Updated.
2504
Werner Lembergbe183eb2007-06-17 11:27:17 +00002505 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
2506 invalid font.
2507 (FNT_Load_Glyph): Protect against invalid bitmap width.
2508
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000025092007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +00002510
Werner Lemberge12ed562007-06-17 05:31:23 +00002511 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
2512 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +00002513
Werner Lemberge12ed562007-06-17 05:31:23 +00002514 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
2515 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +00002516
Werner Lemberge12ed562007-06-17 05:31:23 +00002517 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
2518 and `zp2'.
2519 (Ins_IP): Check argument ranges to reject bogus operations properly.
2520 (IUP_WorkerRec): Add `max_points' member.
2521 (_iup_worker_interpolate): Check argument ranges.
2522 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +00002523
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000025242007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +00002525
2526 * src/winfonts/winfnt.h: Add necessary structures for PE resource
2527 parsing.
2528 (WinPE32_HeaderRec): New structure.
2529 (WinPE32_SectionRec): New structure.
2530 (WinPE_RsrcDirRec): New structure.
2531 (WinPE_RsrcDirEntryRec): New structure.
2532 (WinPE_RsrcDataEntryRec): New structure.
2533 (FNT_FontRec): Remove unused `size_shift' field.
2534
2535 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
2536 loading bitmap .fon files in PE format.
2537
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000025382007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +00002539
2540 * builds/win32/ftdebug.c: Unify debug level handling with other
2541 platforms.
2542
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000025432007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +00002544
2545 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
2546 console as well as to the debugger.
2547
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +000025482007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +00002549
2550 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
2551 cover all ranges which could possibly be handled by the aflatin
2552 module (since the default fallback for unknown ranges is now the
2553 afcjk module). It might be necessary to fine-tune this further by
2554 splitting off modules for Greek, Cyrillic, or other blocks.
2555
David Turnerb7920172007-06-11 05:37:35 +000025562007-06-11 David Turner <david@freetype.org>
2557
Werner Lemberg49e18b82007-06-11 21:15:09 +00002558 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
2559 incorrect segment linking computation. This was the root cause of
2560 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +00002561
2562
Werner Lemberg49e18b82007-06-11 21:15:09 +00002563 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
2564 to improve the Latin auto-hinter. Note that the new code is
2565 disabled by default since it is not stabilized yet.
2566
2567 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
2568 (disabled currently).
2569
2570 * src/autofit/afhints.c: Remove dead code.
2571 (af_axis_hints_new_edge): Add argument to handle segment directions.
2572 (af_edge_flags_to_string): New function.
2573 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
2574 option flags.
2575 (af_glyph_hints_reload): Add argument to handle inflections.
2576 Simplify.
2577 (af_direction_compute): Fine tuning.
2578 (af_glyph_hints_align_edge_points): Fix logic.
2579 (af_glyph_hints_align_strong_points): Do linear search for small
2580 edge counts.
2581 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
2582 (af_iup_shift): Handle zero `delta'.
2583
2584 * src/autofit/afhints.h: Updated.
2585 (AF_SORT_SEGMENTS): New macro (disabled).
2586 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
2587
2588 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
2589 argument to pass option flags for handling scripts.
2590 * src/autofit/afglobal.h: Updated.
2591
2592 * src/autofit/afcjk.c: Updated.
2593 * src/autofit/aflatin.c: Updated.
2594 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
2595
2596 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
2597 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
2598 Don't set `edge->dir'
2599 (af_latin_hint_edges): Add more logging.
2600
2601 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +00002602
Werner Lembergf6c120f2007-06-11 04:55:58 +000026032007-06-11 Werner Lemberg <wl@gnu.org>
2604
Werner Lembergcf7b7642007-06-11 04:58:01 +00002605 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +00002606
David Turner84c6f882007-06-10 20:51:04 +000026072007-06-10 David Turner <david@freetype.org>
2608
Werner Lembergf6c120f2007-06-11 04:55:58 +00002609 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
2610 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +00002611
Werner Lembergf6c120f2007-06-11 04:55:58 +00002612 * include/freetype/config/ftoption.h: Clarify documentation
2613 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +00002614
Werner Lembergf6c120f2007-06-11 04:55:58 +00002615
2616 Add new `FT_Face_CheckTrueTypePatents' API.
2617
2618 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
2619 declaration.
2620
2621 * include/freetype/internal/services/svttglyf.h,
2622 src/base/ftpatent.c: New files.
2623
2624 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
2625 New macro.
2626
2627 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
2628 `ttpload.h'.
2629 (tt_service_truetype_glyf): New service structure.
2630 (tt_services): Register it.
2631
2632 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
2633 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +00002634
Werner Lemberg33db39e2007-06-08 06:30:29 +000026352007-06-08 Werner Lemberg <wl@gnu.org>
2636
David Turner84c6f882007-06-10 20:51:04 +00002637 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +00002638 Fonts without a cmap must be handled correctly by FreeType (anything
2639 else would be a bug).
2640
2641
2642 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
2643 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
2644
Werner Lemberg88ab6382007-06-07 05:01:56 +000026452007-06-07 Werner Lemberg <wl@gnu.org>
2646
2647 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
2648 tt_sbit_decoder_load_image): Protect against integer overflows.
2649
2650
2651 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
2652 for `x_control' and `y_control'.
2653
Werner Lemberg2a2dca62007-06-06 04:39:37 +000026542007-06-06 Werner Lemberg <wl@gnu.org>
2655
2656 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
2657
Werner Lemberga8d65492007-06-06 04:47:49 +00002658
2659 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
2660 FreeType error.
2661
Werner Lemberg470210b2007-06-06 10:05:49 +00002662
2663 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
2664 `font_count'.
2665
2666
2667 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
2668
2669
2670 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
2671 `FT_Error'.
2672 Check `fd_index'.
2673 (cff_slot_load): Updated.
2674 * src/cff/cffgload.h: Updated.
2675
Werner Lemberg6c054752007-06-05 05:27:54 +000026762007-06-05 Werner Lemberg <wl@gnu.org>
2677
2678 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
2679 (pfr_glyph_load_simple): Convert assertion into normal FreeType
2680 error.
2681 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +00002682 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
2683 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +00002684
2685 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
2686
Werner Lembergf4bc3f42007-06-05 07:32:15 +00002687
Werner Lemberg470210b2007-06-06 10:05:49 +00002688 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +00002689
Werner Lemberge5c14d92007-06-05 20:50:37 +00002690
2691 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
2692 in case of parsing error.
2693 (ps_parser_load_field): Updated.
2694
2695 * src/type1/t1load.c (parse_font_matrix): Updated.
2696
Werner Lembergad18b362007-06-04 07:04:05 +000026972007-06-04 Werner Lemberg <wl@gnu.org>
2698
2699 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
2700
2701 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
2702
Werner Lemberg3d507fe2007-06-03 16:54:55 +000027032007-06-03 Werner Lemberg <wl@gnu.org>
2704
Werner Lemberg99a320b2007-06-03 19:21:26 +00002705 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
2706 George Williams (with some modifications).
2707
27082007-06-03 Werner Lemberg <wl@gnu.org>
2709
Werner Lemberg3d507fe2007-06-03 16:54:55 +00002710 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
2711 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
2712 face == NULL. Suggested by Graham Asher.
2713
Werner Lembergce280a22007-06-03 05:58:30 +000027142007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
2715
2716 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
2717
Werner Lemberg5b591e42007-06-01 22:16:43 +000027182007-06-02 Werner Lemberg <wl@gnu.org>
2719
2720 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
2721 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
2722
2723 * src/bdf/bdflib.c (bdf_load_font): Use them.
2724
2725 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
2726
Werner Lembergb9933f42007-06-01 21:27:12 +000027272007-06-01 Werner Lemberg <wl@gnu.org>
2728
2729 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
2730 (FTC_CMapCache_Lookup): Remove unused code.
2731
Werner Lembergc793d902007-06-01 20:51:11 +000027322007-06-01 Sean McBride <sean@rogue-research.com>
2733
2734 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
2735 unused.
2736
Werner Lembergbebc7b12007-06-01 06:32:30 +000027372007-06-01 Werner Lemberg <wl@gnu.org>
2738
2739 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
2740 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +00002741 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +00002742
Werner Lembergcb37b3b2007-06-01 06:49:03 +00002743 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
2744 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
2745
Werner Lembergba03af62007-05-30 13:57:02 +000027462007-05-30 Werner Lemberg <wl@gnu.org>
2747
2748 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
2749 against too small binary data strings.
2750
2751 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
2752
David Turnerf0cd69c2007-05-28 15:42:09 +000027532007-05-28 David Turner <david@freetype.org>
2754
Werner Lemberg99e0c182007-05-29 07:00:23 +00002755 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
2756 transformation. This significantly reduces the loading time of CFF
2757 glyphs.
David Turner552a9562007-05-28 15:45:35 +00002758
Werner Lemberg99e0c182007-05-29 07:00:23 +00002759 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +00002760
Werner Lemberg99e0c182007-05-29 07:00:23 +00002761 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
2762 hinting script to CJK, since it works well with more scripts than
2763 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
2764 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +00002765
Werner Lemberg1c8980e2007-05-25 07:11:12 +000027662007-05-25 Werner Lemberg <wl@gnu.org>
2767
2768 * docs/CHANGES: Updated.
2769
Werner Lemberg6ff2ff52007-05-24 19:39:14 +000027702007-05-24 Werner Lemberg <wl@gnu.org>
2771
2772 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
2773 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
2774
27752007-05-24 Graham Asher <graham.asher@btinternet.com>
2776
2777 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
2778 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
2779
David Turner0d0365e2007-05-22 09:53:44 +000027802007-05-22 David Turner <david@freetype.org>
2781
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002782 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
2783 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +00002784
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002785
2786 Avoid heap blowup with very large .Z font files. This fixes
2787 Savannah bug #19910.
2788
2789 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
2790 `in_limit', `pad', `pad_bits', and `in_buff' members.
2791 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
2792 `buf_total' members.
2793
2794 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
2795 only one argument.
2796 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +00002797
27982007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +00002799
2800 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
2801 (ps_dimension_set_mask_bits): Remove `const'.
2802
David Turner0d0365e2007-05-22 09:53:44 +000028032007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +00002804
2805 * src/sfnt/ttmtx.c (tt_face_get_metrics)
2806 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
2807
Werner Lembergb826fa72007-05-19 07:18:48 +000028082007-05-19 Derek Clegg <dclegg@apple.com>
2809
2810 Savannah patch #5929.
2811
2812 * include/freetype/tttables.h, src/base/ftobjcs.c
2813 (FT_Get_CMap_Format): New function.
2814
2815 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
2816 `format' member.
2817 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
2818 cmap_info->format.
2819
Werner Lemberg6f99c882007-05-19 07:01:49 +000028202007-05-19 Werner Lemberg <wl@gnu.org>
2821
2822 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
2823 before handling subglyphs so that it can be reinitialized each time.
2824 This fixes Savannah bug #19859.
2825
Werner Lemberg95bc9d32007-05-16 15:19:42 +000028262007-05-16 Werner Lemberg <wl@gnu.org>
2827
2828 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
2829 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
2830 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
2831 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
2832 tt_face_get_metrics): Fix type-punning issues.
2833
David Turner0a24bd22007-05-15 10:54:10 +000028342007-05-15 David Turner <david@freetype.org>
2835
2836 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00002837 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
2838 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +00002839 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +00002840 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +00002841
Werner Lemberg607dec72007-05-15 06:49:37 +000028422007-05-15 Graham Asher <graham.asher@btinternet.com>
2843
2844 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
2845 variable.
2846 * src/autofit/afloader.c (af_loader_load_g): Ditto.
2847
2848 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
2849 (open_face_from_buffer): Initialize `stream'.
2850 (FT_Request_Metrics): Remove unused variable.
2851 Remove redundant `break' statements.
2852 (FT_Get_Track_Kerning): Remove unused variable.
2853
2854 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
2855 afm_parse_kern_data): Remove redundant
2856 `break' statements.
2857 (afm_parser_parse): Ditto.
2858 Don't use uninitialized variables.
2859
2860 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
2861 Use `|' operator instead of `^' to set it.
2862 Update all users.
2863
2864 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
2865 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
2866
2867 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
2868 comparison.
2869 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
2870 (TT_Load_Glyph): Remove unused variable.
2871
Werner Lemberg8d463a52007-05-13 16:01:55 +000028722007-05-13 Derek Clegg <dclegg@apple.com>
2873
2874 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
2875 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
2876
David Turner711cf842007-05-11 14:36:24 +000028772007-05-11 David Turner <david@freetype.org>
2878
Werner Lemberg56ceaa42007-05-14 18:53:58 +00002879 * src/cache/ftbasic.c, include/freetype/ftcache.h
2880 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
2881 functions that allow us to look up glyphs using an FTC_Scaler object
2882 to specify the size, making it possible to use fractional pixel
2883 sizes.
2884
2885 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
2886 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +00002887
Werner Lemberg94be20e2007-05-09 20:02:55 +000028882007-05-09 Graham Asher <graham.asher@btinternet.com>
2889
2890 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
2891 (af_latin_metrics_scale_dim): Fix compiler warnings.
2892
Werner Lemberg41271032007-05-06 04:51:48 +000028932007-05-06 Werner Lemberg <wl@gnu.org>
2894
2895 * builds/win32/visualce/freetype.sln: Removed, as requested by
2896 Vincent.
2897
Werner Lembergdf49e692007-05-04 06:30:05 +000028982007-05-04 Vincent RICHOMME <richom.v@free.fr>
2899
2900 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
2901 PC targets.
2902
2903 * docs/CHANGES: Document them.
2904
29052007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +00002906
2907 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
2908 mmap (which might happen on some RTOS). From Savannah patch #5909.
2909
Werner Lemberg106eaf12007-05-03 07:07:47 +000029102007-05-03 Werner Lemberg <wl@gnu.org>
2911
2912 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
2913 * include/freetype/freetype.h (FT_Set_Char_Size): Update
2914 documentation.
2915
Werner Lemberg1b5267d2007-04-28 21:06:15 +000029162007-04-28 Victor Stinner <victor.stinner@inl.fr>
2917
2918 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
2919 `cmap'.
2920
Werner Lembergcc712a22007-04-27 17:16:50 +000029212007-04-27 Werner Lemberg <wl@gnu.org>
2922
2923 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
2924 number of points in contours. Problem reported by Victor Stinner
2925 <victor.stinner@haypocalc.com>.
2926 (TT_Process_Simple_Glyph): Synchronize variable types.
2927
Werner Lemberg45bb18f2007-04-26 06:26:35 +000029282007-04-26 Werner Lemberg <wl@gnu.org>
2929
2930 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
2931 zero in case of error. This fixes Savannah bug #19689.
2932
Werner Lembergb2116512008-09-12 16:27:48 +000029332007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
David Turnera8b45e62007-05-11 14:10:30 +00002934
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002935 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
2936 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +00002937
Werner Lembergfcc1f472007-04-10 11:51:50 +000029382007-04-10 Martin Horak <horakm@centrum.cz>
2939
2940 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
2941 Ignore `hhea' table. This fixes Savannah bug #19261.
2942
Werner Lemberg14bf82e2007-04-10 04:09:49 +000029432007-04-09 Werner Lemberg <wl@gnu.org>
2944
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002945
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002946 * Version 2.3.4 released.
2947 =========================
2948
2949
2950 Tag sources with `VER-2-3-4'.
2951
2952 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2953 version number to 2.3.4.
2954
2955 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2956 builds/win32/visualc/freetype.dsp,
2957 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
2958
2959 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
2960
2961 * builds/unix/configure.raw (version_info): Set to 9:15:3.
2962
Werner Lembergf4a52a62007-04-09 08:40:11 +000029632007-04-09 Martin Horak <horakm@centrum.cz>
2964
2965 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
2966 memory stream to avoid a crash with the incremental memory
2967 interface (Savannah bug #19260).
2968
David Turner1dcb4442007-04-06 08:19:04 +000029692007-04-06 David Turner <david@freetype.org>
2970
Werner Lembergc81cf612007-04-06 09:28:23 +00002971 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
2972 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +00002973
Werner Lemberg9f83e052007-04-05 02:28:23 +000029742007-04-04 Werner Lemberg <wl@gnu.org>
2975
Werner Lemberg3b0e5002007-07-03 04:48:19 +00002976
Werner Lemberg9f83e052007-04-05 02:28:23 +00002977 * Version 2.3.3 released.
2978 =========================
2979
2980
2981 Tag sources with `VER-2-3-3'.
2982
2983 * docs/CHANGES: Mention CVE-2007-1351.
2984
David Turner7338ec22007-04-03 14:30:34 +000029852007-04-03 David Turner <david@freetype.org>
2986
2987 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +00002988 if one of the resolution values is 0, treat it as if it were the
2989 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +00002990
David Turnere6472c12007-04-02 13:13:54 +000029912007-04-02 David Turner <david@freetype.org>
2992
Werner Lemberg94f12272007-04-03 07:19:53 +00002993 Add special code to detect `extra-light' fonts and do not snap their
2994 stem widths too much to avoid bizarre hinting effects.
2995
2996 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
2997 `extra_light' members.
2998
2999 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
3000 them.
3001 (af_latin_metrics_scale_dim): Set `extra_light'.
3002 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +00003003
David Turner3f539692007-03-28 14:53:40 +000030042007-03-28 David Turner <david@freetype.org>
3005
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003006 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +00003007 padding.
3008
Werner Lemberga08b2172007-03-28 07:17:17 +000030092007-03-28 Werner Lemberg <wl@gnu.org>
3010
3011 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
3012 gracefully.
3013 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +00003014 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +00003015 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
3016 number of code points in Unicode.
3017
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003018 * builds/win32/visualc/index.html,
3019 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003020 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003021 s/232/233/.
3022
3023 * docs/CHANGES: Mention ftdiff.
3024
David Turner3b242d32007-03-26 12:03:04 +000030252007-03-26 David Turner <david@freetype.org>
3026
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003027 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
3028 corresponding code.
3029 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +00003030
Werner Lemberga08b2172007-03-28 07:17:17 +00003031 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003032 computations in order to ignore single-point contours. These are
3033 never rasterized and correspond in certain fonts to mark-attach
3034 points that are very far from the glyph's real outline, ruining the
3035 computation.
David Turnerf58caa02007-03-26 12:39:25 +00003036
Werner Lemberga08b2172007-03-28 07:17:17 +00003037 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +00003038 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +00003039 Otherwise code that uses them will most certainly ruin the fixed
3040 advance property.
David Turner23553d62007-03-26 13:37:17 +00003041
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003042 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
3043 documentation and bump version number to 2.3.3.
3044
3045 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
3046
3047 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +00003048
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +000030492007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3050
Werner Lemberg644b1ad2007-03-28 21:17:11 +00003051 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
3052 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003053 * builds/vms/ftconfig.h: Ditto.
3054 * include/freetype/config/ftconfig.h: Ditto.
3055
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000030562007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3057
Werner Lemberg14ffe092007-03-22 06:12:43 +00003058 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
3059 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +00003060 proposed by Sean McBride:
3061 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
3062
30632007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3064
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00003065 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
3066 setjmp, proposed by Sean McBride:
3067 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
3068
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000030692007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3070
Werner Lembergc9f6c662007-03-21 13:30:14 +00003071 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
3072 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
3073 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003074
David Turner74c34eb2007-03-18 07:19:31 +000030752007-03-18 David Turner <david@freetype.org>
3076
Werner Lembergc9f6c662007-03-21 13:30:14 +00003077 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
3078 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +00003079
Werner Lembergc9f6c662007-03-21 13:30:14 +00003080 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +00003081
David Turner89020d92007-03-17 17:48:57 +000030822007-03-17 David Turner <david@freetype.org>
3083
Werner Lembergc9f6c662007-03-21 13:30:14 +00003084 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
3085 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +00003086
Werner Lemberg25d592a2007-03-09 07:59:35 +000030872007-03-09 Werner Lemberg <wl@gnu.org>
3088
Werner Lemberg3b0e5002007-07-03 04:48:19 +00003089
Werner Lemberg25d592a2007-03-09 07:59:35 +00003090 * Version 2.3.2 released.
3091 =========================
3092
3093
3094 Tag sources with `VER-2-3-2'.
3095
3096 * builds/win32/visualc/index.html,
3097 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003098 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +00003099 s/231/232/.
3100
David Turner3a51afa2007-03-08 10:50:38 +000031012007-03-08 David Turner <david@freetype.org>
3102
Werner Lemberg25d592a2007-03-09 07:59:35 +00003103 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +00003104
Werner Lemberg25d592a2007-03-09 07:59:35 +00003105 * builds/unix/configure.raw (version_info): Set to 9:13:3.
3106
3107 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
3108
3109 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +00003110
Werner Lemberg1e259de2007-03-08 15:39:21 +00003111 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
3112 function to work properly, over-writing user-provided buffers in
3113 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +00003114
David Turner121cad52007-03-08 16:43:50 +00003115
Werner Lemberg3d92f082007-03-06 11:59:24 +000031162007-03-05 Werner Lemberg <wl@gnu.org>
3117
3118 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
3119 macro for `strstr'.
3120
3121 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
3122 `trick_names', as suggested by Ivan Nincic.
3123
David Turner085bc6e2007-03-05 17:40:03 +000031242007-03-05 David Turner <david@freetype.org>
3125
Werner Lembergd112cf02007-03-06 12:06:56 +00003126 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
3127 case FT_Init_FreeType fails for some reason. Problem reported by
3128 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +00003129
Werner Lembergd112cf02007-03-06 12:06:56 +00003130 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
3131 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
3132 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
3133 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +00003134
Werner Lembergd112cf02007-03-06 12:06:56 +00003135 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
3136 signed values, not unsigned ones. Problem reported by Johannes
3137 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +00003138
David Turner601aefe2007-02-21 16:47:49 +000031392007-02-21 David Turner <david@freetype.org>
3140
Werner Lembergde5e6862007-02-25 21:06:43 +00003141 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
3142 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +00003143
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +000031442007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3145
3146 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
3147 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
3148 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
3149
Werner Lemberga0915172007-02-16 08:12:50 +000031502007-02-16 Werner Lemberg <wl@gnu.org>
3151
3152 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
3153 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
3154
David Turner2c4500e2007-02-14 15:08:47 +000031552007-02-14 David Turner <david@freetype.org>
3156
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00003157 It seems that the following changes fix most of the known
3158 interpreter problems with my fonts, but more testing is needed,
3159 though.
3160
3161 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
3162 (TT_MulFix14): Rewrite.
3163 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
3164 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +00003165
Werner Lembergc6a14082007-02-12 22:08:15 +000031662007-02-12 Werner Lemberg <wl@gnu.org>
3167
3168 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
3169 warnings.
3170
3171 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
3172 (bdf_interpret_style): Ditto.
3173
David Turnerc0f9c4a2007-02-12 14:55:03 +000031742007-02-12 David Turner <david@freetype.org>
3175
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00003176 Simplify projection and dual-projection code interface.
3177
Werner Lemberg406d25f2007-02-12 22:01:18 +00003178 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
3179 FT_Vector' as argument type.
3180 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
3181 Updated.
3182 (CUR_fast_project, CUR_fast_dualproj): New macros.
3183 (Project, Dual_Project, Project_x, Project_y): Updated.
3184 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
3185 macros.
3186
3187
3188 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
3189 adjustments for the non-light auto-hinted modes. Gets rid of
3190 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +00003191
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00003192 * src/autofit/aflatin.c (af_latin_hints_link_segments,
3193 af_latin_hints_compute_edges): Slight optimization of the segment
3194 linker and better handling of serif segments to get rid of broken
3195 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +00003196
David Turnerc0f9c4a2007-02-12 14:55:03 +00003197
Werner Lemberg442bfb82007-02-12 21:44:10 +00003198 Introduce new string functions and the corresponding macros to get
3199 rid of various uses of strcpy and other `evil' functions, as well as
3200 to simplify a few things.
3201
3202 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
3203 ft_mem_strcpyn): New declarations.
3204 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
3205 macros.
3206 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
3207 functions.
3208
3209 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
3210 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
3211 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
3212 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
3213 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
3214 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
3215 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
3216 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +00003217
Werner Lemberg406d25f2007-02-12 22:01:18 +00003218 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
3219
Werner Lemberg582067d2007-02-11 15:03:05 +000032202007-02-11 Werner Lemberg <wl@gnu.org>
3221
3222 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
3223 non-spacing glyphs.
3224
Werner Lemberg8f474532007-02-07 08:31:01 +000032252007-02-07 Tom Parker <palfrey@tevp.net>
3226
3227 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
3228 pointer.
3229
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000032302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3231
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00003232 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
3233 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +00003234 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00003235 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
3236 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
3237 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
3238 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +00003239
3240 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
3241 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +00003242 * builds/mac/ftmac.c: Ditto.
3243
32442007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3245
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00003246 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +00003247 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +00003248 #include <ftmac.c>.
3249
32502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3251
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +00003252 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
3253 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
3254 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
3255 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
3256 FT_GetFilePath_From_Mac_ATS_Name.
3257 * builds/mac/ftmac.c: Ditto.
3258
32592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3260
Werner Lembergdcbb7082007-02-08 08:54:09 +00003261 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +00003262 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
3263 for passing to FT_New_Face_From_FSSpec.
3264
32652007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3266
Werner Lembergdcbb7082007-02-08 08:54:09 +00003267 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003268 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +00003269
3270 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
3271 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00003272 * builds/mac/ftmac.c (OS_INLINE): Ditto.
3273
Werner Lemberg313d7772007-02-01 08:10:45 +000032742007-02-01 Werner Lemberg <wl@gnu.org>
3275
3276 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
3277 Explain why applications shouldn't use it. Found by Alexei.
3278
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000032792007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00003280
3281 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
3282 message.
3283
3284 * src/gxvalid/gxvmort1.c
3285 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
3286 message.
3287
Werner Lemberg53935932007-01-31 08:53:02 +000032882007-01-31 Werner Lemberg <wl@gnu.org>
3289
3290
3291 * Version 2.3.1 released.
3292 =========================
3293
3294
3295 Tag sources with `VER-2-3-1-FINAL'.
3296
3297 * builds/win32/visualc/freetype.dsp,
3298 builds/win32/visualc/freetype.vcproj: s/230/231/.
3299 * builds/win32/visualc/index.html: s/221/231/.
3300
3301 * vms_make.com: Add `ftgasp'.
3302
David Turnera7ee6082007-01-30 10:33:53 +000033032007-01-30 David Turner <david@freetype.org>
3304
Werner Lemberg53935932007-01-31 08:53:02 +00003305 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +00003306
Werner Lemberg53935932007-01-31 08:53:02 +00003307 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +00003308
Werner Lemberg25d592a2007-03-09 07:59:35 +00003309 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +00003310 s/2.3.0/2.3.1/.
3311
3312 * builds/unix/configure.raw (version_info): Set to 9:12:3.
3313
3314
3315 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
3316 (af_loader_load_g): Disable the warper (i.e., the light hinting
3317 improvements) to make a 2.3.1 bugfix release before introducing a
3318 new feature. This should give us more time to tune and improve the
3319 warper for the next release.
3320
3321 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +00003322
David Turnerd91eebd2007-01-26 15:05:41 +000033232007-01-25 David Turner <david@freetype.org>
3324
Werner Lembergbf241762007-01-26 16:08:49 +00003325 For light auto-hinting, improve glyph advance widths and resurrect
3326 normal/full hinting to its normal quality.
3327
3328 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
3329 and `xmax_delta'.
3330 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
3331 and `xmax_delta'.
3332
3333 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
3334 preprocessor conditional with if-clause, handling both light and
3335 normal mode.
3336
3337 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
3338 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00003339
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000033402007-01-25 Werner Lemberg <wl@gnu.org>
3341
3342 * docs/release: Updated -- Savannah uses a new uploading scheme.
3343
David Turnera42567b2007-01-25 12:23:37 +000033442007-01-25 David Turner <david@freetype.org>
3345
Werner Lembergd7855662007-01-25 13:53:56 +00003346 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00003347
Werner Lembergd7855662007-01-25 13:53:56 +00003348 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
3349 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
3350 functions.
David Turnera42567b2007-01-25 12:23:37 +00003351
Werner Lembergd7855662007-01-25 13:53:56 +00003352 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00003353
Werner Lembergb1be9e82007-01-25 11:50:00 +000033542007-01-25 Werner Lemberg <wl@gnu.org>
3355
3356 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00003357 correctly in a sanity check. Since this function is only used to
3358 load local and global functions, any charstring that called the last
3359 local/global function would fail otherwise. This fixes Savannah bug
3360 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00003361
3362 * docs/CHANGES: Document it.
3363
David Turnerb6de8d12007-01-23 15:51:50 +000033642007-01-23 David Turner <david@freetype.org>
3365
Werner Lembergb1be9e82007-01-25 11:50:00 +00003366 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
3367 prevented compilation when disabling both the unpatented and the
3368 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00003369
Werner Lembergb1be9e82007-01-25 11:50:00 +00003370
3371 Fix and enable the warper to improve `light' hinting mode. This is
3372 not necessarily a final version, but it seems to work well.
3373
3374 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
3375 Disable code.
3376 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
3377 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
3378
3379 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
3380 (af_warper_compute_line_best): Fix array size of `scores'.
3381 (af_warper_compute): Better handling of border cases.
3382 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
3383 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00003384
Werner Lemberg011d1112007-01-21 09:36:00 +000033852007-01-21 Werner Lemberg <wl@gnu.org>
3386
Werner Lemberg42b63b22007-01-21 21:01:33 +00003387 * ChangeLog: Split off older entries into...
3388 * ChangeLog.22: This new file.
3389
33902007-01-21 Werner Lemberg <wl@gnu.org>
3391
Werner Lemberg555258f2007-01-21 09:46:37 +00003392 * docs/CHANGES: Document SHZ fix.
3393
33942007-01-21 George Williams <gww@silcom.com>
3395
3396 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
3397 points.
3398
33992007-01-21 Werner Lemberg <wl@gnu.org>
3400
Werner Lemberg011d1112007-01-21 09:36:00 +00003401 * src/sfnt/ttmtx.c (tt_face_get_metrics)
3402 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
3403
Werner Lemberg87a5a432007-01-17 12:44:39 +000034042007-01-17 Werner Lemberg <wl@gnu.org>
3405
Werner Lembergb8003292007-01-17 12:56:25 +00003406
3407 * Version 2.3.0 released.
3408 =========================
3409
3410
3411 Tag sources with `VER-2-3-0-FINAL'.
3412
34132007-01-17 Werner Lemberg <wl@gnu.org>
3414
Werner Lemberg87a5a432007-01-17 12:44:39 +00003415 * docs/release: Updated.
3416
David Turner22122722007-01-16 20:06:44 +000034172007-01-16 David Turner <david@freetype.org>
3418
Werner Lemberg87a5a432007-01-17 12:44:39 +00003419 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
3420 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
3421 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
3422 warnings.
David Turner22122722007-01-16 20:06:44 +00003423
Werner Lemberg267e1d72007-01-15 07:48:09 +000034242007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
3425
3426 * builds/amiga/makefile, builds/amiga/makefile.os4,
3427 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
3428
3429 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
3430
Werner Lemberg8c4120d2007-01-15 06:42:40 +000034312007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
3432
3433 Fix various compiler warnings.
3434
3435 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
3436 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
3437 s/index/strike_index/.
3438 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
3439
3440 * src/gxvalid/gxvmorx5.c
3441 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
3442
3443 * src/truetype/ttinterp.c (Compute_Point_Displacement),
3444 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
3445 uninitialized variables.
3446
Werner Lemberg6164a9d2007-01-13 23:01:36 +000034472007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3448
3449 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
3450
Werner Lemberg281c1482007-01-13 22:50:51 +000034512007-01-13 Werner Lemberg <wl@gnu.org>
3452
3453 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
3454 versions up to 0x3FF without complaining.
3455
Werner Lembergac250b22007-01-13 14:01:36 +000034562007-01-13 Derek Clegg <dclegg@apple.com>
3457
3458 Add FT_Get_PS_Font_Info interface to CFF driver.
3459
3460 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
3461 (CFF_FontRec): Add `font_info' field.
3462
3463 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
3464 (cff_font_done): Free font->font_info if necessary.
3465
3466 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
3467 (cff_service_ps_info): Register cff_ps_get_font_info.
3468
Werner Lemberg23df31a2007-01-13 08:45:00 +000034692007-01-13 Werner Lemberg <wl@gnu.org>
3470
3471 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
3472 with C++ compiler.
3473
3474 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
3475 af_glyph_hints_dump_edges): Ditto.
3476
3477 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
3478 `modules.cfg').
3479
3480 * src/sfnt/ttsbit0.h: Remove.
3481
3482 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
3483
Werner Lemberg27cf9de2007-01-13 07:34:23 +000034842007-01-12 David Turner <david@freetype.org>
3485
3486 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
3487 bug in the bitmap emboldener if the pitch of the source bitmap is
3488 much larger than its width.
3489
3490 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
3491 compilation warning.
3492
Werner Lemberg6d96d312007-01-12 10:30:19 +000034932007-01-12 Werner Lemberg <wl@gnu.org>
3494
3495 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
3496 `automake' CVS module from sources.redhat.com.
3497
Werner Lemberg17432b52007-01-12 09:28:44 +000034982007-01-11 Werner Lemberg <wl@gnu.org>
3499
3500 * src/type1/t1load.c (is_space): Removed.
3501 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
3502 (parse_charstrings): Use IS_PS_TOKEN.
3503
3504
3505 * autogen.sh: Avoid bash specific syntax.
3506
David Turner038ace22007-01-11 15:00:59 +000035072007-01-11 David Turner <david@freetype.org>
3508
Werner Lemberg17432b52007-01-12 09:28:44 +00003509 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00003510
Werner Lemberg17432b52007-01-12 09:28:44 +00003511 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00003512
Werner Lemberg17432b52007-01-12 09:28:44 +00003513 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
3514 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00003515 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00003516
Werner Lemberg17432b52007-01-12 09:28:44 +00003517 * autogen.sh: Small fix to get it working on Mac OS X properly:
3518 The issue is that GNU libtool is called `glibtool' on this platform,
3519 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00003520
David Turner2628ea92007-01-10 13:15:56 +000035212007-01-10 David Turner <david@freetype.org>
3522
Werner Lemberg17432b52007-01-12 09:28:44 +00003523 * all-sources: Tag all sources with VER-2-3-0-RC1 and
3524 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00003525
Werner Lemberg17432b52007-01-12 09:28:44 +00003526 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
3527 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
3528 version number to 2.3.0.
3529
3530 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
3531 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00003532
3533 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00003534 include/freetype/ftlcdfil.h: Update reference documentation with
3535 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00003536
Werner Lemberg17432b52007-01-12 09:28:44 +00003537 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
3538 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00003539
Werner Lembergbf02d392007-01-10 07:07:37 +000035402007-01-10 Derek Clegg <dclegg@apple.com>
3541
3542 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
3543 values.
3544
David Turnerf48b60e2007-01-08 15:15:32 +000035452007-01-08 David Turner <david@freetype.org>
3546
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003547 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00003548
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003549 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
3550 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00003551 corresponding to a given character pixel size.
3552
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003553 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
3554 `gasp' table, in order to avoid potential problems with later
3555 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00003556
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003557 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
3558 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00003559
Werner Lembergcc7f12a2007-01-09 10:37:36 +00003560 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
3561 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
3562 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
3563 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00003564
Werner Lemberge6b6f372007-01-07 00:06:47 +000035652007-01-07 Werner Lemberg <wl@gnu.org>
3566
Werner Lembergb8004d22007-01-07 09:13:38 +00003567 * src/cid/cidparse.c (cid_parser_new): Improve error message for
3568 Type 11 fonts.
3569 Scan for `/sfnts' token.
3570
35712007-01-07 Werner Lemberg <wl@gnu.org>
3572
3573 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00003574
Werner Lembergbe5f7972007-01-06 07:51:48 +000035752007-01-06 Werner Lemberg <wl@gnu.org>
3576
3577 * src/cff/cffload.c (cff_index_init): Remove unused variable.
3578 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
3579
David Turnera8cf42b2007-01-04 16:46:46 +000035802007-01-04 David Turner <david@freetype.org>
3581
Werner Lembergf6294392007-01-06 07:47:45 +00003582 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
3583 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00003584
Werner Lembergf6294392007-01-06 07:47:45 +00003585
3586 Do not allocate interpreter-specific tables in memory if we are not
3587 going to load glyphs with the bytecode interpreter anyway.
3588
3589 * src/truetype/ttgload.c (tt_loader_init): Load execution context
3590 only if glyph is hinted.
3591 Updated.
3592 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
3593 and `cvs_ready'.
3594 Add `tt_size_ready_bytecode' declaration.
3595 * src/truetype/ttobjs.c (tt_size_done_bytecode,
3596 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
3597 (tt_size_init): Move most code into `tt_size_init_bytecode'.
3598 (tt_size_done): Move most code into `tt_size_done_bytecode'.
3599 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00003600
David Turner91a34022007-01-05 14:47:08 +00003601
Werner Lembergf6294392007-01-06 07:47:45 +00003602 Don't extract the metrics table from the SFNT font file. Instead,
3603 reparse it on each glyph load. The runtime difference is not
3604 noticeable, and it can save a lot of heap memory when memory-mapped
3605 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00003606
Werner Lembergf6294392007-01-06 07:47:45 +00003607 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
3608 `horz_metrics_offset' and `vert_metrics_ofset'.
3609 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
3610 Updated.
3611
3612
3613 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
3614
3615
3616 Do not load the CFF index offsets into memory, since this wastes a
3617 *lot* of heap memory with large Asian CFF fonts. There is no
3618 significant performance loss.
3619
3620 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
3621 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
3622 `data_size'.
3623 (CFF_CharsetRec): Add field `num_glyphs'.
3624
3625 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
3626 cff_charset_cid_to_gindex): New functions.
3627 (cff_new_index): Renamed to...
3628 (cff_index_init): This. Update all callers.
3629 Updated -- some code has been moved to `cff_index_load_offsets'.
3630 (cff_done_index): Renamed to...
3631 (cff_index_done): This. Update all callers.
3632 (cff_index_get_pointers, cff_index_access_element): Updated to use
3633 stream offsets.
3634 (cff_charset_compute_cids): Set `num_glyphs' field.
3635 (cff_encoding_load): Updated.
3636
3637 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00003638
36392007-01-04 David Turner <david@freetype.org>
3640
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003641 * docs/INSTALL.UNIX: Simplify some parts, add reference to
3642 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00003643
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003644 * README.CVS: Add common problem description and solution
3645 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00003646
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003647 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00003648
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003649 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00003650
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003651 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00003652
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003653 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
3654 (TWorker): This.
3655 Remove `count_table' and `memory'.
3656 Make `grays' a pointer.
3657 (TRaster): New structure.
3658 (count_table): New static array.
3659 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
3660 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
3661 ft_black_set_mode, ft_black_render): Updated.
3662 (ft_black_init): Don't initialize `count_table'.
3663 (ft_black_reset): Use the render pool. This saves about 6KB of
3664 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00003665
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003666 * src/smooth/ftgrays.c (TRaster): Replaced with...
3667 (TWorker): This.
3668 Remove `memory'.
3669 (TRaster): New structure.
3670
3671 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
3672 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
3673 gray_render_span, gray_raster_render): Updated.
3674 (gray_raster_reset): Use the render pool. This saves about 6KB of
3675 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00003676
David Turner8a6c44e2007-01-04 17:03:11 +00003677 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
3678 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003679 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
3680 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
3681 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00003682
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003683 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
3684 Remove a typo that results in no hinting and a memory leak with some
3685 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00003686
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003687 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00003688 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00003689 CFF_Faces in it. We need to close all faces before destroying the
3690 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00003691
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000036922007-01-02 Werner Lemberg <wl@gnu.org>
3693
3694 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
3695 Remove compiler warning.
3696
David Turner9207e002007-01-02 16:58:13 +000036972007-01-02 David Turner <david@freetype.org>
3698
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003699 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00003700
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000037012006-12-31 Masatake YAMATO <jet@gyve.org>
3702
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003703 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
3704 function.
3705 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00003706 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003707 `gxv_kern_subtable_fmt0_pairs_validate'.
3708
David Turner115b4422006-12-22 11:37:05 +000037092006-12-22 David Turner <david@freetype.org>
3710
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003711 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
3712 warnings.
David Turner115b4422006-12-22 11:37:05 +00003713
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003714 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
3715 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00003716
Werner Lemberg4755bf72006-12-16 08:58:44 +000037172006-12-16 Anders Kaseorg <anders@kaseorg.com>
3718
3719 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
3720 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
3721
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000037222006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3723
Werner Lemberg9b774e22007-01-16 06:11:27 +00003724 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00003725 sync with the modification by Jens Claudius on 2006-08-22; cf.
3726 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 +00003727
37282006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3729
3730 * src/base/ftmac.c: Specialized for Mac OS X only.
3731 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
Werner Lemberg830846e2008-07-27 06:27:21 +00003732 * builds/unix/configure.raw: Ditto. When explicit switches for
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +00003733 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
3734 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
3735
37362006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3737
3738 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
3739 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
3740 instead of src/base/ftmac.c
3741 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
3742 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
3743 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
3744 that cannot be built at present.
3745
37462006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3747
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00003748 * src/base/ftobjs.c: Improvement of resource fork handler for
3749 POSIX, cf.
3750 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003751 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
3752 format or .dfont, to simulate the face index number counted by ftmac.c.
3753 (IsMacResource): Return the number of scalable faces correctly.
3754
Werner Lembergec5b4502006-12-10 07:51:38 +000037552006-12-10 Werner Lemberg <wl@gnu.org>
3756
3757 * builds/toplevel.mk (version): Protect against `distclean' target.
3758
Werner Lembergb26b3142006-12-09 20:01:43 +000037592006-12-09 Werner Lemberg <wl@gnu.org>
3760
3761 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
3762 or `type'.
3763
3764 * builds/freetype.mk (version): Extracted from freetype.h, using
3765 GNU make's built-in string functions.
3766 (refdoc): Use $(version) instead of static version number.
3767
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000037682006-12-08 Werner Lemberg <wl@gnu.org>
3769
3770 * builds/toplevel.mk (dist): Extract version number from freetype.h.
3771
Werner Lemberg15c29502006-12-09 07:29:54 +000037722006-12-08 Vladimir Volovich <vvv@vsu.ru>
3773
3774 * src/tools/apinames (State): Remove final comma in structure -- xlc
3775 v5 under AIX 4.3 doesn't like this.
3776
David Turnerdbf3b432006-12-07 21:18:09 +000037772006-12-07 David Turner <david@freetype.org>
3778
Werner Lemberg256a3512006-12-08 06:49:33 +00003779 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
3780 to the spacing of auto-fitted glyphs. This only impacts rare
3781 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00003782
Werner Lemberg11171312006-12-03 09:43:40 +000037832006-12-03 Werner Lemberg <wl@gnu.org>
3784
3785 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
3786
Werner Lemberg960ba592006-12-01 08:20:47 +000037872006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00003788
Werner Lemberg960ba592006-12-01 08:20:47 +00003789 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
3790 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
3791 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00003792
David Turner80658e52006-11-28 08:09:20 +00003793
Werner Lemberg960ba592006-12-01 08:20:47 +00003794 * include/freetype/ftxf86.h: Fix and extend comment so that it
3795 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00003796
Werner Lemberg960ba592006-12-01 08:20:47 +00003797 * include/freetype/ftchapters.h: Add `font_format' section.
3798
3799
3800 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
3801 to TOC in index page.
3802
38032006-11-28 David Turner <david@freetype.org>
3804
3805 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
3806 trying to render into a zero-width/height bitmap, not an error code.
3807
3808 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
3809
3810 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
3811 ones instead.
3812
3813 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
3814 variable.
David Turner80658e52006-11-28 08:09:20 +00003815
Werner Lemberg8636c292006-11-26 22:28:13 +000038162006-11-26 Pierre Hanser <hanser@club-internet.fr>
3817
3818 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
3819
Werner Lemberg960ba592006-12-01 08:20:47 +000038202006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00003821
Werner Lemberg960ba592006-12-01 08:20:47 +00003822 * src/autofit/afhints.c (af_glyph_hints_dump_points,
3823 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
3824 Add stubs to link the `ftgrid' test program when debugging is
3825 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00003826
Werner Lemberg960ba592006-12-01 08:20:47 +000038272006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00003828
3829 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00003830 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
3831
3832 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
3833 Emit more sensible information.
3834
3835 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
3836
3837 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
3838 rounding of blue values.
3839 (af_latin_hints_compute_segments): Hint segment heights.
3840 (af_latin_hints_link_segments): Reduce `len_score' value.
3841 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
3842 value and use `height' member for comparisons.
3843 (af_latin_hint_edges): Extend logging message.
3844 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00003845
Werner Lemberg91959bf2006-11-22 10:36:55 +000038462006-11-22 Werner Lemberg <wl@gnu.org>
3847
3848 Fix Savannah bug #15553.
3849
3850 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
3851 program after a change from mono to grayscaling (and vice versa).
3852 Use correct constant for comparison to get `exec->grayscale'.
3853
Werner Lemberg913a3652006-11-19 09:19:17 +000038542006-11-18 Werner Lemberg <wl@gnu.org>
3855
3856 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00003857 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00003858 This patch fixes Savannah bug #18301.
3859
3860 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
3861 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
3862 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
3863 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
3864 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
3865 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
3866 (FNT_Load_Glyph): Check validity of `glyph_index'.
3867
David Turner7bab6ae2006-11-13 11:25:06 +000038682006-11-13 David Turner <david@freetype.org>
3869
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003870 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
3871 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00003872
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003873 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
3874 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
3875 when building the library to change the default LCD filter to be
3876 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00003877
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003878 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00003879
David Turner8765c712006-11-10 16:49:42 +000038802006-11-10 David Turner <david@freetype.org>
3881
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003882 * src/smooth/ftsmooth.c: API change for the LCD
3883 filter. The FT_LcdFilter value is an enumeration describing which
3884 filter to apply, with new values FT_LCD_FILTER_LIGHT and
3885 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
3886 algorithm which produces strong color fringes for everything
3887 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00003888
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00003889 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
3890 second parameter to an enum type.
3891
3892 * src/base/ftlcdfil.c (USE_LEGACY): Define.
3893 (_ft_lcd_filter): Rename to...
3894 (_ft_lcd_filter_fir): This.
3895 Update parameters.
3896 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
3897 (FT_Library_Set_LcdFilter): Update parameters.
3898 Handle new filter modes.
3899
3900 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
3901 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
3902 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
3903 callback and update other fields.
3904
3905 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
3906 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
3907 Other minor improvements.
3908
3909 * src/autofit/aflatin.c: Various tiny improvements that drastically
3910 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
3911 (af_latin_hints_compute_edges): Fix typo.
3912 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00003913
David Turner4e9cc3c2006-11-09 16:31:52 +000039142006-11-09 David Turner <david@freetype.org>
3915
Werner Lemberg49c77a82006-11-09 21:51:57 +00003916 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
3917 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00003918
Werner Lemberg5e430892006-11-07 09:35:03 +000039192006-11-07 Zhe Su <james.su@gmail.com>
3920
3921 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
3922 also.
3923
Werner Lemberg111b5ae2006-11-03 09:40:12 +000039242006-11-03 Werner Lemberg <wl@gnu.org>
3925
3926 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
3927
David Turner40604742006-11-02 16:37:35 +000039282006-11-02 David Turner <david@freetype.org>
3929
Werner Lemberg111b5ae2006-11-03 09:40:12 +00003930 Add a few tweaks to better handle serif fonts.
3931 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00003932
Werner Lemberg111b5ae2006-11-03 09:40:12 +00003933 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
3934 segments that are less than 1.5 pixels high. This gets rid of
3935 *many* corner cases with serifs.
3936 (af_latin_align_linked_edge): Add logging message.
3937 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
3938 Add logging messages.
3939 Handle AF_EDGE_FLAG flag specially.
3940
3941 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
3942 _af_debug_disable_blue_hints, and _af_debug_hints variables.
3943
3944 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
3945 Update external declarations.
3946 (af_corner_orientation, af_corner_is_flat): Replaced by...
3947
3948 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
3949 ft_corner_is_flat): These declarations.
3950
3951 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
3952 Comment out. Replaced by...
3953
3954 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
3955 These functions. Update all callers.
3956 (FT_Add64) [!FT_LONG64]: Simplify.
3957
3958 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
3959 (af_direction_compute): Add a missing FT_ABS call. This bug caused
3960 production of garbage by missing lots of segments.
3961
3962 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
3963
3964 * src/autofit/afloader.c (af_loader_init, af_loader_done)
3965 [AF_DEBUG]: Set _af_debug_hints.
3966
3967
3968 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
3969 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
3970 and ft_corner_orientation.
3971
3972
3973 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00003974
Werner Lemberge88c5262006-10-24 05:46:26 +000039752006-10-24 Werner Lemberg <wl@gnu.org>
3976
3977 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
3978
3979 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
3980 as argument.
3981
David Turnera1861392006-10-23 16:00:59 +000039822006-10-23 Zhe Su <zsu@novell.com>
3983
Werner Lemberg715e96e2006-10-24 05:28:45 +00003984 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
3985 better deal with broken Asian fonts with strange glyphs, having
3986 self-intersections and other peculiarities. The used algorithm is
3987 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00003988
David Turnere140f142006-10-23 08:56:57 +000039892006-10-23 David Turner <david@freetype.org>
3990
Werner Lemberg715e96e2006-10-24 05:28:45 +00003991 Speed up the CFF font loader. With some large CFF fonts,
3992 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00003993
Werner Lemberg715e96e2006-10-24 05:28:45 +00003994 * src/cff/cffload.c (cff_get_offset): Removed.
3995 (cff_new_index): Inline functionality of `cff_get_offset'.
3996 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
3997 (cff_charset_done): Call `cff_charset_free_cids'.
3998 (cff_charset_load): Call `cff_charset_compute_cids'.
3999 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
4000
4001 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
4002 with FT_NEXT_XXX.
4003
4004
4005 Speed up the Postscript hinter, with more than 100% speed increase
4006 on my machine.
4007
4008 * src/pshinter/pshalgo.c (psh_corner_is_flat,
4009 psh_corner_orientation): New functions.
4010 (psh_glyph_compute_inflections): Merge loops for efficiency.
4011 Use `psh_corner_orientation'.
4012 (psh_glyph_init): Use `psh_corner_is_flat'.
4013 (psh_hint_table_find_strong_point): Renamed to...
4014 (psh_hint_table_find_strong_points): This.
4015 Rewrite, adding argument to handle all points at once.
4016 Update all callers.
4017 (PSH_MAX_STRONG_INTERNAL): New macro.
4018 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00004019
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000040202006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4021
4022 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00004023 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00004024
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000040252006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4026
4027 * docs/INSTALL.CROSS: New document file for cross-building.
4028
4029 * builds/unix/configure.raw: Preliminary cross-building support.
4030 Find native C compiler and pass it by CC_BUILD, and
4031 find suffix for native executable and pass it by EXEEXT_BUILD.
4032 Also suffix for target executable is passed by EXEEXT.
4033
Werner Lembergb9e6d692006-10-15 08:58:40 +00004034 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
4035 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00004036 CC_BUILD and EXEEXT_BUILD.
4037
Werner Lembergb9e6d692006-10-15 08:58:40 +00004038 * builds/exports.mk (APINAMES_EXE): Change the extension for
4039 apinames from the suffix for target (E) to that for building host
4040 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00004041
Werner Lemberg82a07e92006-10-12 06:20:44 +000040422006-10-12 Werner Lemberg <wl@gnu.org>
4043
4044 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
4045 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
4046 which reference those files.
4047
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000040482006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4049
Werner Lembergb9e6d692006-10-15 08:58:40 +00004050 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
4051 embedded in freetype2.pc and freetype-config. Use it to record
4052 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00004053
4054 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
4055
4056 * builds/unix/freetype-config.in: Ditto.
4057
Werner Lemberg28e17d92006-10-11 17:27:47 +000040582006-10-11 Werner Lemberg <wl@gnu.org>
4059
4060 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
4061 development.
4062
Jens Claudius336d2292006-10-03 08:53:37 +000040632006-10-03 Jens Claudius <jens.claudius@yahoo.com>
4064
4065 * include/freetype/config/ftstdlib.h: Cast away volatileness from
4066 argument to ft_setjmp.
4067
4068 * include/freetype/internal/ftvalid.h: Add comment that
4069 ft_validator_run must not be used.
4070
Werner Lemberg2863cfa2006-10-01 17:04:00 +000040712006-10-01 Werner Lemberg <wl@gnu.org>
4072
4073 * src/base/ftbase.c: Undo change from 2006-09-30.
4074
4075 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
4076
40772006-09-30 David Turner <david@freetype.org>
4078
Werner Lemberg046bf8b2006-10-03 08:43:42 +00004079 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
4080 s/unpatented_hinting/ignore_unpatented_hinter/.
4081 Update all callers.
4082
4083 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
4084 auto-hinting shall be used or not.
4085
4086 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00004087
Werner Lemberg2863cfa2006-10-01 17:04:00 +000040882006-09-30 Werner Lemberg <wl@gnu.org>
4089
Werner Lemberg1e4402e2006-09-29 22:10:36 +00004090 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
4091 in use).
4092
4093 * src/base/ftbase.c: Include `ftlcdfil.c'.
4094
Werner Lemberg9b15ea32006-09-29 18:22:11 +000040952006-09-29 Werner Lemberg <wl@gnu.org>
4096
4097 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
4098 overlapping segments. Bug reported by Stefan Koch.
4099
David Turnerad830712006-09-27 16:20:59 +000041002006-09-28 David Turner <david@freetype.org>
4101
Werner Lemberg2c002e12006-09-29 21:31:53 +00004102 Fix a bug in the automatic unpatented hinting support which prevents
4103 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00004104
Werner Lemberg2c002e12006-09-29 21:31:53 +00004105 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
4106 s/force_autohint/unpatented_hinting/. Update all callers.
4107
4108 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
4109
4110 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00004111
David Turner8a317cf2006-09-27 07:52:48 +000041122006-09-27 David Turner <david@freetype.org>
4113
Werner Lemberg2c002e12006-09-29 21:31:53 +00004114 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00004115
David Turner8a317cf2006-09-27 07:52:48 +00004116
David Turnere140f142006-10-23 08:56:57 +00004117 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00004118 In a default build, the function `FT_Library_SetLcdFilter' returns
4119 `FT_Err_Unimplemented_Feature'; you need to #define
4120 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
4121 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00004122
Werner Lemberg2c002e12006-09-29 21:31:53 +00004123 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00004124
Werner Lemberg2c002e12006-09-29 21:31:53 +00004125 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
4126 typedef.
4127 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
4128 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00004129
Werner Lemberg2c002e12006-09-29 21:31:53 +00004130 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
4131 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00004132
Werner Lemberg2c002e12006-09-29 21:31:53 +00004133 Handle subpixel rendering.
4134 Simplify function.
4135 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
4136 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
4137
4138 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
4139 pointing to <freetype/ftlcdfil.h>.
4140
4141 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
4142 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
4143
4144 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00004145
Werner Lemberge20df4a2006-09-27 06:29:21 +000041462006-09-26 David Bustin
4147
4148 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
4149 correctly. Reported as Savannah bug #17843.
4150
David Turner6f8c6222006-09-26 15:42:44 +000041512006-09-26 David Turner <david@freetype.org>
4152
Werner Lemberg110246c2006-09-26 21:55:44 +00004153 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
4154 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
4155 horizontal and vertical hinting for the purpose of debugging the
4156 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00004157
Werner Lemberg110246c2006-09-26 21:55:44 +00004158 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
4159 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00004160
Werner Lemberg110246c2006-09-26 21:55:44 +00004161 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
4162
4163 * include/freetype/config/ftoption.h, devel/ftoption.h
4164 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
4165 we want to compile LCD-optimized rendering code (à la ClearType) or
4166 not. The macro *must* be disabled in default builds of the library
4167 for patent reasons.
4168
4169 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
4170 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
4171 isn't defined at compile time. This only changes the content of the
4172 rendered glyph to match the one of normal gray-level rendering,
4173 hence clients should not need to be modified.
4174
4175 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00004176
Werner Lemberg745ff2c2006-09-19 05:48:02 +000041772006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
4178
4179 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
4180 LWFN fails and both are available.
4181
David Turnerf3050052006-09-11 12:00:32 +000041822006-09-11 David Turner <david@freetype.org>
4183
Werner Lembergf9644552006-09-12 13:48:10 +00004184 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
4185 report their English names through an Apple Roman
4186 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00004187
Werner Lembergf9644552006-09-12 13:48:10 +00004188 If the font uses another name entry with language_id == English, it
4189 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00004190
Werner Lembergf9644552006-09-12 13:48:10 +00004191 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
4192 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00004193
Werner Lemberg36d2eab2006-09-05 19:24:34 +000041942006-09-05 Werner Lemberg <wl@gnu.org>
4195
4196 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00004197 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00004198 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
4199 `HAN NOM B.ttf').
4200
4201 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
4202
David Turner772e55d2006-09-05 09:45:15 +000042032006-09-05 David Turner <david@freetype.org>
4204
Werner Lemberg36d2eab2006-09-05 19:24:34 +00004205 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00004206
Werner Lemberg36d2eab2006-09-05 19:24:34 +00004207 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
4208 (TRaster): Remove `count_ex' and `count_ey'.
4209 (gray_find_cell): Remove 2nd and 3rd argument.
4210 (gray_alloc_cell): Merged with `gray_find_cell'.
4211 (gray_record_cell): Simplify.
4212 (gray_set_cell): Rewrite.
4213 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
4214 (gray_render_span): Don't use FT_MEM_SET for small values.
4215 (gray_dump_cells) [DEBUG_GRAYS]: New function.
4216 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
4217 bitmap scanline.
4218 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00004219
David Turneraa557a92006-09-04 16:42:44 +000042202006-09-04 David Turner <david@freetype.org>
4221
Werner Lembergd1fc7d42006-09-05 07:55:42 +00004222 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
4223 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00004224
Werner Lemberg2d8629b2006-09-03 06:18:45 +000042252006-09-03 Werner Lemberg <wl@gnu.org>
4226
4227 * devel/ftoption.h: Synchronize with
4228 include/freetype/config/ftoption.h.
4229
4230 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
4231 variable declaration.
4232 (gray_convert_glyph): Fix compiler warnings.
4233
David Turner6d79f212006-09-01 14:09:35 +000042342006-09-01 David Turner <david@freetype.org>
4235
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004236 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
4237 to recognize a few fonts that require the automatic unpatented
4238 loader.
David Turnerbd502952006-09-01 19:05:24 +00004239
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004240 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
4241 rasterizer. The speed improvement is between 15% and 25%, depending
4242 on the font data.
4243
4244 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
4245 (TCell): Redefine.
4246 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
4247 (gray_init_cells): Updated.
4248 (gray_find_cell, gray_alloc_cell): New functions.
4249 (gray_record_cell): Rewritten to use `gray_find_cell' and
4250 `gray_alloc_cell'.
4251 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
4252 QSORT_THRESHOLD):
4253 Removed.
4254 (gray_shell_sort, gray_quick_sort, gray_check_sort,
4255 gray_dump_cells): Removed.
4256 (gray_sweep): Rewritten.
4257 (gray_convert_glyph): Rewrite code which used one of the sorting
4258 functions.
4259 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00004260
Werner Lembergd898aed2006-08-29 09:50:34 +000042612006-08-29 Dr. Werner Fink <werner@suse.de>
4262
4263 * configure: Make it possible to handle configure options which
4264 have strings containing spaces.
4265
42662006-08-27 David Turner <david@freetype.org>
4267
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004268 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
4269 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
4270 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
4271
4272 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
4273 src/truetype/truetype.c, src/truetype/ttdriver.c,
4274 src/truetype/ttgload.c, src/truetype/ttgload.h,
4275 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
4276 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
4277 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
4278
4279 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
4280 member `force_autohint'.
4281
4282 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
4283
4284 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
4285 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00004286
Jens Claudiusa787f452006-08-27 11:26:18 +000042872006-08-27 Jens Claudius <jens.claudius@yahoo.com>
4288
4289 Fix miscellaneous compiler warnings.
4290
Werner Lemberg32e05a62008-05-04 16:53:22 +00004291 * include/freetype/internal/ftobjs.h: Close comment with `*/' to
4292 avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00004293
Werner Lemberg32e05a62008-05-04 16:53:22 +00004294 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004295 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
4296 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00004297
Werner Lemberg32e05a62008-05-04 16:53:22 +00004298 * src/base/ftobjs.c (t_validator_error): Cast away
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004299 volatileness of argument to ft_longjmp. Spotted by Werner
4300 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00004301
Werner Lemberg32e05a62008-05-04 16:53:22 +00004302 * src/bdf/bdflib.c (bdf_load_font): Initialize local
Werner Lemberg2d8629b2006-09-03 06:18:45 +00004303 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00004304
Werner Lemberg32e05a62008-05-04 16:53:22 +00004305 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
4306 `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00004307
Werner Lembergc4c35b72006-08-27 08:03:46 +000043082006-08-27 Werner Lemberg <wl@gnu.org>
4309
4310 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
4311 Reported by Jens.
4312
Jens Claudius088e44e2006-08-22 14:24:30 +000043132006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00004314
Jens Claudius088e44e2006-08-22 14:24:30 +00004315 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00004316 about addresses of volatile objects passed as function arguments as
4317 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00004318
Werner Lemberg32e05a62008-05-04 16:53:22 +00004319 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
4320 pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004321
Werner Lemberg32e05a62008-05-04 16:53:22 +00004322 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
4323 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004324
Werner Lemberg32e05a62008-05-04 16:53:22 +00004325 * src/otvalid/otvmod.c (otv_load_table): Make function argument
4326 `table' a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00004327
Jens Claudius2652bd52006-08-18 17:20:37 +000043282006-08-18 Jens Claudius <jens.claudius@yahoo.com>
4329
Werner Lemberg32e05a62008-05-04 16:53:22 +00004330 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
4331 as volatile since it must keep its value across a call to ft_setjmp.
Jens Claudius2652bd52006-08-18 17:20:37 +00004332 (gxv_validate): Same for local variables `memory' and `valid'.
4333 (classic_kern_validate): Same for local variables `memory',
4334 `ckern', and `valid'.
4335
Werner Lemberg32e05a62008-05-04 16:53:22 +00004336 * src/otvalid/otvmod.c (otv_validate): Same for function parameter
4337 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
4338 and 'valid'.
Jens Claudius2652bd52006-08-18 17:20:37 +00004339
Werner Lemberg32e05a62008-05-04 16:53:22 +00004340 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
4341 `cmap'.
Jens Claudius2652bd52006-08-18 17:20:37 +00004342
David Turner9fbfc6a2006-08-16 09:11:31 +000043432006-08-16 David Turner <david@freetype.org>
4344
Werner Lemberg12342992006-08-19 11:18:09 +00004345 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
4346 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00004347
Werner Lemberg12342992006-08-19 11:18:09 +00004348 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
4349 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00004350
David Turner33f5f242006-08-16 16:50:55 +00004351
Werner Lemberg830846e2008-07-27 06:27:21 +00004352 Improvements to native TrueType hinting. This is a first try,
Werner Lemberg12342992006-08-19 11:18:09 +00004353 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
4354
4355 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
4356 `extra_points2'.
4357
4358 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
4359 `orus'.
4360
4361 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
4362 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
4363 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
4364 handle `extra_points2'.
4365
4366 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
4367 Remove compiler warning.
4368 (cur_to_arg): Remove macro.
4369 (TT_Hint_Glyph): Updated.
4370 (TT_Process_Simple_Glyph): Handle `orus'.
4371
4372 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
4373 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
4374 (LOC_Ins_IUP): Renamed to...
4375 (IUP_WorkerRec): This.
4376 Add `orus' member.
4377 (Shift): Renamed to...
4378 (_iup_worker_shift): This.
4379 Updated.
4380 (Interp): Renamed to...
4381 (_iup_worker_interpolate): This.
4382 Updated to handle `orus'.
4383 (Ins_IUP): Updated.
4384
4385 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
4386 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00004387
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000043882006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4389
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00004390 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00004391 build ftvalid in ft2demos. This has been inadvertedly changed
4392 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00004393
43942006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4395
Werner Lemberg12342992006-08-19 11:18:09 +00004396 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
4397 Jens:
4398 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004399
David Turnercda6f492009-03-03 20:49:32 +00004400 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
Werner Lemberg32e05a62008-05-04 16:53:22 +00004401 It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004402
Werner Lemberg32e05a62008-05-04 16:53:22 +00004403 * src/gxvalid/gxvmod.c: Ditto.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00004404
Jens Claudius9950adc2006-08-13 12:14:36 +000044052006-08-13 Jens Claudius <jens.claudius@yahoo.com>
4406
Werner Lemberg32e05a62008-05-04 16:53:22 +00004407 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
Werner Lemberg12342992006-08-19 11:18:09 +00004408 T1_TOKEN_TYPE_KEY.
4409 (T1_FieldRec): Add `dict'.
4410 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
4411 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
4412 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00004413
Werner Lemberg32e05a62008-05-04 16:53:22 +00004414 * src/cid/cidload.c: (cid_field_records): Adjust invocations of
4415 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004416
Werner Lemberg32e05a62008-05-04 16:53:22 +00004417 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004418
David Turnercda6f492009-03-03 20:49:32 +00004419 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00004420 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
4421 not T1_TOKEN_TYPE_ANY.
4422 (ps_parser_load_field): Make sure a token that should be a string or
4423 name is really a string or name.
4424 Avoid memory leak if a keyword has been already encountered and its
4425 value is overwritten.
Werner Lemberg32e05a62008-05-04 16:53:22 +00004426 * src/type1/t1load.c: (t1_keywords): Adjust invocations of
Werner Lemberg12342992006-08-19 11:18:09 +00004427 T1_FIELD_XXX.
4428 (parse_dict): Ignore keywords that occur in the wrong dictionary
4429 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00004430
Werner Lemberg32e05a62008-05-04 16:53:22 +00004431 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004432
Werner Lemberg32e05a62008-05-04 16:53:22 +00004433 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
4434 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00004435
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000044362006-07-18 Jens Claudius <jens.claudius@yahoo.com>
4437
4438 Move creation of field `buildchar' of T1_DecoderRec out of
4439 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
4440 of it.
4441
4442 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
4443 and `T1_Compute_Max_Advance'.
4444
Werner Lemberg32e05a62008-05-04 16:53:22 +00004445 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
4446 `face', add `len_buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004447
Werner Lemberg32e05a62008-05-04 16:53:22 +00004448 * include/freetype/internal/t1types.h (T1_FaceRec): Add field
4449 `buildchar'.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004450
Werner Lemberg32e05a62008-05-04 16:53:22 +00004451 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
4452 for T1_Decoder.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004453 (cid_slot_load_glyph): Do not ignore failure when initializing the
4454 T1_Decoder.
4455
Werner Lemberg32e05a62008-05-04 16:53:22 +00004456 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004457 (t1_decoder_init): Remove initialization of fields `buildchar' and
4458 `len_buildchar'.
4459 (t1_decoder_done): Remove deallocation of field `buildchar'.
4460
4461 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
4462 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
4463 T1_Decoder.
4464 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
4465 `len_buildchar'; make sure to call finisher for T1_Decoder even in
4466 case of error.
4467
Werner Lemberg32e05a62008-05-04 16:53:22 +00004468 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
4469 of T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004470
Werner Lemberg32e05a62008-05-04 16:53:22 +00004471 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
4472 T1_FaceRec.
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00004473
Werner Lemberg1a380e02006-07-14 18:28:08 +000044742006-07-14 Jens Claudius <jens.claudius@yahoo.com>
4475
Werner Lemberg32e05a62008-05-04 16:53:22 +00004476 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
4477 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
4478 and IS_PS_BASE85 (from src/psaux/psconv.h).
Werner Lemberg1a380e02006-07-14 18:28:08 +00004479 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
4480 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
4481 (T1_DecoderRec): New fields `buildchar' and `face'.
4482 (IS_PS_TOKEN): New macro.
4483
Werner Lemberg32e05a62008-05-04 16:53:22 +00004484 * include/freetype/internal/t1types.h (T1_FaceRec): New fields
4485 `ndv_idx', `cdv_idx', and `len_buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004486
Werner Lemberg32e05a62008-05-04 16:53:22 +00004487 * include/freetype/t1tables.h (PS_BlendRec): New fields
Werner Lemberg1a380e02006-07-14 18:28:08 +00004488 `default_design_vector' and `num_default_design_vector'.
4489
Werner Lemberg32e05a62008-05-04 16:53:22 +00004490 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
4491 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
4492 IS_PS_BASE85 to include/freetype/internal/psaux.h.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004493
Werner Lemberg32e05a62008-05-04 16:53:22 +00004494 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
4495 argument to be NULL if we want only to count the number of tokens.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004496 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
4497 want to skip the array.
4498 (ps_tofixedarray): Allow `values' argument to be NULL if we just
4499 want to skip the array.
4500
Werner Lemberg32e05a62008-05-04 16:53:22 +00004501 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
David Turnercda6f492009-03-03 20:49:32 +00004502 for (partially commented out) othersubrs 19-25, 27, and 28.
4503 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004504 (t1_decoder_done): Release new field `buildchar'.
4505
Werner Lemberg32e05a62008-05-04 16:53:22 +00004506 * src/type1/t1load.c (parse_buildchar, parse_private): New
Werner Lemberg1a380e02006-07-14 18:28:08 +00004507 functions.
4508 (t1_keywords): Register them.
4509 (t1_allocate_blend): Updated.
4510 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
4511 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
4512 (parse_dict): Remove `keyword_flags' argument.
4513 Use new macro IS_PS_TOKEN.
4514 Changed function so that later PostScript definitions override
4515 earlier ones.
4516 (t1_init_loader): Initialize new field `keywords_encountered'.
4517 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
4518 `len_buildchar'.
4519 Remove `keywords_flags'.
4520
Werner Lemberg32e05a62008-05-04 16:53:22 +00004521 * src/type1/t1load.h (T1_LoaderRect): New field
Werner Lemberg1a380e02006-07-14 18:28:08 +00004522 `keywords_encountered'.
4523 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
4524
Werner Lemberg32e05a62008-05-04 16:53:22 +00004525 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
4526 entries for parsing /NDV, /CDV, and /DesignVector.
Werner Lemberg1a380e02006-07-14 18:28:08 +00004527
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000045282006-07-07 Werner Lemberg <wl@gnu.org>
4529
4530 Add many checks to protect against malformed PCF files.
4531
4532 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
4533 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
4534
4535 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
4536 data and check that tables don't overlap (using a simple
4537 bubblesort).
4538 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
4539 New macros which give the size of data structures in the data
4540 stream.
4541 (pcf_get_properties): Use rough estimates to get array size limits.
4542 Assign `face->nprops' and `face->properties' earlier so that a call
4543 to PCF_Face_Done can do the clean-up in case of error.
4544 Protect against invalid string offsets.
4545 (pcf_get_metrics): Clean up code.
4546 Adjust tracing message levels.
4547 Use rough estimate to get array size limit.
4548 (pcf_get_bitmaps): Clean up code.
4549 Adjust tracing message levels.
4550 Use rough estimates to get offset limits.
4551 (pcf_get_encodings): Adjust tracing message level.
4552 (pcf_get_accel): Clean up code.
4553
Werner Lemberg8eb05252006-06-27 06:20:01 +000045542006-06-26 Werner Lemberg <wl@gnu.org>
4555
4556 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
4557 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
4558
Werner Lemberg24703f82006-06-26 19:12:51 +000045592006-06-26 Jens Claudius <jens.claudius@yahoo.com>
4560
4561 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
4562 (t1_decoder_parse_charstrings): Operator with
4563 opcode 15 pops its two arguments.
4564 Handle the case where the pops of an othersubr may be part of a
4565 subroutine.
4566 Handle unknown othersubrs gracefully: count their operands and let
4567 the following pop operators push the operands as the results onto
4568 the Type1 stack.
4569 Improve handling of setcurrentpoint opcode.
4570
Werner Lembergc011f4c2006-06-26 09:40:00 +000045712006-06-25 Jens Claudius <jens.claudius@yahoo.com>
4572
4573 The Type 1 parser now skips over top-level procedures as required
4574 for a `Simplified Parser'. This makes the parser more robust as it
4575 doesn't poke around in PostScript code. Additionally, it makes the
4576 FontDirectory hackery in src/type1/t1load.c unnecessary.
4577
4578 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
4579 (skip_literal_string): Add FT_Error as return value.
4580 Handle escapes better.
4581 (skip_string): Add FT_Error as return value.
4582 Don't set `parser->error' but return error code directly.
4583 (skip_procedure): New function.
4584 (ps_parser_skip_PS_token): Handle procedures.
4585 Update code.
4586 (ps_parser_to_token): Update code.
4587 (ps_parser_load_field_table): Handle bbox entries also.
4588
4589 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
4590 Add commented-out code for synthetic fonts.
4591
Werner Lemberga2da05c2006-06-25 06:27:27 +000045922006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
4593
4594 Fix two hinting bugs as reported in
4595 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
4596
4597 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
4598 `first_point' member.
4599
4600 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
4601 `first_point'.
4602 (TT_Process_Composite_Glyph): Always untouch points.
4603
4604 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
4605 `first_point' and `last_point' in case of composite glyphs.
4606 (Ins_IUP): Fix computation of `end_point'.
4607
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000046082006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4609
Werner Lembergef3d2c22006-06-25 06:07:14 +00004610 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
4611 Mac. The original patch was written by David Sachitano and Lawrence
4612 Coopet, and modified by Sean McBride for MPW compatibility. Only
4613 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00004614
Werner Lembergef3d2c22006-06-25 06:07:14 +00004615 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
4616 Mac OS X platforms.
4617 (OS_INLINE): Undefine before definition.
4618 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
4619 FontAssociation table in FOND resource.
4620 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
4621 and fontSize at each entry of FontAssociation table in FOND
4622 resource.
4623 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
4624 ffStylOff of FamilyRecord header of FOND resource, the header,
4625 fontSize, fontID at each entry of FontAssociation table, and
4626 StyleMapping table.
4627 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00004628
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000046292006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4630
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004631 Public API of TrueTypeGX, OpenType, and classic kern table validator
4632 should return `FT_Err_Unimplemented_Feature' if validation service
4633 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00004634 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004635 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
4636
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004637 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
4638 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
4639 unavailable.
4640 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
4641 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004642
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00004643 * src/base/ftotval.c (FT_OpenType_Validate): Return
4644 FT_Err_Unimplemented_Feature if OpenType validation service is
4645 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00004646
Werner Lembergb10e45a2006-06-08 07:32:56 +000046472006-06-08 Werner Lemberg <wl@gnu.org>
4648
4649 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
4650 errors.
4651
David Turner5f1f7502006-06-07 05:11:50 +000046522006-06-07 David Turner <david@freetype.org>
4653
Werner Lemberg7d48cb02006-06-08 06:00:08 +00004654 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
4655 (T1_Read_Metrics): Fix memory leak which happened when the metrics
4656 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00004657
David Turner457b4a82006-06-06 08:14:14 +000046582006-06-06 David Turner <david@freetype.org>
4659
Werner Lemberg4836f952006-06-06 12:54:08 +00004660 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00004661
Werner Lemberg4836f952006-06-06 12:54:08 +00004662 We change `ps_unicodes_init' so that it also takes a
4663 `free_glyph_name' callback to release the glyph names returned by
4664 `get_glyph_name'
4665
4666 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
4667 Renamed to ...
4668 (PS_GetGlyphNameFunc): This.
4669 (PS_FreeGlyphNameFunc): New typedef.
4670 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
4671
4672 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
4673 argument.
4674 (cff_sid_free_glyph_name): New function.
4675 (cff_cmap_unicode_init): Updated.
4676
4677 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
4678
4679 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
4680 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00004681
4682
David Turner09717352006-06-04 14:33:08 +000046832006-06-04 David Turner <david@freetype.org>
4684
Werner Lembergd724f202006-06-04 15:17:41 +00004685 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
4686 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00004687 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00004688
Werner Lembergd724f202006-06-04 15:17:41 +00004689 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
4690 of `face->num_glyphs' which missed the last glyph, due to
4691 the offset-by-1 computation, since the PFR format doesn't
4692 guarantee that glyph index 0 corresponds to the `missing
4693 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00004694
Werner Lemberg33779662006-05-26 06:30:05 +000046952006-05-25 Werner Lemberg <wl@gnu.org>
4696
4697 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
4698 `-no-undefined'. Reported by Christian Biesinger.
4699
Werner Lemberg24773d62006-05-20 08:53:13 +000047002006-05-19 Brian Weed <bw@imaginengine.com>
4701
4702 * builds/win32/visualc/freetype.dsp: Release libraries no longer
4703 have debug information, and debug libraries use `C7 compatible'
4704 debug info.
4705
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000047062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4707
Werner Lemberga6523a62006-05-20 08:47:01 +00004708 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00004709 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004710
Werner Lemberga6523a62006-05-20 08:47:01 +00004711 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
4712 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004713
4714 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00004715 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00004716
47172006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4718
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00004719 * build/unix/configure.raw: Add a fallback to disable Carbon
4720 dependency, if configured with no options on Mac OS X.
4721
47222006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4723
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00004724 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00004725 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00004726 the second part of Savannah bug #16590.
4727
Werner Lemberg545c4e52006-05-17 22:55:04 +000047282006-05-18 Werner Lemberg <wl@gnu.org>
4729
4730 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
4731 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
4732
David Turnerdc3ff312006-05-17 12:59:35 +000047332006-05-17 David Turner <david@freetype.org>
4734
Werner Lemberg545c4e52006-05-17 22:55:04 +00004735 This is a major patch used to drastically improve the performance of
4736 loading glyphs. This both speeds up loading the glyph vectors
4737 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00004738
Werner Lemberg545c4e52006-05-17 22:55:04 +00004739 We now use inline assembler code with GCC to implement `FT_MulFix',
4740 which is probably the most important function related to the
4741 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00004742
Werner Lemberg545c4e52006-05-17 22:55:04 +00004743 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00004744
4745
Werner Lemberg545c4e52006-05-17 22:55:04 +00004746 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
4747 `cursor' and `limit'.
4748
4749 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
4750 New functions.
4751 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
4752 [TEST]: Remove.
4753
4754 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
4755 code.
4756
4757 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
4758 `FT_ZERO'
4759 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
4760 (af_glyph_hints_reload: Rewrite recognition of weak points.
4761
4762 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
4763 constant values out of the loops.
4764
4765 * src/autofit/aftypes.h: Updated.
4766
4767 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
4768
4769 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
4770 product to get orientation.
4771
4772 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
4773 (FT_Stream_OpenGzip): Use it to handle small files directly in
4774 memory.
4775
4776 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
4777 Improve performance.
4778
4779 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
4780 `limit'.
4781
4782 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
4783 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
4784 exceedingly large values of number of contours. Speed up by
4785 reducing the number of loops.
4786
4787 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
4788
4789
4790 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
4791 used to detect rogue clients from 4 to 16. This is to prevent some
4792 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
4793 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00004794
Werner Lembergde2d90a2006-05-17 08:54:30 +000047952007-05-17 Werner Lemberg <wl@gnu.org>
4796
4797 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00004798 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00004799
48002006-05-16 Werner Lemberg <wl@gnu.org>
4801
4802 * docs/PROBLEMS: Updated icl issues.
4803
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004804----------------------------------------------------------------------------
4805
Werner Lembergf2e33c12009-01-06 06:59:36 +00004806Copyright 2006, 2007, 2008, 2009 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004807David Turner, Robert Wilhelm, and Werner Lemberg.
4808
4809This file is part of the FreeType project, and may only be used, modified,
4810and distributed under the terms of the FreeType project license,
4811LICENSE.TXT. By continuing to use, modify, or distribute this file you
4812indicate that you have read the license and understand and accept it
4813fully.
4814
4815
4816Local Variables:
4817version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004818coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004819End: