- Create another branch for networking fixes
[reactos.git] / lib / 3rdparty / freetype / ChangeLog.22
1 2006-05-12 Werner Lemberg <wl@gnu.org>
2
3
4 * Version 2.2.1 released.
5 =========================
6
7
8 Tag sources with `VER-2-2-1'.
9
10 2006-05-12 Werner Lemberg <wl@gnu.org>
11
12 * src/tools/docmaker/sources.py (re_source_keywords): Add word
13 boundary markers.
14 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
15 (but not at the beginning or end).
16 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
17 (block_footer): Split into...
18 (block_footer_start, block_footer_middle, block_footer_end): This to
19 add navigation buttons.
20 (HtmlFormatter::block_exit): Updated.
21
22 * include/freetype/*: Many minor documentation improvements (adding
23 links, spelling errors, etc.).
24
25 2006-05-11 Werner Lemberg <wl@gnu.org>
26
27 * README: Minor updates.
28
29 * include/freetype/*: s/scale/scaling value/ where appropriate.
30 Many other minor documentation improvements.
31
32 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
33 trailing punctuation.
34 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
35 warning message for undefined cross references.
36 Update handling of re_italic and re_bold.
37
38 2006-05-11 Masatake YAMATO <jet@gyve.org>
39
40 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
41 read system call returns -1.
42 Remove a redundant parenthesis.
43
44 2006-05-10 Werner Lemberg <wl@gnu.org>
45
46 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
47 given an empty, un-mmap()able file. Reported and suggested fix in
48 Savannah bug #16555.
49
50 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
51 directory to suppress generation of .pyc files. According to the
52 Python docs there isn't a more elegant solution (currently).
53
54 * builds/toplevel.mk (dist): New target which builds .tar.gz,
55 .tar.bz2, and .zip files. Note that the version number is still
56 hard-coded.
57 (do-dist): Sub-target of `dist'.
58 (CONFIG_GUESS, CONFIG_SUB): New variables.
59 (.PHONY): Updated.
60
61 2006-05-09 Rajeev Pahuja <rpahuja@esri.com>
62
63 * builds/win32/visualc/freetype.sln,
64 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
65 VS.NET 2003
66 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
67
68 * builds/win32/visualc/index.html: Updated.
69
70 2006-05-07 Werner Lemberg <wl@gnu.org>
71
72 Put version information into the configure script. Reported by Paul
73 Watson <pwatson@redlinepy.com>.
74
75 * builds/unix/configure.ac: Renamed to...
76 * builds/unix/configure.raw: This which now serves (with appropriate
77 modifications) as a template for configure.ac.
78
79 * version.sed: New script.
80
81 * autogen.sh: Generate configure.ac from configure.raw, using
82 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
83
84 2006-05-06 Werner Lemberg <wl@gnu.org>
85
86 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
87
88 * builds/unix/configure.ac (version_info): Set to 9:10:3.
89
90 * builds/win32/visualc/index.html,
91 builds/win32/visualc/freetype.dsp,
92 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
93 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
94 Minor updates.
95
96 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
97 Updated.
98
99 * builds/unix/install-sh: Updated from `texinfo' CVS module at
100 savannah.gnu.org.
101
102 * devel/ftoption.h: Synchronize with
103 include/freetype/config/ftoption.h.
104
105 2006-05-04 Werner Lemberg <wl@gnu.org>
106
107 * src/lzw/ftlzw2.c: Renamed to...
108 * src/lzw/ftlzw.c: This.
109
110 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
111
112 * builds/mac/FreeType.m68k_cfm.make.txt,
113 builds/mac/FreeType.m68k_far.make.txt,
114 builds/mac/FreeType.ppc_carbon.make.txt,
115 builds/mac/FreeType.ppc_classic.make.txt: Updated.
116
117 2006-05-03 David Turner <david@freetype.org>
118
119 Allow compilation again with C++ compilers.
120
121 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
122 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
123 which exist in two variants (for C and C++).
124 Update callers accordingly.
125
126 2006-05-03 Werner Lemberg <wl@gnu.org>
127
128 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
129
130 2006-05-02 Werner Lemberg <wl@gnu.org>
131
132 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
133 (FT_ALLOC): Remove redundant redefinition.
134
135 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
136 `-Wstrict-prototypes'.
137
138 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
139
140 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
141 Remove `extern'.
142
143 2006-05-02 David Turner <david@freetype.org>
144
145 Update the memory management functions and macros to safely deal
146 with array size buffer overflows. This corresponds to attempts to
147 allocate arrays that are too large. For an example, consider the
148 following code:
149
150 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
151 count ); for ( nn = 0; nn < count; nn++ )
152 array[nn] = read_item_from_file();
153
154 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
155 multiplication overflows, and the array allocated os smaller than
156 the data read from the file. In this case, the heap will be
157 trashed, and this can be used as a denial-of-service attack, or make
158 the engine crash later.
159
160 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
161 count is no larger than `FT_INT_MAX/item_size', otherwise a new
162 error code `FT_Err_Array_Too_Large' will be returned.
163
164 Note that the memory debugger now works again when FT_DEBUG_MEMORY
165 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
166 code is now the default.
167
168
169 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
170 Don't use `extern'.
171
172 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
173 code.
174
175 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
176 [FT_DEBUG_MEMORY]: New macro.
177 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
178 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
179 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
180 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
181 FT_MEM_FREE): Redefine.
182 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
183 FT_MEM_QRENEW_ARRAY): Redefine.
184 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
185 FT_MEM_QREALLOC_MULT): New macros. Update callers where
186 appropriate.
187 (FT_MEM_SET_ERROR): Slightly redefine.
188
189
190 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
191 [FT_DEBUG_MEMORY]: New global variables, replacing...
192 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
193 `line_no'. Update all callers.
194 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
195 overflow.
196 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
197 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
198
199 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
200 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
201 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
202 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
203
204
205 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
206 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
207 place where the frames were entered, extracted, exited or released
208 in the memory debugger.
209
210 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
211 Call ft_mem_free.
212 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
213 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
214
215 2006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
216
217 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
218 initialization, remove extra cast to copy to pfb_lenpos. This fixes
219 parsing of PFB fonts with MacOS resource fork (bug introduced
220 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
221
222 2006-04-29 Werner Lemberg <wl@gnu.org>
223
224 Further C library abstraction. Based on a patch from
225 msn2@bidyut.com.
226
227 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
228 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
229 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
230 C library functions. Update all users accordingly (and catch some
231 other places where the C library function was used instead of the
232 wrapper functions).
233
234 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
235 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
236 include malloc.h.
237
238
239 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
240 and forthcoming versions.
241
242 2006-04-28 Werner Lemberg <wl@gnu.org>
243
244 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
245 obsolete.
246
247 2006-04-27 yi luo <luoyi.ly@gmail.com>
248
249 * builds/win32/visualc/freetype.vcproj: Updated.
250
251 2006-04-26 David Turner <david@freetype.org>
252
253
254 * Version 2.2 released.
255 =======================
256
257
258 Tag sources with `VER-2-2-0'.
259
260 2006-04-26 Werner Lemberg <wl@gnu.org>
261
262 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
263 FT_PtrDiff for `delta'. Reported by CĂ©line PILLET
264 <Celine.Pillet@Tagginfo.com>.
265
266 2006-04-21 David Turner <david@freetype.org>
267
268 * include/freetype/ftincrem.h: Documentation updates.
269 (FT_Incremental_Interface): New typedef.
270
271 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
272 Documentation updates.
273
274 * include/freetype/freetype.h: Documentation update.
275 (FT_HAS_FAST_GLYPHS): Always set to 0.
276
277 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
278 Take an FT_Library argument instead of FT_Memory.
279
280 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
281
282 2006-04-13 David Turner <david@freetype.org>
283
284 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
285 superfluous code in the auto-fitter's loader.
286
287 2006-04-05 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
288
289 * builds/amiga/makefile, builds/amiga/makefile.os4,
290 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
291
292 2006-04-03 luoyi <luoyi.ly@gmail.com>
293
294 * builds/compiler/intelc.mk (TE): New variable.
295 (ANSIFLAGS): Updated.
296
297 2006-04-03 Werner Lemberg <wl@gnu.org>
298
299 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
300 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
301 (.PHONY): Updated.
302
303 * configure.ac: Minor fixes to improve --help output.
304
305
306 * docs/PROBLEMS: New file.
307
308 2006-04-01 David Turner <david@freetype.org>
309
310 * docs/CHANGES: Updated.
311
312 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
313 Update documentation comments.
314
315 2006-04-01 Werner Lemberg <wl@gnu.org>
316
317 * builds/unix/install.mk (uninstall): Don't handle `cache'
318 directory which no longer exists.
319
320 2006-03-29 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
321
322 * src/psaux/psconv.c: Changed some variables which are expected to
323 hold negative values from `char' to `FT_Char' to allow building with
324 a compiler where `char' is unsigned by default.
325
326 2006-03-27 David Turner <david@freetype.org>
327
328 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
329 causes some programs to go into an infinite loop when dealing with
330 fonts that don't have a properly sorted kerning sub-table.
331
332 2006-03-26 Werner Lemberg <wl@gnu.org>
333
334 * src/bdf/bdflib.c (ERRMSG4): New macro.
335 (_bdf_parse_glyphs): Handle invalid BBX values.
336
337 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
338 macro.
339
340 2006-03-23 Werner Lemberg <wl@gnu.org>
341
342 * docs/CHANGES: Updated.
343
344
345 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
346 padding between table elements.
347 (html_header_1): The `DOCTYPE' comment must be in uppercase.
348 (make_html_para): Convert `...' quotations into real left and
349 right single quotes.
350 Use `para_header' and `para_footer'.
351
352 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
353 also.
354
355 2006-03-23 David Turner <david@freetype.org>
356
357 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
358 we do not expose the FT_SubGlyphRec structure.
359
360 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
361 to...
362 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
363 (FT_Get_SybGlyph_Info): New declaration.
364
365 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
366
367
368 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
369 rsb_delta correctly in edge cases.
370
371 2006-03-22 Werner Lemberg <wl@gnu.org>
372
373 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
374 [!FTC_INLINE]: Compile conditionally.
375 * src/cache/ftccache.h: Updated.
376
377 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
378 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
379 s/FT_EXPORT/FT_LOCAL/.
380 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
381 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
382 s/FT_EXPORT/FT_LOCAL/.
383 * src/cache/ftcglyph.h: Updated.
384
385 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
386 s/FT_EXPORT/FT_LOCAL/.
387 (FTC_INode_Weight): Commented out.
388 * src/cache/ftcimage.h: Updated.
389
390 * src/cache/ftmanag.c (FTC_Manager_Compress,
391 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
392 s/FT_EXPORT/FT_LOCAL/.
393 * src/cache/ftmanag.h: Updated.
394
395 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
396 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
397 (FTC_SNode_Weight): Commented out.
398 * src/cache/ftcsbits.h: Updated.
399
400 2006-03-22 Werner Lemberg <wl@gnu.org>
401
402 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
403 Remove, unused.
404
405 * src/cache/ftccmap.h: Remove, unused.
406
407 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
408
409 2006-03-21 Zhe Su <james.su@gmail.com>
410
411 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
412 algorithm.
413
414 2006-03-21 Werner Lemberg <wl@gnu.org>
415
416 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
417
418 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
419
420 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
421 to `FT_UInt'.
422 Check range of `glyph_index'.
423 * src/cff/cffgload.h: Updated.
424
425
426 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
427 correctly.
428
429
430 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
431 README: s/2.1.10/2.2/.
432
433 2006-03-21 David Turner <david@freetype.org>
434
435 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
436 that crashes the auto-hinter (introduced by previous patch).
437
438 2006-03-20 Werner Lemberg <wl@gnu.org>
439
440 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
441 (FREETYPE_H): Updated.
442
443 * src/cache/rules.mk (CACHE_H_DIR): Remove.
444 (CACHE_DRV_H): Updated.
445
446 2006-03-20 David Turner <david@freetype.org>
447
448 * include/freetype/cache/ftccache.h,
449 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
450 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
451 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
452 Move to...
453
454 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
455 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
456 src/cache/ftcmru.h: This new location.
457 Update declarations according to the changes in the corresponding
458 source files.
459
460 Note that these files are not used by FreeType clients; all public
461 APIs of the cache module have been already moved to
462 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
463 macros resolve to it.
464
465 Reason for the move is to allow modifications of the internals
466 without interferences with rogue clients. Note that there are no
467 known clients that access the cache internals at the moment.
468
469 * builds/unix/install.mk (install): Don't install headers from
470 $(CACHE_H).
471 Remove `freetype/cache' from the target directory.
472
473 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
474 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
475 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
476 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
477 FT_CACHE_H.
478
479 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
480 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
481 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
482 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
483 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
484 but include the headers directly (which are now in `src/cache').
485
486 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
487 macros but include the headers directly.
488 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
489 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
490
491 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
492 macros but include the headers directly.
493 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
494 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
495 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
496 Declare as FT_LOCAL_DEF.
497 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
498 conditionally.
499 Declare as FT_LOCAL_DEF.
500
501
502 * builds/win32/visualc/freetype.dsp: Update project file, add
503 missing base source files (ftstroke.c, ftxf86.c, etc.).
504
505
506 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
507 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
508 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
509 src/type1/t1objs.c: Remove compiler warnings when building with
510 Visual C++ 6 and /W4.
511
512 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
513 hinting for italic/oblique fonts.
514
515
516
517 * src/truetype/ttpload.c, src/truetype/ttpload.h
518 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
519
520 2006-03-06 David Turner <david@freetype.org>
521
522 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
523 Mozilla/FireFox print preview in Ubuntu Hoary.
524
525 2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
526
527 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
528 return error when size == 0.
529
530 2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
531
532 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
533 order so that type42 module is removed before truetype module. This
534 avoids double free in some occasions.
535
536 2006-02-28 David Turner <david@freetype.org>
537
538 * Release candidate VER-2-2-0-RC4.
539 ----------------------------------
540
541 * docs/CHANGES: Documentation updates.
542
543 2006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
544
545 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
546 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
547 built.
548
549 2006-02-27 Werner Lemberg <wl@gnu.org>
550
551 * include/freetype/cache/ftccache.h
552 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
553 ftc_node_done.
554
555 * src/cache/ftccache.c (ftc_node_destroy)
556 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
557 should now fix all possible compilation options.
558
559 2006-02-27 David Turner <david@freetype.org>
560
561 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
562 ft_mem_qrealloc): Return an error if a negative size is passed in
563 parameters.
564
565 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
566 it needs to be exported for rogue clients.
567
568 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
569 with malformed fonts which have an odd number of blue values (these
570 are broken according to the specs).
571
572 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
573 (T1_Open_Face): Modify the loaders to force even-ness of
574 `num_blue_values'.
575
576 (cff_index_access_element): Ignore invalid entries in index files.
577
578 2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
579
580 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
581 or height is 0.
582
583 2006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
584
585 * builds/mac/FreeType.m68k_cfm.make.txt,
586 builds/mac/FreeType.m68k_far.make.txt,
587 builds/mac/FreeType.ppc_carbon.make.txt,
588 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
589 inclusion introduced on 2006-02-16.
590
591 2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
592
593 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
594 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
595 Re-enable glyph metrics grid-fitting. It is now done in the base
596 layer.
597 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
598 height are not too small or too large, just like we were doing in
599 2.1.10.
600
601 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
602 are not scaled.
603
604 2006-02-26 Werner Lemberg <wl@gnu.org>
605
606 * docs/release: Minor additions and clarifications.
607
608 * docs/CHANGES: Updated to reflect many fixes for backwards
609 compatibility. Still incomplete.
610
611 2006-02-26 David Turner <david@freetype.org>
612
613 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
614 conservative rounding of metrics to avoid breaking clients like
615 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
616
617 2006-02-25 Werner Lemberg <wl@gnu.org>
618
619 * devel/ftoption.h: Synchronize with
620 include/freetype/config/ftoption.h.
621
622 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
623
624 2006-02-25 David Turner <david@freetype.org>
625
626 Fix compiler warnings as well as C++ compilation problems.
627 Add missing prototypes.
628
629 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
630 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
631 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
632 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
633 initialize variables, and decorate functions with FT_CALLBACK_DEF,
634 etc., to fix compiler warnings (and C++ compiling errors).
635
636 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
637 gcc.
638
639 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
640 FT_INTERNAL_STREAM_H.
641
642 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
643
644 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
645
646 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
647 define for C++.
648
649 * include/freetype/internal/services/svotval.h: Don't include
650 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
651
652 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
653
654 * src/gzip/ftgzip.c: Include FT_GZIP_H.
655
656 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
657
658 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
659
660 2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
661
662 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
663 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
664 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
665 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
666
667 2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
668
669 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
670 documentation.
671
672 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
673 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
674 sure a glyph slot owns its bitmap. It is also marked experimental
675 and due to change.
676 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
677 rendering the outline confuses some applications.
678
679 2006-02-24 David Turner <david@freetype.org>
680
681 * Release candidate VER-2-2-0-RC3.
682 ----------------------------------
683
684 * src/cache/ftcbasic.c: Correct compatibility hack bug.
685
686 2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
687
688 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
689 of `width' and `height' to `FT_Long'.
690 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
691 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
692 directly.
693
694 2006-02-23 David Turner <david@freetype.org>
695
696 Two BDF patches from Debian libfreetype6 for 2.1.10.
697
698 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
699 glyphs.
700 Fix a problem with large encodings.
701
702
703 Fix binary compatibility issues for gnustep-back (GNUstep backend
704 module) which still crashes under Sarge.
705
706 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
707 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
708 structures and enumerations.
709 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
710 compatibility code.
711
712 * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
713 support rogue clients compiled against 2.1.7 to work correctly.
714 This probably explains the GNUstep crashes with the second release
715 candidate.
716
717 2006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
718
719 * include/freetype/ftoutln.h (enum FT_Orientation): New value
720 `FT_ORIENTATION_NONE'.
721
722 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
723 ft_contour_enclosed, ft_outline_get_orientation): Another version of
724 `FT_Outline_Get_Orientation'. This version differs from the public
725 one in that each part (contour not enclosed in another contour) of the
726 outline is checked for orientation.
727 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
728
729 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
730 use bitmap's embolden routine when the outline one failed.
731
732 2006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
733
734 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
735 compatibility.
736
737 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
738
739 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
740 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
741 loading. (Only tested with bit aligned sbit with x_pos == 0.)
742
743 * src/truetype/ttpload.c (tt_face_load_hdmx,
744 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
745 actually used.
746
747 2006-02-21 David Turner <david@freetype.org>
748
749 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
750 we have a patented, unpatented, or unimplemented TrueType bytecode
751 interpreter.
752
753 The FT_Get_Module_Flags API was removed consequently.
754
755 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
756 Replaced with...
757 (FT_Get_TrueType_Engine_Type): This.
758 (FT_TrueTypeEngineType): New enumeration.
759
760 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
761 New macro.
762
763 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
764 (FT_Module_Get_Flags): Removed. Replaced with...
765 (FT_Get_TrueType_Engine_Type): This.
766
767 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
768 (tt_service_truetype_engine): New service structure.
769 (tt_services): Register it.
770
771 * include/freetype/internal/services/svtteng.h: New file.
772
773
774 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
775 embedded bitmaps from being correctly listed and used.
776
777
778 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
779 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
780 libXfont is directly accessing the HMTX data, unfortunately.
781 Fix some compiler warnings.
782 (tt_face_get_metrics): Ditto.
783
784
785 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
786 character advances.
787
788 2006-02-20 David Turner <david@freetype.org>
789
790 Support binary compatibility with the X.Org server's Xfont library.
791 Note that this change unfortunately prevents memory optimizations
792 for the embedded bitmap loader.
793
794 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
795 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
796 version 2.1.8.
797
798 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
799 FT_Size_Request.
800 (sfnt_interface): Updated.
801
802 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
803 ttsbit0.c.
804 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
805
806 * src/sfnt/ttsbit.h: Updated.
807
808 2006-02-17 David Turner <david@freetype.org>
809
810 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
811 functions anymore. This ensures that all FT_BASE internal functions
812 are available for dynamic linking.
813
814 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
815 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
816 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
817 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
818 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
819 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
820 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
821 cache sub-system. We try to recognize old legacy signatures with a
822 gross hack (hope it works).
823
824 2006-02-17 Werner Lemberg <wl@gnu.org>
825
826 * devel/ftoption.h: Synchronize with
827 include/freetype/config/ftoption.h.
828
829 2006-02-16 David Turner <david@freetype.org>
830
831 Massive changes to the internals to respect the internal object
832 layouts and exported functions of FreeType 2.1.7. Note that the
833 cache sub-system cannot be fully retrofitted, unfortunately.
834
835 * include/freetype/config/ftoption.h
836 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
837
838 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
839 include/freetype/cache/ftccmap.h,
840 include/freetype/internal/ftcalc.h,
841 include/freetype/internal/ftdriver.h,
842 include/freetype/internal/ftmemory.h,
843 include/freetype/internal/ftobjs.h,
844 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
845 include/freetype/internal/t1types.h,
846 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
847 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
848 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
849 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
850 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
851 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
852 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
853 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
854 structures.
855
856 Move newly added structure elements to the end of the affected
857 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
858 defined) to assure binary compatibility with older FreeType
859 versions.
860 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
861 functions:
862
863 ft_stub_set_char_sizes
864 ft_stub_set_pixel_sizes
865
866 Rename the following internal functions to provide the old function
867 names as stubs:
868
869 FT_Alloc -> ft_mem_alloc
870 FT_QAlloc -> ft_mem_qalloc
871 FT_Realloc -> ft_mem_realloc
872 FT_QRealloc -> ft_mem_qrealloc
873 FT_Free -> ft_mem_free
874 FT_Alloc_Debug -> ft_mem_alloc_debug
875 FT_QAlloc_Debug -> ft_mem_qalloc_debug
876 FT_Realloc_Debug -> ft_mem_realloc_debug
877 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
878 FT_Free_Debug -> ft_mem_free_debug
879
880 2006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
881
882 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
883 unused `max_points' and `max_contours'.
884
885 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
886 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
887
888 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
889 `max_components'.
890
891 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
892 `loadSize' and `loadStack'.
893
894 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
895 src/sfnt/ttload.c (tt_face_load_maxp): Update.
896
897 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
898 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
899 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
900 defined.
901
902 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
903 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
904 (finally!)
905
906
907 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
908 and `face->root' is set later in `sfnt_load_face'. Here, we try to
909 make this work for _all_ tables. Also improve tracing messages.
910
911 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
912 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
913 then exit. Error handling or setting face->root is done later in
914 `sfnt_load_face'.
915
916 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
917 Mac bitmap-only fonts are not scalable.
918 Check that `face->header.Units_Per_EM' is not zero.
919 (LOAD_, LOADM_): Emit pretty trace messages.
920
921 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
922 from `eblc'.
923
924 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
925 (load_format_20, load_format_25, tt_face_get_ps_name): Use
926 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
927
928 2006-02-14 Werner Lemberg <wl@gnu.org>
929
930 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
931 documentation that negative strength values are possible.
932 Give an example call.
933
934 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
935 documentation of `outline' field.
936
937 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
938 * src/sfnt/sfdriver.c: Include ttmtx.h.
939
940 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
941
942 2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
943
944 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
945
946 2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
947
948 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
949 return error if table is missing.
950 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
951
952 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
953 tables. The last change makes Mac bitmap-only font not load and
954 this fixes it.
955
956 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
957 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
958
959 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
960
961 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
962 split from `load_hhea'.
963
964 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
965 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
966
967 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
968
969 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
970
971 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
972 code...
973
974 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
975
976 Clean up the SFNT_Interface. In this pass, we want to treat the
977 font directory (offset table and table directory) as a normal table
978 like the others. This also means that TTCs are no longer recognized
979 there but in `init_face'.
980
981 * include/freetype/internal/sfnt.h (SFNT_Interface),
982 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
983 combined and renamed to `load_font_dir'.
984
985 * src/sfnt/ttload.h, src/sfnt/ttload.c:
986 s/sfnt_dir_check/check_table_dir/.
987 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
988 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
989 and renamed to `tt_face_load_font_dir'.
990
991 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
992
993 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
994
995 Clean up the SFNT_Interface. Table loading functions are now named
996 after the tables' tags; `hdmx' is TrueType-specific and thus the
997 code is moved to the truetype module; `get_metrics' is moved here
998 from the truetype module so that the code can be shared with the cff
999 module.
1000
1001 This pass involves no real changes. That is, the code is moved
1002 verbatim mostly. The only exception is the return value of
1003 `tt_face_get_metrics'.
1004
1005 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
1006 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
1007 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
1008 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
1009
1010 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
1011 tables' loading and parsing code is moved to here.
1012 Move `tt_face_get_metrics' here from the truetype module. The
1013 return value is changed from `void' to `FT_Error'.
1014
1015 * include/freetype/internal/fttrace.h: New trace: ttmtx.
1016
1017 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
1018 parsing code is moved here.
1019 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
1020 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
1021
1022 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
1023
1024 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
1025
1026 2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1027
1028 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
1029
1030 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
1031 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
1032 to it later in `af_latin_hints_link_segments'.
1033
1034 2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1035
1036 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
1037 to enable autofit CJK script support. (#define'd by default.)
1038
1039 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
1040
1041 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
1042 that `edge_distance_threshold' is always set.
1043 (af_latin_hints_link_segments): Potential divide-by-zero bug.
1044 Use latin constant in the scoring formula.
1045
1046 * src/autofit/afcjk.c: Minor updates due to the above three changes.
1047
1048 * docs/TODO, docs/CHANGES: Updated.
1049
1050 2006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
1051
1052 Introduce experimental autofit CJK module based on akito's autohint
1053 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
1054
1055 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
1056 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
1057 Add CJK module based on akito's autohint patch.
1058
1059 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
1060 overlap length of the segments.
1061 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
1062
1063 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
1064 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
1065 `FT_LOCAL'.
1066 Use the character given by the caller.
1067 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
1068 the thresholds.
1069
1070 * src/autofit/afloader.c (af_loader_load_g): Respect
1071 AF_SCALER_FLAG_NO_ADVANCE.
1072
1073 2006-02-09 Werner Lemberg <wl@gnu.org>
1074
1075 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
1076
1077 2006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1078
1079 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
1080 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
1081 2005-11-02).
1082
1083 2006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1084
1085 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
1086 option on UNIX platform. It has been broken since 2006-01-11.
1087
1088 2006-02-01 Werner Lemberg <wl@gnu.org>
1089
1090 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
1091 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
1092
1093 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
1094 change from 2006-01-31).
1095 (TOP_DIR, OBJ_DIR): Update.
1096
1097 * builds/unix/install.mk (install): Fix path for ftmodule.h.
1098
1099 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
1100 `?=' where appropriate.
1101
1102 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
1103 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
1104
1105 2006-01-31 Werner Lemberg <wl@gnu.org>
1106
1107 Implement new, simplified module selection. With GNU make it is now
1108 sufficient to modify a single file, `modules.cfg', to control the
1109 inclusion of modules and base extension files.
1110
1111 This change also fixes the creation of ftmodule.h; it now depends on
1112 `modules.cfg' and thus is rebuilt only if necessary.
1113
1114 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
1115 default location.
1116
1117 * modules.cfg: New file.
1118
1119 * builds/freetype.mk: Don't include `modules.mk'.
1120 Include all `rules.mk' files as specified in `modules.cfg'.
1121 (FTOPTION_FLAG, FTOPTION_H): New variables.
1122 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
1123 Add FTOPTION_FLAG.
1124 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
1125 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
1126 (INCLUDES): Add DEVEL_DIR.
1127 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
1128 OBJ_M, OBJ_S): Use `:=', not `='.
1129 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
1130 (distclean): Add remove_ftmodule_h.
1131
1132 * builds/modules.mk: (MODULE_LIST): Removed.
1133 (make_module_list, clean_module_list): Replace targets
1134 with...
1135 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
1136 variables. Reason for the change is that it is not possible to have
1137 a phony prerequisite which is run only if the target file must be
1138 rebuilt (phony prerequisites act like subroutines and are *always*
1139 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
1140 changed.
1141 Update all callers.
1142 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
1143 `modules.cfg'.
1144
1145 * builds/toplevel.mk: Rewrite and simplify module handling.
1146 (MODULES_CFG, FTMODULE_H): New variables.
1147 Include MODULES_CFG.
1148 (MODULES): New variable to include all `module.mk' and `rules.mk'
1149 files. We no longer use make's `wildcard' function for this.
1150
1151 * Makefile (USE_MODULES): Remove. Update all users.
1152 (OBJ_DIR): Define it here.
1153
1154 * src/*/module.mk: Change
1155
1156 make_module_list: foo
1157 foo: ...
1158
1159 to
1160
1161 FTMODULE_H_COMMANDS += FOO
1162 define FOO
1163 ...
1164 endef
1165
1166 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
1167
1168 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
1169
1170 * builds/unix/detect.mk (setup): Always execute `configure' script.
1171 (have_mk): Rename to...
1172 (have_Makefile): This.
1173 Don't use `strip' function.
1174
1175 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
1176 defined.
1177 (have_mk): Don't use `strip' function.
1178 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
1179 accordingly).
1180
1181 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
1182
1183 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
1184 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
1185 BUILD_DIR but DEVEL_DIR for development header files.
1186
1187 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
1188 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
1189 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
1190
1191 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
1192 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
1193
1194 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
1195 development header files.
1196 Don't define PLATFORM.
1197
1198 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
1199 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
1200 Be more verbose.
1201
1202 * include/freetype/config/ftmodule.h: Add comments -- this file is
1203 no longer used if FreeType is built with GNU make.
1204
1205 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
1206 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
1207 Other minor updates.
1208
1209 * modules.txt: Removed. Contents included in `modules.cfg'.
1210
1211
1212 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
1213 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
1214
1215 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
1216 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
1217 [FT_STRICT_ALIASING]: Implement.
1218
1219 2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1220
1221 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
1222 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
1223 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
1224 units_per_EM, ascender - descender).
1225
1226 2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1227
1228 * include/freetype/internal/t1types.h (AFM_FontInfo),
1229 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
1230 `Ascender', and `Descender' from an AFM.
1231
1232 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
1233
1234 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
1235 be changed after file attachment.
1236
1237 2006-01-28 Werner Lemberg <wl@gnu.org>
1238
1239 * src/*/module.mk (.PHONY): Add.
1240
1241 2006-01-27 Werner Lemberg <wl@gnu.org>
1242
1243 * README, docs/FTL.TXT: Fix email address for bug reports.
1244 Other minor formatting.
1245
1246 * devel/ftoption.h: Synchronize with
1247 include/freetype/config/ftoption.h.
1248
1249 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
1250 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
1251 whitespace.
1252
1253 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
1254 renderer classes.
1255
1256 2006-01-27 David Turner <david@freetype.org>
1257
1258 * builds/unix/configure.ac: Fix build problem on Cygwin.
1259
1260 * builds/unix/install.mk (install): Don't install the internal
1261 headers, and remove existing ones if found in the target install
1262 directory.
1263
1264 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
1265 if the warp hinter isn't active (it shouldn't, still experimental).
1266
1267 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
1268 and `otvalid' from the list of modules that are linked statically
1269 to a given FreeType library. Functionality has been moved to the
1270 `ftvalid' CVS module.
1271
1272 Note also that current Make-based build system still compiles the
1273 modules though.
1274
1275 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
1276 which controls the definitions of the memory management functions to
1277 avoid warnings with recent versions of GCC. This macro is only here
1278 to be disabled, in case we detect problems with the new scheme.
1279
1280 NOTE: Disable macro to use the memory debugger -- this will be fixed
1281 later!
1282
1283 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
1284 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
1285 New versions.
1286
1287
1288 * builds/win32/visualc/freetype.dsp: Updating project file to
1289 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
1290 compilation.
1291
1292
1293 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
1294 macro FT2_BUILD_LIBRARY when compiling the library.
1295
1296 * include/freetype/config/ftheader.h: Remove inclusions of internal
1297 headers except if the macro FT2_BUILD_LIBRARY is defined.
1298
1299
1300 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
1301 AFM_FontInfo): Move structure declarations to...
1302 * include/freetype/internal/t1types.h: This file.
1303
1304
1305 * (many files): Fix compiler warnings.
1306 Various minor reorganizations.
1307
1308
1309 * src/cff/cffload.c (cff_font_done): Don't free static array
1310 `subfonts'.
1311
1312 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
1313 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
1314
1315
1316 Get rid of writable static variables (i.e., the string table) in
1317 afmparse, and fix compilation in FT2_MULTI mode.
1318
1319 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
1320 (AFM_MAX_ARGUMENTS): Define...
1321 * src/psaux/afmparse.h: Here.
1322 * src/psaux/Jamfile (_sources): Add afmparse.
1323
1324 * src/psaux/psconv.c: Include psconv.h.
1325
1326 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
1327 FT_INTERNAL_POSTSCRIPT_AUX_H.
1328 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
1329
1330 2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1331
1332 * include/freetype/freetype.h (FT_Select_Size): Rename the second
1333 argument from `idx' to `strike_index'.
1334 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
1335 this enum.
1336
1337 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
1338 FT_REQUEST_HEIGHT): New macros to get the width and height of a
1339 request, in fractional pixels.
1340
1341 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
1342 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
1343 FT_Request_Metrics): New base functions to set the font metrics. They
1344 were part of FT_Select_Size/FT_Request_Size and are made independent
1345 functions so that metrics are not set again and again.
1346
1347 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
1348 only when driver's size_select/size_request is NULL. That is, drivers
1349 should set the metrics themselves.
1350 (FT_Match_Size): Round before matching. This was what we did and it
1351 does cause some problems without rounding.
1352
1353 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
1354 (tt_size_select): Set the font metrics.
1355 s/index/strike_index/.
1356 The scaled metrics are always preferred over strikes' metrics, even
1357 when some strike is selected. This is done because the strikes'
1358 metrics are not reliable, e.g., the sign of the descender is wrong for
1359 some fonts.
1360
1361 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
1362 (tt_size_request): Set the font metrics.
1363 Call cff_size_select/tt_size_select when some strike is matched.
1364
1365 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
1366 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
1367 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
1368 Set the font metrics.
1369 s/index/strike_index/.
1370
1371 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
1372 files were committed. Just a catch-up.
1373 (PS_Conv_ToFixed): Remove the `goto'.
1374 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
1375
1376 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
1377 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
1378 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
1379 advertised metrics in `available_sizes' are different from those
1380 actually used.
1381
1382 2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1383
1384 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
1385 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
1386
1387 2006-01-22 Werner Lemberg <wl@gnu.org>
1388
1389 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1390 `texinfo' CVS module at savannah.gnu.org.
1391
1392 2006-01-21 Werner Lemberg <wl@gnu.org>
1393
1394 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
1395
1396 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
1397 to avoid compiler warnings.
1398
1399 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
1400 shadowing variable declarations.
1401 Fix warning parameters and replace printf with AF_LOG.
1402 (af_warper_compute): Remove unused variable.
1403
1404 2006-01-20 David Turner <david@freetype.org>
1405
1406 Adding experimental implementation of `warp hinting' (new hinting
1407 algorithm for gray-level and LCD rendering). It is disabled by
1408 default, you need to #define AF_USE_WARPER in aftypes.h.
1409
1410 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
1411 New function.
1412 * src/autofit/afhints.h: Updated.
1413
1414 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
1415 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
1416 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
1417 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
1418 appropriately.
1419
1420 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
1421 Isolate code for adjusting metrics.
1422
1423 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
1424 default).
1425
1426 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
1427
1428 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
1429
1430 * src/autofit/Jamfile (_sources): Add afwarp.
1431
1432 2006-01-19 David Turner <david@freetype.org>
1433
1434 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
1435 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
1436
1437 2006-01-19 Brian Weed <bw@imaginengine.com>
1438
1439 * builds/win32/visualc/freetype.dsp: Updated.
1440
1441 2006-01-17 Werner Lemberg <wl@gnu.org>
1442
1443 Use pscmap service in CFF module.
1444
1445 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
1446 (cff_sid_to_glyph_name): New function.
1447 (cff_cmap_unicode_init, cff_cmap_unicode_done,
1448 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
1449 service.
1450 (cff_cmap_unicode_class_rec): Updated.
1451 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
1452
1453
1454 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
1455 return value.
1456
1457
1458 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
1459 to avoid compiler warnings regarding type-punning.
1460
1461 2006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
1462
1463 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
1464 implement an AFM parser.
1465
1466 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
1467 conversion functions (e.g., PS real number => FT_Fixed) for the
1468 PS_Parser and AFM_Parser. Some of the functions are taken, with
1469 some modifications, from the file psobjs.c.
1470
1471 * src/psaux/psobjs.c: Use functions from psconv.c.
1472
1473 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
1474 `AFM_Parser' to the `psaux' service.
1475
1476 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
1477 those new files.
1478
1479 * src/tools/test_afm.c: A test program for AFM parser.
1480
1481 * include/freetype/internal/services/svkern.h: New file providing a
1482 `Kerning' service. It is currently only used to get the track
1483 kerning information.
1484
1485 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
1486 macro.
1487
1488 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
1489 src/type1/t1afm.h: Update to use the AFM parser.
1490 Provide the `Kerning' service.
1491
1492 * include/freetype/freetype.h, src/base/ftobjs.c: New API
1493 `FT_Get_Track_Kerning'.
1494
1495 2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1496
1497 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
1498 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
1499 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
1500 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
1501
1502 * docs/CHANGES: Mention that vertical metrics are synthesized for
1503 fonts not having this info.
1504
1505 2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1506
1507 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
1508 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
1509 vertical metrics.
1510
1511 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
1512 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
1513 which are monotone.
1514
1515 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
1516 formattings in vertical metrics faking. There is still room for
1517 improvements (and so does the CFF module).
1518
1519 2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1520
1521 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
1522 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
1523 the linear advance fields as they are only used by the outline
1524 glyphs.
1525
1526 * include/freetype/freetype.h: Documentation updates and
1527 clarifications.
1528 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
1529 change need be made to the code.
1530
1531 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
1532 decide whether to use the auto-hinter according to documentation.
1533 There should to be no real difference.
1534 Some checks (e.g., is text height positive?) after the glyph is
1535 loaded.
1536 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
1537 Be careful that scales won't be negative.
1538
1539 2006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
1540
1541 * docs/CHANGES: Mention the size selection change.
1542
1543 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
1544 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
1545 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
1546 matching for requests of type NOMINAL and REAL_DIM.
1547
1548 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
1549 `pixel_height' is used for nominal height.
1550
1551 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
1552 face is bitmap only and driver doesn't provide `request_size'. This
1553 is added merely for completion as no driver satisfies the conditions.
1554
1555 2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
1556
1557 Introduce new size selection interface.
1558
1559 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
1560 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
1561 `select_size'.
1562
1563 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
1564 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
1565 (FT_Select_Size, FT_Request_Size): API additions to export the new
1566 size selection interface.
1567
1568 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
1569 `FT_Request_Size'.
1570
1571 * include/freetype/internal/ftobjs.h (FT_Match_Size),
1572 src/base/ftobjs.c (FT_Match_Size): New function to match a size
1573 request against `available_sizes'. Drivers supporting bitmap strikes
1574 can use this function to implement `request_size'.
1575
1576 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
1577 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
1578 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
1579 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
1580 Update to new size selection interface.
1581
1582 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
1583 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
1584 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
1585 selection interface.
1586 Make `strike_index' FT_ULong and always defined.
1587 Use `load_strike_metrics' provided by SFNT interface.
1588
1589 2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
1590
1591 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
1592 `load_strike_metrics' used to load the strike's metrics.
1593
1594 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
1595 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
1596
1597 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
1598
1599 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
1600 nominal size unless it is obviously incorrect.
1601
1602 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
1603 FNT driver.
1604
1605 2006-01-12 Werner Lemberg <wl@gnu.org>
1606
1607 Prepare use of pscmap service within CFF module.
1608
1609 * include/freetype/internal/services/svpscmap.h: Include
1610 FT_INTERNAL_OBJECTS_H.
1611 (PS_Unicode_Index_Func): Removed. Unused.
1612 (PS_Macintosh_Name_Func): Renamed to...
1613 (PS_Macintosh_NameFunc): This.
1614 Update all callers.
1615 (PS_Adobe_Std_Strings_Func): Renamed to...
1616 (PS_Adobe_Std_StringsFunc): This.
1617 Update all callers.
1618 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
1619 Add `cmap' member.
1620 Update all callers.
1621 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
1622 Update all callers.
1623 (PS_Glyph_NameFunc): New typedef.
1624 (PS_Unicodes_InitFunc): Change arguments to expect a function
1625 and generic data pointer which returns a glyph name from a given
1626 index.
1627
1628 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
1629 ps_unicodes_char_next, pscmaps_interface): Updated.
1630
1631 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
1632
1633 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
1634 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
1635
1636 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
1637 (t1_cmap_unicode_init, t1_cmap_unicode_done,
1638 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
1639 t1_cmap_unicode_class_rec): Updated.
1640
1641 * src/type42/t42types.h (T42_FaceRec): Updated.
1642
1643 2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1644
1645 * include/freetype/ftmac.h: Add declaration of new functions
1646 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
1647 were introduced by the jumbo patch on 2006-01-11.
1648
1649 2006-01-11 Werner Lemberg <wl@gnu.org>
1650
1651 Fix Savannah bug #15056 and use pscmap service in psaux module.
1652
1653 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
1654 FT_UInt32 for `glyph_index'.
1655 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
1656 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
1657 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
1658 FT_UInt32.
1659
1660 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
1661 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
1662 variant glyph (this is, it has non-leading `.' in its name).
1663 (compare_uni_maps): Sort base glyphs before variant glyphs.
1664 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
1665 Reallocate only if number of used entries is much smaller.
1666 Updated to handle variant glyphs.
1667 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
1668 over variant glyphs.
1669 Simplify code.
1670
1671 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
1672 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
1673 t1_cmap_unicode_char_next): Use pscmap service.
1674 (t1_cmap_unicode_done): Updated.
1675
1676 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
1677 (T1_CMapUnicode): Use PS_Unicodes structure.
1678
1679 2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1680
1681 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
1682 Intel, as reported by Sean McBride <sean@rogue-research.com> on
1683 2005-08-24.
1684
1685 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
1686 functions on Tiger.
1687
1688 * builds/unix/configure.ac: Add options and autochecks for Carbon
1689 functions availabilities, for MacOS X.
1690
1691 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
1692 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
1693 macros to avoid unavailable functions.
1694 ftmac.c must be compiled without `-strict ansi', because it disables
1695 cpp macro to use ToolBox system call.
1696
1697 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
1698 macros to avoid unavailable functions.
1699
1700 * builds/mac/README: Detailed notes on function availabilities.
1701
1702 * docs/CHANGES: Notes about (possible) incompatibilities.
1703
1704 2006-01-08 Werner Lemberg <wl@gnu.org>
1705
1706 * docs/CHANGES: Updated.
1707
1708 2006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
1709
1710 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
1711 declaration.
1712
1713 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
1714
1715 2006-01-07 Werner Lemberg <wl@gnu.org>
1716
1717 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
1718 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
1719
1720 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
1721 Reported by Niels Boldt <nielsboldt@gmail.com>.
1722
1723 2005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1724
1725 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
1726 MPW compiler.
1727
1728 2005-12-23 David Turner <david@freetype.org>
1729
1730 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
1731 refdoc' works correctly to generate the API reference in
1732 `docs/reference'.
1733
1734 * src/tools/docmaker/tohtml.py (print_html_field,
1735 print_html_field_list): Update to output nicer fields lists in the
1736 API reference.
1737
1738 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
1739 forces auto-hinting.
1740
1741 * freetype/freetype.h: Updating the documentation for
1742 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
1743
1744 2005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1745
1746 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
1747 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
1748 unsupported formats (fbit, NFNT). The number of available faces are
1749 passed via face->num_faces. If bitmap faces are embedded in sfnt
1750 resource, face->num_fixed_size is correctly set. In public API,
1751 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
1752 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
1753
1754 * doc/CHANGES: Mention the changes.
1755
1756 2005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
1757
1758 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
1759 correctly (so that memory debug system won't panic).
1760
1761 2005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
1762
1763 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
1764 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
1765
1766 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
1767
1768 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
1769 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
1770 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
1771
1772 * doc/CHANGES: Mention the changes.
1773
1774 2005-12-13 David Turner <david@freetype.org>
1775
1776 Change the implementation of the LIGHT hinting mode to completely
1777 disable horizontal hinting. This is an experimental effort to
1778 integrate David Chester's latest patch without affecting the other
1779 hinting modes as well.
1780
1781 Note that this doesn't force auto-hinting for all fonts, however.
1782
1783 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
1784 scaler_fiags here but...
1785 (af_glyph_hints_rescale): Here.
1786
1787 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1788 hinting for `light' hinting mode.
1789
1790
1791 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
1792 same location as other generated objects (i.e., within the `objs'
1793 directory of the current directory).
1794
1795
1796 Add support for an embedded `BDF ' table within SFNT-based bitmap
1797 font files. This is used to store atoms & properties from the
1798 original BDF fonts that were used to generate the font file.
1799
1800 The feature is controlled by TT_CONFIG_OPTION_BDF within
1801 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
1802 font files.
1803
1804 At the moment, this is still experimental, the BDF table format
1805 isn't cast into stone yet.
1806
1807 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
1808 macro.
1809
1810 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
1811
1812 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
1813 [TT_CONFIG_OPTION_BDF]: New structure.
1814 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
1815
1816 * include/freetype/ttags.h (TTAG_BDF): New macro.
1817
1818 * src/sfnt/Jamfile (_sources): Add ttbdf.
1819
1820 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
1821
1822 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
1823 FT_SERVICE_BDF_H.
1824 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
1825 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
1826 (sfnt_services) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
1827
1828 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
1829
1830 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
1831 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
1832 tt_face_free_bdf_props.
1833
1834 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
1835
1836 2005-12-07 Werner Lemberg <wl@gnu.org>
1837
1838 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
1839 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
1840
1841 2005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
1842
1843 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
1844 initialized twice.
1845 size->strike_index is not initialized.
1846
1847 2005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
1848
1849 * src/type42/t42objs.c (T42_Face_Init): Replace call to
1850 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
1851
1852 2005-11-30 Werner Lemberg <wl@gnu.org>
1853
1854 * docs/CHANGES: Document ftdump's `-v' option.
1855 Document latest charmap code changes.
1856
1857 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
1858 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
1859
1860 2005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
1861
1862 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
1863 tt_cmap12_char_map_binary): Fix compiler warnings.
1864
1865 2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
1866
1867 Major update to distinguish between unsorted and overlapping
1868 segments for cmap format 4. For overlapping but sorted segments,
1869 which is previously considered unsorted, we still use binary search.
1870
1871 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
1872 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
1873
1874 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
1875 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
1876 (tt_cmap4_reset): Removed.
1877 (tt_cmap4_init): Updated accordingly.
1878 (tt_cmap4_next): Updated accordingly.
1879 Take care of overlapping segments.
1880 (tt_cmap4_validate): Make sure the subtable is large enough.
1881 Do not check glyph_ids because some fonts set the length wrongly.
1882 Also, if all segments have offset 0, glyph_ids is always invalid.
1883 It does not cause any problem so far only because the check misses
1884 equality.
1885 Distinguish between unsorted and overlapping segments.
1886 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
1887 to do `charcode => glyph index' by linear/binary search.
1888 (tt_cmap4_char_index, tt_cmap4_char_next): Use
1889 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
1890 (tt_face_build_cmaps): Treat the return value of validator as flags
1891 for cmap.
1892
1893 2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
1894
1895 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
1896 New structures and functions for fast `next char'.
1897 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
1898 index' by binary search.
1899 (tt_cmap12_char_index, tt_cmap12_char_next): Use
1900 tt_cmap12_char_map_binary.
1901 (tt_face_build_cmaps): Check table and offset correctly (equality is
1902 missing).
1903
1904 2005-11-15 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
1905
1906 * builds/amiga/smakefile: Adjusted the compiler options
1907 to the current sources, now really builds the gxvalid, gzip
1908 and psnames modules.
1909
1910 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
1911 in the file cache was off by one byte which could cause false
1912 errors in font files.
1913
1914 2005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1915
1916 * builds/mac/FreeType.m68k_far.make.txt,
1917 builds/mac/FreeType.m68k_cfm.make.txt,
1918 builds/mac/FreeType.ppc_classic.make.txt,
1919 builds/mac/FreeType.ppc_carbon.make.txt:
1920 Updated for MPW to build all available modules.
1921
1922 2005-11-21 HĂĄvard Wall <haavardw@ifi.uio.no>
1923
1924 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
1925 memory leak.
1926
1927 2005-11-21 Werner Lemberg <wl@gnu.org>
1928
1929 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
1930
1931 2005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
1932
1933 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
1934 added twice to image_start if image_format was 2 or 5.
1935
1936 2005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
1937
1938 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
1939 before loading the table directory.
1940
1941 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
1942 tt_face_load_directory): Delay sfnt_dir_check from
1943 tt_face_load_sfnt_header to tt_face_load_directory.
1944
1945 2005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
1946
1947 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
1948 error code.
1949 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
1950 is synthesized into a TTC font with one offset table.
1951 (tt_face_load_sfnt_header): Use sfnt_init.
1952 Fix an invalid access if the font is TTC and face_index is -1.
1953
1954 2005-11-18 Werner Lemberg <wl@gnu.org>
1955
1956 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
1957 of metrics instead of aborting. Patch suggested by Derek Noonburg.
1958
1959 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
1960 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
1961 the glyph properly if no hinter is available.
1962
1963 * docs/CHANGES: Mention scaling bug.
1964
1965 2005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1966
1967 * include/freetype/ftgxval.h, src/base/ftgxval.c
1968 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
1969 buffers allocated by gxvalid module.
1970 * include/freetype/ftotval.h, src/base/ftotval.c
1971 (FT_OpenType_Free): New function to free buffer allocated by
1972 otvalid module.
1973
1974 2005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
1975
1976 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
1977 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
1978 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
1979 s/FT_EXPORT/FT_BASE/.
1980
1981 2005-11-17 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
1982
1983 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
1984 FT_Trace_Get_Name, FT_Message, FT_Panic),
1985 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
1986 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
1987
1988 2005-11-17 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
1989
1990 * builds/amiga/makefile, builds/amiga/makefile.os4,
1991 builds/amiga/smakefile,
1992 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
1993 build files (added support for the gxvalid module).
1994
1995 2005-11-17 Werner Lemberg <wl@gnu.org>
1996
1997 Add vertical metrics support to OpenType CFF outlines. Based on a
1998 patch from Mike Moening <MikeM@RetekSolutions.com>.
1999
2000 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
2001 (cff_slot_load): Use cff_face_get_vertical_metrics.
2002
2003 * docs/CHANGES: Updated.
2004
2005 2005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
2006
2007 * src/base/ftcalc.c (FT_MulTo64): Commented out.
2008
2009 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
2010 src/base/ftcalc.c (FT_SqrtFixed),
2011 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
2012 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
2013 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
2014 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
2015 include/freetype/internal/ftstream.h (FT_Stream_Open),
2016 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
2017 s/FT_EXPORT/FT_BASE/.
2018
2019 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
2020 too.
2021
2022 2005-11-15 David Turner <david@freetype.org>
2023
2024 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
2025 invalid computations, resulting in very weird bugs in TrueType
2026 bytecode hinted fonts.
2027
2028 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
2029 structure copy each time.
2030
2031 2005-11-11 Werner Lemberg <wl@gnu.org>
2032
2033 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
2034 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
2035
2036 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
2037 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
2038
2039 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
2040 (FT_Sqrt32): Commented out. Unused.
2041
2042 * include/freetype/cache/ftccache.h:
2043 s/ftc_node_destroy/FTC_Node_Destroy/.
2044
2045 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
2046
2047 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
2048 (FTC_Node_Destroy): New exported wrapper function for
2049 ftc_node_destroy.
2050
2051 * src/cache/ftcmanag.c: Include ftccback.c.
2052
2053 2005-11-10 Werner Lemberg <wl@gnu.org>
2054
2055 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
2056 Comment out. Unused.
2057
2058 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
2059
2060 2005-11-10 Christian Biesinger <cbiesinger@web.de>
2061
2062 * builds/beos/beos.mk: Call beos-def.mk before anything else to
2063 define the separator.
2064
2065 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
2066
2067 2005-11-07 Werner Lemberg <wl@gnu.org>
2068
2069 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
2070 table available'. From Sergey Tolstov <stolstov@esri.com>.
2071
2072 2005-11-03 Ville Syrjälä <syrjala@sci.fi>
2073
2074 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
2075
2076 2005-11-02 Werner Lemberg <wl@gnu.org>
2077
2078 Make compiling instructions in docs/CUSTOMIZE work again.
2079
2080 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
2081 (CFLAGS): Don't include @CPPFLAGS@.
2082 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
2083
2084 2005-10-28 David Turner <david@freetype.org>
2085
2086 Update build system to support the generation of a list of exported
2087 symbols or Windows .DEF files by parsing the public headers with the
2088 `apinames' tool located in src/tools/apinames.c.
2089
2090 Only tested on Unix at the moment. On Windows, the .DEF file is
2091 generated but isn't used yet to generate a DLL.
2092
2093 * builds/exports.mk: New file.
2094
2095 * builds/freetype.mk: Include exports.mk.
2096 (dll): New target.
2097 (clean_project_dos): Fix rule.
2098
2099 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
2100 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
2101 variables for controlling executable extensions.
2102
2103 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
2104 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
2105 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
2106 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
2107 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
2108 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
2109
2110 * Jamfile (GenExportSymbols): Updated.
2111
2112
2113 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
2114 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
2115 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
2116
2117
2118 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
2119 (FT_MulFix): Performance optimizations.
2120
2121
2122 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
2123 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
2124 checking points and contours. Update callers to use
2125 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
2126 at profile-detected hot-spots.
2127
2128 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
2129 to 0 to not call `AdjustPoints' every time.
2130
2131
2132 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
2133 FT_Angle_Diff.
2134
2135 * src/autofit/afhints.c (af_direction_compute): Re-implement.
2136 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
2137 AF_ANGLE_DIFF to speed up the detection of inflexions.
2138
2139
2140 * src/tools/apinames.c: Include <string.h>.
2141 (OutputFormat): New enumeration.
2142 (names_dump): Add two parameters to control output format and DLL
2143 name.
2144 (names_dump_windef): Removed. Code folded into `names_dump'.
2145 (read_header_file): Use isalnum, not isalpha. Otherwise function
2146 names with digits aren't read correctly.
2147 (usage): Updated.
2148 (main): New option `-o' to control output file name.
2149 New option `-d' to indicate DLL file name.
2150 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
2151
2152 2005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2153
2154 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
2155 ftlib.prj is unmaintained and incompatible with current tree.
2156 freetype.mak is unrecoverably broken.
2157
2158 * builds/mac/ftlib.prj.xml: Added.
2159 Generated by Metrowerks CodeWarrior 9.0.
2160
2161 * builds/mac/FreeType.m68k_far.make.txt,
2162 builds/mac/FreeType.m68k_cfm.make.txt,
2163 builds/mac/FreeType.ppc_classic.make.txt,
2164 builds/mac/FreeType.ppc_carbon.make.txt: Added.
2165 Skeleton files of MPW makefiles.
2166
2167 * builds/mac/ascii2mpw.py: Added.
2168 Python script to make MPW makefile from skeleton.
2169
2170 * builds/mac/README: Updated.
2171 Almost rewritten to use new files.
2172
2173 2005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2174
2175 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
2176 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
2177 and George Williams.
2178
2179 2005-10-27 Werner Lemberg <wl@gnu.org>
2180
2181 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
2182 Obsolete.
2183
2184 2005-10-25 Werner Lemberg <wl@gnu.org>
2185
2186 * src/sfnt/sfdriver.c (sfnt_interface): Move out
2187 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
2188 Ibbs <tibs@sj.co.uk>.
2189
2190 2005-10-23 Werner Lemberg <wl@gnu.org>
2191
2192 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
2193 C++.
2194
2195 2005-10-21 David Turner <david@freetype.org>
2196
2197 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
2198 Another realloc memory counting bug fix.
2199
2200 * src/tools/Jamfile: Add missing file.
2201
2202 * src/lzw/Jamfile: Fix incorrect source file reference.
2203
2204 2005-10-20 David Turner <david@freetype.org>
2205
2206 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
2207 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
2208 to better account for memory reallocations.
2209
2210 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
2211 src/lzw/rules.mk: First version of LZW loader re-implementation.
2212 Apparently, this saves about 330 KB of heap memory when loading
2213 timR24.pcf.Z.
2214
2215 2005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
2216
2217 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
2218 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
2219 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
2220 FT_EXPORT/FT_EXPORT_DEF tagging.
2221
2222 2005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
2223
2224 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
2225 be invalid when FT_LOAD_NO_SCALE is set.
2226
2227 2005-10-17 David Turner <david@freetype.org>
2228
2229 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
2230 FT_New_Size if we are opening a face with face_index < 0 (which is
2231 only used for testing the format).
2232
2233 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
2234 Remove compiler warning.
2235
2236 2005-10-16 David Turner <david@freetype.org>
2237
2238 * src/tools/apinames.c: Add new tool to extract public API function
2239 names from header files.
2240
2241 2005-10-05 Werner Lemberg <wl@gnu.org>
2242
2243 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
2244 a hinting engine of its own.
2245
2246 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
2247
2248 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
2249 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
2250 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
2251 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
2252 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
2253
2254 * docs/CHANGES: Document it.
2255
2256 2005-09-27 Werner Lemberg <wl@gnu.org>
2257
2258 * builds/unix/freetype2.m4: Add license exception so that the file
2259 can be used in any other autoconf script.
2260
2261 2005-09-26 David Turner <david@freetype.org>
2262
2263 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
2264 computation of the `vertical' flag, causing ugly things in LCD mode
2265 and others.
2266
2267 2005-09-23 David Turner <david@freetype.org>
2268
2269 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
2270 prevented internal hint mode bitflags from being computed correctly.
2271
2272 * src/base/Jamfile: Adding src/base/ftgxval.c.
2273
2274 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
2275 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
2276 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
2277 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2278 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2279 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
2280 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2281 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
2282 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
2283 src/truetype/ttgload.c: Remove _many_ compiler warnings when
2284 compiling with Visual C++ at maximum level (/W4).
2285
2286 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
2287 implementation with one using lookup tables. This simple thing
2288 speeds up glyph loading by 18%, according to ftbench!
2289
2290 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
2291 `get_sfnt' and `load_sfnt' module interfaces.
2292
2293 2005-09-22 Werner Lemberg <wl@gnu.org>
2294
2295 * docs/CHANGES: Mention SING Glyphlet support.
2296
2297 2005-09-22 David Turner <david@freetype.org>
2298
2299 * src/base/Jamfile: Disable compilation of ftgxval module
2300 temporarily.
2301
2302 2005-09-19 David Somers <dsomers@omz13.com>
2303
2304 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
2305 font to have no `head' table if tables `SING' and `META' are
2306 present; this is to support `SING Glyphlet'.
2307
2308 `SING Glyphlet' is an extension to OpenType developed by Adobe
2309 primarily to facilitate adding supplemental glyphs to an OpenType
2310 font (with emphasis on, but not necessarily limited to, gaiji to a
2311 CJK font). A SING Glyphlet Font is an OpenType font that contains
2312 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
2313 `cmap', `BASE', and `GSUB' tables are present with the same format
2314 and functionaliy as a regular OpenType font; there are no `name',
2315 `head', `OS/2', and `post' tables; there are two new tables, `SING'
2316 which contains details about the glyphlet, and `META' which contains
2317 metadata.
2318
2319 Further information on the SING Glyphlet format can be found at:
2320
2321 http://www.adobe.com/products/indesign/sing_gaiji.html
2322
2323 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
2324 macros for the OpenType tables `SING' and `META'. These two tables
2325 are used in SING Glyphlet Format fonts.
2326
2327 2005-09-09 Werner Lemberg <wl@gnu.org>
2328
2329 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
2330 FT_FACE_FLAG_KERNING which has been commented out erroneously.
2331
2332 * docs/CHANGES: Document it.
2333
2334 2005-09-05 Werner Lemberg <wl@gnu.org>
2335
2336 Fixes for `make multi' and using C++ compiler.
2337
2338 * src/gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
2339 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
2340 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
2341 (gxv_compare_ranges): Make it static.
2342 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
2343 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
2344 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
2345 trace messages.
2346 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
2347 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2348 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
2349 gxvcommn.h.
2350
2351 * src/gxvalid/gxvcommn.h: Add prototypes for
2352 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
2353 gxv_XStateTable_validate, gxv_array_getlimits_byte,
2354 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
2355 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
2356 gxv_odtect_validate.
2357 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2358 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
2359 gxvcommn.c.
2360
2361 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
2362 gxv_bsln_parts_fmt1_validate): Improve trace messages.
2363
2364 * src/gxvalid/gxvfeat.c: Split off predefined registry stuff to...
2365 * src/gxvalid/gxvfeat.h: New file.
2366
2367 * src/gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
2368 message.
2369
2370 * src/gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
2371 (gxv_kern_subtable_fmt1_valueTable_load,
2372 gxv_kern_subtable_fmt1_subtable_setup,
2373 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
2374 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
2375 Improve trace message.
2376 (gxv_kern_validate_generic): Fix C++ compiler error.
2377 Improve trace message.
2378 (gxv_kern_validate_classic): Fix C++ compiler error.
2379
2380 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
2381 with FT_LOCAL_DEF.
2382
2383 * src/gxvalid/gxvmort1.c
2384 (gxv_mort_subtable_type1_substitutionTable_load,
2385 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
2386 (gxv_mort_subtable_type1_substTable_validate): Improve trace
2387 message.
2388 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2389
2390 * src/gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
2391 gxv_mort_subtable_type2_subtable_setup,
2392 gxv_mort_subtable_type2_ligActionOffset_validate,
2393 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
2394 errors.
2395 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2396
2397 * src/gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
2398 with FT_LOCAL_DEF.
2399
2400 * src/gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
2401 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
2402 errors.
2403 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2404
2405 * src/gxvalid/gxvmort.c: Include gxvfeat.h.
2406 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
2407 Declare with FT_LOCAL_DEF.
2408 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
2409 messages.
2410
2411 * src/gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
2412
2413 * src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
2414 with FT_LOCAL_DEF.
2415
2416 * src/gxvalid/gxvmorx1.c
2417 (gxv_morx_subtable_type1_substitutionTable_load,
2418 gxv_morx_subtable_type1_subtable_setup,
2419 gxv_morx_subtable_type1_entry_validate,
2420 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
2421 compiler errors.
2422 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2423
2424 * src/gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
2425 gxv_morx_subtable_type2_subtable_setup,
2426 gxv_morx_subtable_type2_ligActionIndex_validate,
2427 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
2428 errors.
2429 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2430 Fix typo.
2431
2432 * src/gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
2433 with FT_LOCAL_DEF.
2434
2435 * src/gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
2436 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
2437 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2438
2439 * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
2440 gxv_morx_validate): Improve trace message.
2441
2442 * src/gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
2443 warnings.
2444 (gxv_opbd_validate): Improve trace message.
2445
2446 * src/gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
2447 appropriate.
2448 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
2449 message.
2450
2451 * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
2452 parameter. Update all callers.
2453 (gxv_trak_validate): Improve trace message.
2454
2455 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
2456
2457 2005-09-01 Werner Lemberg <wl@gnu.org>
2458
2459 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
2460
2461 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
2462 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
2463 typo.
2464
2465 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2466 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
2467 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
2468 messages.
2469 Decorate constants with `U' and `L' where appropriate.
2470 Fix compiler warnings.
2471
2472 2005-08-31 Werner Lemberg <wl@gnu.org>
2473
2474 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
2475
2476 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
2477
2478 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
2479
2480 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
2481 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
2482 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2483 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2484 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
2485 messages.
2486 Decorate constants with `U' and `L' where appropriate.
2487 Fix compiler warnings.
2488
2489 2005-08-30 Werner Lemberg <wl@gnu.org>
2490
2491 * src/gxvalid/README: Revised.
2492 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
2493 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
2494 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
2495 parameter. Update all callers.
2496 Improve trace messages.
2497 Some formatting.
2498
2499 2005-08-29 Werner Lemberg <wl@gnu.org>
2500
2501 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
2502 a preliminary section with some explanations about user allocation.
2503
2504 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
2505 Don't abort if there are no data types, functions, etc., in a
2506 section.
2507 Print synopsis only if we have a data type, function, etc.
2508
2509 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
2510 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
2511 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2512
2513 2005-08-28 George Williams <gww@silcom.com>
2514
2515 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
2516 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
2517
2518 2005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
2519
2520 * builds/unix/freetype2.in (CFlags): Add missing directory.
2521
2522 2005-08-24 Werner Lemberg <wl@gnu.org>
2523
2524 * docs/CHANGES: Mention gxvalid module.
2525
2526 2005-08-23 Werner Lemberg <wl@gnu.org>
2527
2528 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
2529 render mode properly. Reported by chris@dokein.co.uk.
2530
2531 2005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2532
2533 Add gxvalid module to validate TrueType GX/AAT tables.
2534
2535 Modifications on existing files:
2536
2537 * Jamfile: Register gxvalid module.
2538 * src/base/Jamfile: Register ftgxval.c.
2539 * src/base/rule.mk: Register ftgxval.c.
2540 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
2541
2542 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
2543 to include gxvalid header file.
2544 * include/freetype/config/ftmodule.h: Register gxv_module_class.
2545
2546 * include/freetype/ftchapters.h: Add comment about gx_validation.
2547 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
2548 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
2549 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
2550
2551 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
2552 macro for gxvalid service.
2553 * include/freetype/internal/fttrace.h: Add trace facilities for
2554 gxvalid.
2555
2556 New files on existing directories:
2557
2558 * include/freetype/internal/services/svgxval.h: Registration of
2559 validation service for TrueType GX/AAT and classic kern table.
2560 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
2561 * src/base/ftgxval.c: Public API of gxvalid.
2562
2563 New files under src/gxvalid/:
2564
2565 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
2566 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
2567 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
2568 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
2569 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
2570 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
2571 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
2572 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
2573 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
2574 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
2575 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
2576 src/gxvalid/gxvtrak.c: New files, gxvalid body.
2577
2578 2005-08-21 Werner Lemberg <wl@gnu.org>
2579
2580 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
2581 to (0,0) if bit 1 of the `head' table isn't set. This improves
2582 rendering of buggy fonts.
2583
2584 2005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
2585
2586 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
2587 ttmetrics here. TrueType fonts with only sbits always have
2588 ttmetrics.valid set to false.
2589
2590 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
2591 valid before loading outline glyph.
2592
2593 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
2594
2595 2005-08-20 Werner Lemberg <wl@gnu.org>
2596
2597 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
2598 `hhea' table for SFNT Mac fonts. Change based on a patch by
2599 mpsuzuki@hiroshima-u.ac.jp.
2600
2601 2005-08-20 Masatake YAMATO <jet@gyve.org>
2602
2603 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
2604 of ft_setjmp.
2605
2606 2005-08-19 Werner Lemberg <wl@gnu.org>
2607
2608 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
2609 warnings.
2610
2611 2005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
2612
2613 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
2614 messages.
2615
2616 2005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
2617
2618 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
2619 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
2620 with slight changes.
2621 Update all callers.
2622 (TT_New_Context): Now takes TT_Driver argument directly.
2623 Update all callers.
2624
2625 * src/truetype/ttobjs.h (tt_slot_init): New function.
2626 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
2627 context here.
2628 (tt_slot_init): New function to create extra points for the internal
2629 glyph loader. We then use it directly, instead of face's glyph
2630 loader, when loading glyph.
2631
2632 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
2633 glyph slot initialization.
2634 (Load_Glyph): Load flag dependencies are handled here. Return error
2635 if size is NULL.
2636
2637 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
2638 (org_to_cur): Removed.
2639 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
2640 (TT_Hint_Glyph): New function to hint a zone, prepared by caller.
2641 (TT_Process_Simple_Glyph): s/load/loader/.
2642 Use loader->pp values instead of recalculation.
2643 Use TT_Hint_Glyph.
2644 No need to save/restore loader->stream before and after
2645 TT_Vary_Get_Glyph_Deltas now.
2646 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
2647 points.
2648 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
2649 Savannah bug #13107.
2650 Forget glyph frame before calling TT_Process_Simple_Glyph.
2651 Use TT_LOADER_SET_PP.
2652 Scale all four phantom points.
2653 Split off some functionality to ...
2654 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
2655 new functions.
2656 (TT_Load_Glyph): Set various fields of `glyph' here, not in
2657 load_truetype_glyph and compute_glyph_metrics.
2658 Split off some functionality to ...
2659 (load_sbit_image, tt_loader_init): These new functions.
2660 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
2661
2662 2005-08-08 Werner Lemberg <wl@gnu.org>
2663
2664 * docs/INSTALL.ANY: Updated.
2665
2666 2005-08-05 Werner Lemberg <wl@gnu.org>
2667
2668 * src/cff/cffgload.c (cff_builder_close_contour),
2669 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
2670 zero `outline' pointer.
2671
2672 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
2673 `loader' address.
2674
2675 2005-08-03 Werner Lemberg <wl@gnu.org>
2676
2677 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
2678 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
2679 to make X work again.
2680
2681 2005-08-02 Werner Lemberg <wl@gnu.org>
2682
2683 * src/otvalid/otvcommn.h: Remove dead code.
2684
2685 2005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
2686
2687 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
2688 functions.
2689
2690 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
2691 functions.
2692 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
2693 zone.
2694 Move code that runs fpgm to tt_size_run_fpgm.
2695 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
2696 (tt_glyphzone_new): Allocate right size of arrays.
2697 Set max_points and max_contours properly.
2698
2699 2005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
2700
2701 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
2702 computations and clean up.
2703
2704 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
2705 internal copy of metrics.
2706
2707 2005-07-12 Werner Lemberg <wl@gnu.org>
2708
2709 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
2710 Reported by Xerxes.
2711
2712 2005-07-04 Werner Lemberg <wl@gnu.org>
2713
2714 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
2715 Reported by Brett Hutley.
2716
2717 2005-06-30 David Turner <david@freetype.org>
2718
2719 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
2720 Removing compiler warnings (Visual C++ /W4).
2721
2722
2723 Implement a work-around for broken C preprocessor in Visual C++ (it
2724 has been confirmed by the MS developers that it is indeed a bug
2725 which won't be fixed in the very near future).
2726
2727 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
2728
2729 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
2730 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
2731 avoid argument expansion by argument prescan.
2732 Append `Func' to all affected macros and change them to take just a
2733 single argument. Example: `AttachList' is renamed to
2734 `AttachListFunc'.
2735
2736 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
2737 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
2738 affected by the changes to OTV_NESTx and modify them to take just a
2739 single argument.
2740
2741 2005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
2742
2743 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
2744 ft_glyphslot_grid_fit_metrics.
2745
2746 * src/truetype/ttgload.c (compute_glyph_metrics): Use
2747 ft_glyphslot_grid_fit_metrics.
2748
2749 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2750 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
2751 ft_glyphslot_grid_fit_metrics.
2752 FT_Outline_Get_CBox is called twice.
2753
2754 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
2755 reasonable values when emboldening outline glyphs. The theoretic
2756 ones are unrealistic.
2757
2758 2005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
2759
2760 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
2761 halved.
2762
2763 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
2764 strength.
2765 Don't increase slot->advance.y.
2766
2767 2005-06-16 Werner Lemberg <wl@gnu.org>
2768
2769 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
2770 (FREETYPE_PATCH): Set to 0.
2771
2772 * builds/unix/configure.ac (version_info): Set to 9:9:3.
2773 Currently, we are still binary compatible.
2774
2775 * builds/win32/visualc/index.html,
2776 builds/win32/visualc/freetype.dsp,
2777 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
2778
2779 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
2780 s/2.1.9/2.1.10/.
2781
2782 * docs/CHANGES, docs/VERSION.DLL: Updated.
2783
2784 * ChangeLog: Split off older entries into...
2785 * ChangeLog.20, ChangeLog.21: These new files.
2786
2787 2005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
2788
2789 The next release will be 2.2.0, so don't worry about source code
2790 backwards compatibility.
2791
2792 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
2793 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
2794 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
2795 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
2796 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
2797 parameters with `const' where appropriate.
2798
2799 2005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
2800
2801 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
2802 to make glyphs centered vertically.
2803
2804 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
2805 vertBearingY to make glyphs centered vertically.
2806 Fix some bugs in vertical metrics:
2807
2808 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
2809 units.
2810 . As we use the glyph's cbox to calculate the top bearing now
2811 there iss no need to adjust `top'.
2812
2813 2005-06-15 Werner Lemberg <wl@gnu.org>
2814
2815 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
2816 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
2817
2818 2005-06-13 Werner Lemberg <wl@gnu.org>
2819
2820 * docs/release: Update.
2821
2822 ----------------------------------------------------------------------------
2823
2824 Copyright 2005, 2006, 2007 by
2825 David Turner, Robert Wilhelm, and Werner Lemberg.
2826
2827 This file is part of the FreeType project, and may only be used, modified,
2828 and distributed under the terms of the FreeType project license,
2829 LICENSE.TXT. By continuing to use, modify, or distribute this file you
2830 indicate that you have read the license and understand and accept it
2831 fully.
2832
2833
2834 Local Variables:
2835 version-control: never
2836 coding: utf-8
2837 End: