modules/freetype2/ChangeLog.22

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 2006-05-12  Werner Lemberg  <wl@gnu.org>
     4 	* Version 2.2.1 released.
     5 	=========================
     8 	Tag sources with `VER-2-2-1'.
    10 2006-05-12  Werner Lemberg  <wl@gnu.org>
    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.
    22 	* include/freetype/*: Many minor documentation improvements (adding
    23 	links, spelling errors, etc.).
    25 2006-05-11  Werner Lemberg  <wl@gnu.org>
    27 	* README: Minor updates.
    29 	* include/freetype/*: s/scale/scaling value/ where appropriate.
    30 	Many other minor documentation improvements.
    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.
    38 2006-05-11  Masatake YAMATO  <jet@gyve.org>
    40 	* builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
    41 	read system call returns -1.
    42 	Remove a redundant parenthesis.
    44 2006-05-10  Werner Lemberg  <wl@gnu.org>
    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.
    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).
    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.
    61 2006-05-09  Rajeev Pahuja  <rpahuja@esri.com>
    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.
    68 	* builds/win32/visualc/index.html: Updated.
    70 2006-05-07  Werner Lemberg  <wl@gnu.org>
    72 	Put version information into the configure script.  Reported by Paul
    73 	Watson <pwatson@redlinepy.com>.
    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.
    79 	* version.sed: New script.
    81 	* autogen.sh: Generate configure.ac from configure.raw, using
    82 	FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
    84 2006-05-06  Werner Lemberg  <wl@gnu.org>
    86 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
    88 	* builds/unix/configure.ac (version_info): Set to 9:10:3.
    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.
    96 	* docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
    97 	Updated.
    99 	* builds/unix/install-sh: Updated from `texinfo' CVS module at
   100 	savannah.gnu.org.
   102 	* devel/ftoption.h: Synchronize with
   103 	include/freetype/config/ftoption.h.
   105 2006-05-04  Werner Lemberg  <wl@gnu.org>
   107 	* src/lzw/ftlzw2.c: Renamed to...
   108 	* src/lzw/ftlzw.c: This.
   110 	* src/lzw/Jamfile, src/lzw/rules.mk: Updated.
   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.
   117 2006-05-03  David Turner  <david@freetype.org>
   119 	Allow compilation again with C++ compilers.
   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.
   126 2006-05-03  Werner Lemberg  <wl@gnu.org>
   128 	* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
   130 2006-05-02  Werner Lemberg  <wl@gnu.org>
   132 	* include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
   133 	(FT_ALLOC): Remove redundant redefinition.
   135 	* builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
   136 	`-Wstrict-prototypes'.
   138 	* src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
   140 	* include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
   141 	Remove `extern'.
   143 2006-05-02  David Turner  <david@freetype.org>
   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:
   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();
   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.
   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.
   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.
   169 	* include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
   170 	Don't use `extern'.
   172 	* include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
   173 	code.
   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.
   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.
   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.
   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.
   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.
   215 2006-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   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>.
   222 2006-04-29  Werner Lemberg  <wl@gnu.org>
   224 	Further C library abstraction.  Based on a patch from
   225 	msn2@bidyut.com.
   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).
   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.
   239 	* builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
   240 	and forthcoming versions.
   242 2006-04-28  Werner Lemberg  <wl@gnu.org>
   244 	* src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
   245 	obsolete.
   247 2006-04-27  yi luo  <luoyi.ly@gmail.com>
   249 	* builds/win32/visualc/freetype.vcproj: Updated.
   251 2006-04-26  David Turner  <david@freetype.org>
   254 	* Version 2.2 released.
   255 	=======================
   258 	Tag sources with `VER-2-2-0'.
   260 2006-04-26  Werner Lemberg  <wl@gnu.org>
   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>.
   266 2006-04-21  David Turner  <david@freetype.org>
   268 	* include/freetype/ftincrem.h: Documentation updates.
   269 	(FT_Incremental_Interface): New typedef.
   271 	* include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
   272 	Documentation updates.
   274 	* include/freetype/freetype.h: Documentation update.
   275 	(FT_HAS_FAST_GLYPHS): Always set to 0.
   277 	* include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
   278 	Take an FT_Library argument instead of FT_Memory.
   280 	* src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
   282 2006-04-13  David Turner  <david@freetype.org>
   284 	* src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
   285 	superfluous code in the auto-fitter's loader.
   287 2006-04-05  Detlef Würkner  <TetiSoft@apg.lahn.de>
   289 	* builds/amiga/makefile, builds/amiga/makefile.os4,
   290 	builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
   292 2006-04-03  luoyi  <luoyi.ly@gmail.com>
   294 	* builds/compiler/intelc.mk (TE): New variable.
   295 	(ANSIFLAGS): Updated.
   297 2006-04-03  Werner Lemberg  <wl@gnu.org>
   299 	* builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
   300 	(CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
   301 	(.PHONY): Updated.
   303 	* configure.ac: Minor fixes to improve --help output.
   306 	* docs/PROBLEMS: New file.
   308 2006-04-01  David Turner  <david@freetype.org>
   310 	* docs/CHANGES: Updated.
   312 	* include/freetype/ftcache.h, include/freetype/config/ftheader.h:
   313 	Update documentation comments.
   315 2006-04-01  Werner Lemberg  <wl@gnu.org>
   317 	* builds/unix/install.mk (uninstall): Don't handle `cache'
   318 	directory which no longer exists.
   320 2006-03-29  Detlef Würkner  <TetiSoft@apg.lahn.de>
   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.
   326 2006-03-27  David Turner  <david@freetype.org>
   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.
   332 2006-03-26  Werner Lemberg  <wl@gnu.org>
   334 	* src/bdf/bdflib.c (ERRMSG4): New macro.
   335 	(_bdf_parse_glyphs): Handle invalid BBX values.
   337 	* include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
   338 	macro.
   340 2006-03-23  Werner Lemberg  <wl@gnu.org>
   342 	* docs/CHANGES: Updated.
   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'.
   352 	* src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
   353 	also.
   355 2006-03-23  David Turner <david@freetype.org>
   357 	Add FT_Get_SubGlyph_Info API to retrieve subglyph data.  Note that
   358 	we do not expose the FT_SubGlyphRec structure.
   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.
   365 	* src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
   368 	* src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
   369 	rsb_delta correctly in edge cases.
   371 2006-03-22  Werner Lemberg  <wl@gnu.org>
   373 	* src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
   374 	[!FTC_INLINE]: Compile conditionally.
   375 	* src/cache/ftccache.h: Updated.
   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.
   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.
   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.
   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.
   400 2006-03-22  Werner Lemberg  <wl@gnu.org>
   402 	* src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
   403 	Remove, unused.
   405 	* src/cache/ftccmap.h: Remove, unused.
   407 	* src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
   409 2006-03-21  Zhe Su  <james.su@gmail.com>
   411 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
   412 	algorithm.
   414 2006-03-21  Werner Lemberg  <wl@gnu.org>
   416 	* src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
   418 	* src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
   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.
   426 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
   427 	correctly.
   430 	* builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
   431 	README: s/2.1.10/2.2/.
   433 2006-03-21  David Turner  <david@freetype.org>
   435 	* src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
   436 	that crashes the auto-hinter (introduced by previous patch).
   438 2006-03-20  Werner Lemberg  <wl@gnu.org>
   440 	* builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
   441 	(FREETYPE_H): Updated.
   443 	* src/cache/rules.mk (CACHE_H_DIR): Remove.
   444 	(CACHE_DRV_H): Updated.
   446 2006-03-20  David Turner  <david@freetype.org>
   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...
   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.
   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.
   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.
   469 	* builds/unix/install.mk (install): Don't install headers from
   470 	$(CACHE_H).
   471 	Remove `freetype/cache' from the target directory.
   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.
   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').
   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.
   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.
   502 	* builds/win32/visualc/freetype.dsp: Update project file, add
   503 	missing base source files (ftstroke.c, ftxf86.c, etc.).
   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.
   512 	* src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
   513 	hinting for italic/oblique fonts.
   517 	* src/truetype/ttpload.c, src/truetype/ttpload.h
   518 	(tt_face_get_device_metrics): Change second argument to `FT_UInt'.
   520 2006-03-06  David Turner  <david@freetype.org>
   522 	* src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
   523 	Mozilla/FireFox print preview in Ubuntu Hoary.
   525 2006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>
   527 	* src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
   528 	return error when size == 0.
   530 2006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>
   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.
   536 2006-02-28  David Turner  <david@freetype.org>
   538 	* Release candidate VER-2-2-0-RC4.
   539 	----------------------------------
   541 	* docs/CHANGES: Documentation updates.
   543 2006-02-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   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.
   549 2006-02-27  Werner Lemberg  <wl@gnu.org>
   551 	* include/freetype/cache/ftccache.h
   552 	[FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
   553 	ftc_node_done.
   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.
   559 2006-02-27  David Turner  <david@freetype.org>
   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.
   565 	* src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
   566 	it needs to be exported for rogue clients.
   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).
   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'.
   576 	(cff_index_access_element): Ignore invalid entries in index files.
   578 2006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>
   580 	* src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
   581 	or height is 0.
   583 2006-02-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   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.
   591 2006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>
   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.
   601 	* src/autofit/afloader.c (af_loader_load_g): The vertical metrics
   602 	are not scaled.
   604 2006-02-26  Werner Lemberg  <wl@gnu.org>
   606 	* docs/release: Minor additions and clarifications.
   608 	* docs/CHANGES: Updated to reflect many fixes for backwards
   609 	compatibility.  Still incomplete.
   611 2006-02-26  David Turner  <david@freetype.org>
   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).
   617 2006-02-25  Werner Lemberg  <wl@gnu.org>
   619 	* devel/ftoption.h: Synchronize with
   620 	include/freetype/config/ftoption.h.
   622 	* src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
   624 2006-02-25  David Turner  <david@freetype.org>
   626 	Fix compiler warnings as well as C++ compilation problems.
   627 	Add missing prototypes.
   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).
   636 	* src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
   637 	gcc.
   639 	* builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
   640 	FT_INTERNAL_STREAM_H.
   642 	* src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
   644 	* include/freetype/config/ftheader.h (FT_PFR_H): New macro.
   646 	* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
   647 	define for C++.
   649 	* include/freetype/internal/services/svotval.h: Don't include
   650 	FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
   652 	* include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
   654 	* src/gzip/ftgzip.c: Include FT_GZIP_H.
   656 	* src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
   658 	* src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
   660 2006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
   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'.
   667 2006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
   669 	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
   670 	documentation.
   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.
   679 2006-02-24  David Turner  <david@freetype.org>
   681 	* Release candidate VER-2-2-0-RC3.
   682 	----------------------------------
   684 	* src/cache/ftcbasic.c: Correct compatibility hack bug.
   686 2006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
   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.
   694 2006-02-23  David Turner  <david@freetype.org>
   696 	Two BDF patches from Debian libfreetype6 for 2.1.10.
   698 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
   699 	glyphs.
   700 	Fix a problem with large encodings.
   703 	Fix binary compatibility issues for gnustep-back (GNUstep backend
   704 	module) which still crashes under Sarge.
   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.
   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.
   717 2006-02-23  Chia-I Wu  <b90201047@ntu.edu.tw>
   719 	* include/freetype/ftoutln.h (enum FT_Orientation): New value
   720 	`FT_ORIENTATION_NONE'.
   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'.
   729 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
   730 	use bitmap's embolden routine when the outline one failed.
   732 2006-02-22  Chia-I Wu  <b90201047@ntu.edu.tw>
   734 	* modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
   735 	compatibility.
   737 	* src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
   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.)
   743 	* src/truetype/ttpload.c (tt_face_load_hdmx,
   744 	tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
   745 	actually used.
   747 2006-02-21  David Turner  <david@freetype.org>
   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.
   753 	The FT_Get_Module_Flags API was removed consequently.
   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.
   760 	* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
   761 	New macro.
   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.
   767 	* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
   768 	(tt_service_truetype_engine): New service structure.
   769 	(tt_services): Register it.
   771 	* include/freetype/internal/services/svtteng.h: New file.
   774 	* src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
   775 	embedded bitmaps from being correctly listed and used.
   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.
   785 	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
   786 	character advances.
   788 2006-02-20  David Turner  <david@freetype.org>
   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.
   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.
   798 	* src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
   799 	FT_Size_Request.
   800 	(sfnt_interface): Updated.
   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.
   806 	* src/sfnt/ttsbit.h: Updated.
   808 2006-02-17  David Turner  <david@freetype.org>
   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.
   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).
   824 2006-02-17  Werner Lemberg  <wl@gnu.org>
   826 	* devel/ftoption.h: Synchronize with
   827 	include/freetype/config/ftoption.h.
   829 2006-02-16  David Turner  <david@freetype.org>
   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.
   835 	* include/freetype/config/ftoption.h
   836 	(FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
   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.
   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:
   863 	  ft_stub_set_char_sizes
   864 	  ft_stub_set_pixel_sizes
   866 	Rename the following internal functions to provide the old function
   867 	names as stubs:
   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
   880 2006-02-15  Chia-I Wu  <b90201047@ntu.edu.tw>
   882 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
   883 	unused `max_points' and `max_contours'.
   885 	* src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
   886 	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
   888 	* include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
   889 	`max_components'.
   891 	* src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
   892 	`loadSize' and `loadStack'.
   894 	* src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
   895 	src/sfnt/ttload.c (tt_face_load_maxp): Update.
   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.
   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!)
   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.
   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'.
   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.
   921 	* src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
   922 	from `eblc'.
   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.
   928 2006-02-14  Werner Lemberg  <wl@gnu.org>
   930 	* include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
   931 	documentation that negative strength values are possible.
   932 	Give an example call.
   934 	* include/freetype/freetype.h (FT_GlyphSlotRec): Improve
   935 	documentation of `outline' field.
   937 	* src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
   938 	* src/sfnt/sfdriver.c: Include ttmtx.h.
   940 	* src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
   942 2006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>
   944 	* src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
   946 2006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>
   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'.
   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.
   956 	* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
   957 	error when FT_CONFIG_OPTION_INCREMENTAL is defined.
   959 2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
   961 	Clean up the SFNT_Interface.  In this final pass, `load_hmtx' is
   962 	split from `load_hhea'.
   964 	* include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
   965 	src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
   967 	* src/sfnt/sfobjs.c (sfnt_load_face): Update.
   969 2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
   971 	* src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
   972 	code...
   974 2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
   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'.
   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'.
   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'.
   991 	* src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
   993 2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
   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.
  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'.
  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.
  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'.
  1015 	* include/freetype/internal/fttrace.h: New trace: ttmtx.
  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.
  1022 	* src/cff/cffgload.c, src/cff/cffobjs.c: Update.
  1024 	* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
  1026 2006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>
  1028 	* src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
  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'.
  1034 2006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>
  1036 	* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
  1037 	to enable autofit CJK script support.  (#define'd by default.)
  1039 	* src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
  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.
  1046 	* src/autofit/afcjk.c: Minor updates due to the above three changes.
  1048 	* docs/TODO, docs/CHANGES: Updated.
  1050 2006-02-09  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  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.
  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.
  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.
  1070 	* src/autofit/afloader.c (af_loader_load_g): Respect
  1071 	AF_SCALER_FLAG_NO_ADVANCE.
  1073 2006-02-09  Werner Lemberg  <wl@gnu.org>
  1075 	* src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
  1077 2006-02-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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).
  1083 2006-02-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  1088 2006-02-01  Werner Lemberg  <wl@gnu.org>
  1090 	* src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
  1091 	* src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
  1093 	* builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
  1094 	change from 2006-01-31).
  1095 	(TOP_DIR, OBJ_DIR): Update.
  1097 	* builds/unix/install.mk (install): Fix path for ftmodule.h.
  1099 	* Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
  1100 	`?=' where appropriate.
  1102 	* builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
  1103 	builds/win32/w32-dev.mk (TOP_DIR): Removed.  Defined elsewhere.
  1105 2006-01-31  Werner Lemberg  <wl@gnu.org>
  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.
  1111 	This change also fixes the creation of ftmodule.h; it now depends on
  1112 	`modules.cfg' and thus is rebuilt only if necessary.
  1114 	Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
  1115 	default location.
  1117 	* modules.cfg: New file.
  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.
  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'.
  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.
  1151 	* Makefile (USE_MODULES): Remove.  Update all users.
  1152 	(OBJ_DIR): Define it here.
  1154 	* src/*/module.mk: Change
  1156 	    make_module_list: foo
  1157 	    foo: ...
  1159 	to
  1161 	    FTMODULE_H_COMMANDS += FOO
  1162 	    define FOO
  1163 	    ...
  1164 	    endef
  1166 	in all files.  `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
  1168 	* src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
  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.
  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).
  1181 	* builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
  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.
  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.
  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.
  1194 	* builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
  1195 	development header files.
  1196 	Don't define PLATFORM.
  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.
  1202 	* include/freetype/config/ftmodule.h: Add comments -- this file is
  1203 	no longer used if FreeType is built with GNU make.
  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.
  1209 	* modules.txt: Removed.  Contents included in `modules.cfg'.
  1212 	* include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
  1213 	FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
  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.
  1219 2006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>
  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).
  1226 2006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  1232 	* src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
  1234 	* include/freetype/freetype.h (FT_FaceRec): Mention that fields may
  1235 	be changed after file attachment.
  1237 2006-01-28  Werner Lemberg  <wl@gnu.org>
  1239 	* src/*/module.mk (.PHONY): Add.
  1241 2006-01-27  Werner Lemberg  <wl@gnu.org>
  1243 	* README, docs/FTL.TXT: Fix email address for bug reports.
  1244 	Other minor formatting.
  1246 	* devel/ftoption.h: Synchronize with
  1247 	include/freetype/config/ftoption.h.
  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.
  1253 	* src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
  1254 	renderer classes.
  1256 2006-01-27  David Turner  <david@freetype.org>
  1258 	* builds/unix/configure.ac: Fix build problem on Cygwin.
  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.
  1264 	* src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
  1265 	if the warp hinter isn't active (it shouldn't, still experimental).
  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.
  1272 	Note also that current Make-based build system still compiles the
  1273 	modules though.
  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.
  1280 	NOTE: Disable macro to use the memory debugger -- this will be fixed
  1281 	      later!
  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.
  1288 	* builds/win32/visualc/freetype.dsp: Updating project file to
  1289 	define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
  1290 	compilation.
  1293 	* builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
  1294 	macro FT2_BUILD_LIBRARY when compiling the library.
  1296 	* include/freetype/config/ftheader.h: Remove inclusions of internal
  1297 	headers except if the macro FT2_BUILD_LIBRARY is defined.
  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.
  1305 	* (many files): Fix compiler warnings.
  1306 	Various minor reorganizations.
  1309 	* src/cff/cffload.c (cff_font_done): Don't free static array
  1310 	`subfonts'.
  1312 	* src/otvalid/otvcommn.c (otv_ClassDef_validate),
  1313 	src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
  1316 	Get rid of writable static variables (i.e., the string table) in
  1317 	afmparse, and fix compilation in FT2_MULTI mode.
  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.
  1324 	* src/psaux/psconv.c: Include psconv.h.
  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.
  1330 2006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  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.
  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.
  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.
  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.
  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.
  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/.
  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.
  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.
  1382 2006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>
  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'.
  1387 2006-01-22  Werner Lemberg  <wl@gnu.org>
  1389 	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
  1390 	`texinfo' CVS module at savannah.gnu.org.
  1392 2006-01-21  Werner Lemberg  <wl@gnu.org>
  1394 	* src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
  1396 	* src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
  1397 	to avoid compiler warnings.
  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.
  1404 2006-01-20  David Turner  <david@freetype.org>
  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.
  1410 	* src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
  1411 	New function.
  1412 	* src/autofit/afhints.h: Updated.
  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.
  1420 	* src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
  1421 	Isolate code for adjusting metrics.
  1423 	* src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
  1424 	default).
  1426 	* src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
  1428 	* src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
  1430 	* src/autofit/Jamfile (_sources): Add afwarp.
  1432 2006-01-19  David Turner  <david@freetype.org>
  1434 	* src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
  1435 	that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
  1437 2006-01-19  Brian Weed  <bw@imaginengine.com>
  1439 	* builds/win32/visualc/freetype.dsp: Updated.
  1441 2006-01-17  Werner Lemberg  <wl@gnu.org>
  1443 	Use pscmap service in CFF module.
  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.
  1454 	* src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
  1455 	return value.
  1458 	* src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
  1459 	to avoid compiler warnings regarding type-punning.
  1461 2006-01-16  Chia-I Wu  <b90201047@ntu.edu.tw>
  1463 	* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
  1464 	implement an AFM parser.
  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.
  1471 	* src/psaux/psobjs.c: Use functions from psconv.c.
  1473 	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
  1474 	`AFM_Parser' to the `psaux' service.
  1476 	* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
  1477 	those new files.
  1479 	* src/tools/test_afm.c: A test program for AFM parser.
  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.
  1485 	* include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
  1486 	macro.
  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.
  1492 	* include/freetype/freetype.h, src/base/ftobjs.c: New API
  1493 	`FT_Get_Track_Kerning'.
  1495 2006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
  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/.
  1502 	* docs/CHANGES: Mention that vertical metrics are synthesized for
  1503 	fonts not having this info.
  1505 2006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  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.
  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).
  1519 2006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  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.
  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.
  1539 2006-01-14  Chia-I Wu  <b90201047@ntu.edu.tw>
  1541 	* docs/CHANGES: Mention the size selection change.
  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.
  1548 	* src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
  1549 	`pixel_height' is used for nominal height.
  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.
  1555 2006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>
  1557 	Introduce new size selection interface.
  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'.
  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.
  1568 	* src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
  1569 	`FT_Request_Size'.
  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'.
  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.
  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.
  1589 2006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>
  1591 	* include/freetype/internal/sfnt.h (SFNT_Interface): New method
  1592 	`load_strike_metrics' used to load the strike's metrics.
  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'.
  1597 	* src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
  1599 	* src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
  1600 	nominal size unless it is obviously incorrect.
  1602 	* include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
  1603 	FNT driver.
  1605 2006-01-12  Werner Lemberg  <wl@gnu.org>
  1607 	Prepare use of pscmap service within CFF module.
  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.
  1628 	* src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
  1629 	ps_unicodes_char_next, pscmaps_interface): Updated.
  1631 	* include/freetype/internal/t1types.h (T1_FaceRec): Updated.
  1633 	* src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
  1634 	(T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
  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.
  1641 	* src/type42/t42types.h (T42_FaceRec): Updated.
  1643 2006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  1649 2006-01-11  Werner Lemberg  <wl@gnu.org>
  1651 	Fix Savannah bug #15056 and use pscmap service in psaux module.
  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.
  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.
  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.
  1676 	* src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
  1677 	(T1_CMapUnicode): Use PS_Unicodes structure.
  1679 2006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  1685 	* src/base/ftmac.c: Heavy change to build without deprecated Carbon
  1686 	functions on Tiger.
  1688 	* builds/unix/configure.ac: Add options and autochecks for Carbon
  1689 	functions availabilities, for MacOS X.
  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.
  1697 	* builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
  1698 	macros to avoid unavailable functions.
  1700 	* builds/mac/README: Detailed notes on function availabilities.
  1702 	* docs/CHANGES: Notes about (possible) incompatibilities.
  1704 2006-01-08  Werner Lemberg  <wl@gnu.org>
  1706 	* docs/CHANGES: Updated.
  1708 2006-01-08  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
  1710 	* include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
  1711 	declaration.
  1713 	* src/base/ftobjs.c (FT_Module_Get_Flags): New function.
  1715 2006-01-07  Werner Lemberg  <wl@gnu.org>
  1717 	* src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
  1718 	`bitmaps'.  Reported by Yu Lei <yulei0@gmail.com>.
  1720 	* src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
  1721 	Reported by Niels Boldt <nielsboldt@gmail.com>.
  1723 2005-12-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1725 	* src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
  1726 	MPW compiler.
  1728 2005-12-23  David Turner  <david@freetype.org>
  1730 	* Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
  1731 	refdoc' works correctly to generate the API reference in
  1732 	`docs/reference'.
  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.
  1738 	* src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
  1739 	forces auto-hinting.
  1741 	* freetype/freetype.h: Updating the documentation for
  1742 	FT_LOAD_TARGET_XXX and FT_Render_Mode values.
  1744 2005-12-23  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  1754 	* doc/CHANGES: Mention the changes.
  1756 2005-12-17  Chia-I Wu  <b90201047@ntu.edu.tw>
  1758 	* src/truetype/ttinterp.c (Update_Max): Set current size of buffer
  1759 	correctly (so that memory debug system won't panic).
  1761 2005-12-16  Chia-I Wu  <b90201047@ntu.edu.tw>
  1763 	* include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
  1764 	src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
  1766 	* src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
  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.
  1772 	* doc/CHANGES: Mention the changes.
  1774 2005-12-13  David Turner  <david@freetype.org>
  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.
  1781 	Note that this doesn't force auto-hinting for all fonts, however.
  1783 	* src/autofit/afhints.c (af_glyph_hints_reload): Don't set
  1784 	scaler_fiags here but...
  1785 	(af_glyph_hints_rescale): Here.
  1787 	* src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
  1788 	hinting for `light' hinting mode.
  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).
  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.
  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.
  1804 	At the moment, this is still experimental, the BDF table format
  1805 	isn't cast into stone yet.
  1807 	* include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
  1808 	macro.
  1810 	* include/freetype/config/ftstdlib.h (ft_memchr): New macro.
  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'.
  1816 	* include/freetype/ttags.h (TTAG_BDF): New macro.
  1818 	* src/sfnt/Jamfile (_sources): Add ttbdf.
  1820 	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
  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.
  1828 	* src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
  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.
  1834 	* src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
  1836 2005-12-07  Werner Lemberg  <wl@gnu.org>
  1838 	* src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
  1839 	* src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
  1841 2005-12-06  Chia-I Wu  <b90201047@ntu.edu.tw>
  1843 	* src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
  1844 	initialized twice.
  1845 	size->strike_index is not initialized.
  1847 2005-12-02  Taek Kwan(TK) Lee  <taeklee@gmail.com>
  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'.
  1852 2005-11-30  Werner Lemberg  <wl@gnu.org>
  1854 	* docs/CHANGES: Document ftdump's `-v' option.
  1855 	Document latest charmap code changes.
  1857 	* src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
  1858 	s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
  1860 2005-11-30  Chia-I Wu  <b90201047@ntu.edu.tw>
  1862 	* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
  1863 	tt_cmap12_char_map_binary): Fix compiler warnings.
  1865 2005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  1871 	* src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
  1872 	(TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
  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.
  1893 2005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>
  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).
  1904 2005-11-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
  1906 	* builds/amiga/smakefile: Adjusted the compiler options
  1907 	to the current sources, now really builds the gxvalid, gzip
  1908 	and psnames modules.
  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.
  1914 2005-11-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  1922 2005-11-21  Håvard Wall  <haavardw@ifi.uio.no>
  1924 	* src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
  1925 	memory leak.
  1927 2005-11-21  Werner Lemberg  <wl@gnu.org>
  1929 	* src/sfnt/ttload.c (sfnt_init): Add tracing message.
  1931 2005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  1936 2005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>
  1938 	* src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
  1939 	before loading the table directory.
  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.
  1945 2005-11-20  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  1954 2005-11-18  Werner Lemberg  <wl@gnu.org>
  1956 	* src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
  1957 	of metrics instead of aborting.  Patch suggested by Derek Noonburg.
  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.
  1963 	* docs/CHANGES: Mention scaling bug.
  1965 2005-11-18  susuzki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  1974 2005-11-18  Chia-I Wu  <b90201047@ntu.edu.tw>
  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/.
  1981 2005-11-17  Detlef Würkner  <TetiSoft@apg.lahn.de>
  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/.
  1988 2005-11-17  Detlef Würkner  <TetiSoft@apg.lahn.de>
  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).
  1995 2005-11-17  Werner Lemberg  <wl@gnu.org>
  1997 	Add vertical metrics support to OpenType CFF outlines.  Based on a
  1998 	patch from Mike Moening <MikeM@RetekSolutions.com>.
  2000 	* src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
  2001 	(cff_slot_load): Use cff_face_get_vertical_metrics.
  2003 	* docs/CHANGES: Updated.
  2005 2005-11-17  Chia-I Wu  <b90201047@ntu.edu.tw>
  2007 	* src/base/ftcalc.c (FT_MulTo64): Commented out.
  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/.
  2019 	* builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
  2020 	too.
  2022 2005-11-15  David Turner  <david@freetype.org>
  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.
  2028 	* src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
  2029 	structure copy each time.
  2031 2005-11-11  Werner Lemberg  <wl@gnu.org>
  2033 	* src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
  2034 	(FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
  2036 	* src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
  2037 	(FT_Div64by32, FT_Sqrt32): Commented out.  Unused.
  2039 	* include/freetype/internal/ftcalc.h (SQRT_32): Removed.  Unused.
  2040 	(FT_Sqrt32): Commented out.  Unused.
  2042 	* include/freetype/cache/ftccache.h:
  2043 	s/ftc_node_destroy/FTC_Node_Destroy/.
  2045 	* src/cache/ftccback.h (ftc_node_destroy): New declaration.
  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.
  2051 	* src/cache/ftcmanag.c: Include ftccback.c.
  2053 2005-11-10  Werner Lemberg  <wl@gnu.org>
  2055 	* src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
  2056 	Comment out.  Unused.
  2058 	* builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
  2060 2005-11-10  Christian Biesinger  <cbiesinger@web.de>
  2062 	* builds/beos/beos.mk: Call beos-def.mk before anything else to
  2063 	define the separator.
  2065 	* builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
  2067 2005-11-07  Werner Lemberg  <wl@gnu.org>
  2069 	* src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
  2070 	table available'.  From Sergey Tolstov <stolstov@esri.com>.
  2072 2005-11-03  Ville Syrjälä  <syrjala@sci.fi>
  2074 	* src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
  2076 2005-11-02  Werner Lemberg  <wl@gnu.org>
  2078 	Make compiling instructions in docs/CUSTOMIZE work again.
  2080 	* builds/unix/unix-cc.in (CPPFLAGS): New variable.
  2081 	(CFLAGS): Don't include @CPPFLAGS@.
  2082 	* builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
  2084 2005-10-28  David Turner  <david@freetype.org>
  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.
  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.
  2093 	* builds/exports.mk: New file.
  2095 	* builds/freetype.mk: Include exports.mk.
  2096 	(dll): New target.
  2097 	(clean_project_dos): Fix rule.
  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.
  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.
  2110 	* Jamfile (GenExportSymbols): Updated.
  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.
  2118 	* src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
  2119 	(FT_MulFix): Performance optimizations.
  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.
  2128 	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
  2129 	to 0 to not call `AdjustPoints' every time.
  2132 	* src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
  2133 	FT_Angle_Diff.
  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.
  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.
  2152 2005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  2158 	* builds/mac/ftlib.prj.xml: Added.
  2159 	Generated by Metrowerks CodeWarrior 9.0.
  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.
  2167 	* builds/mac/ascii2mpw.py: Added.
  2168 	Python script to make MPW makefile from skeleton.
  2170 	* builds/mac/README: Updated.
  2171 	Almost rewritten to use new files.
  2173 2005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  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.
  2179 2005-10-27  Werner Lemberg  <wl@gnu.org>
  2181 	* include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
  2182 	Obsolete.
  2184 2005-10-25  Werner Lemberg  <wl@gnu.org>
  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>.
  2190 2005-10-23  Werner Lemberg  <wl@gnu.org>
  2192 	* src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
  2193 	C++.
  2195 2005-10-21  David Turner  <david@freetype.org>
  2197 	* src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
  2198 	Another realloc memory counting bug fix.
  2200 	* src/tools/Jamfile: Add missing file.
  2202 	* src/lzw/Jamfile: Fix incorrect source file reference.
  2204 2005-10-20  David Turner  <david@freetype.org>
  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.
  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.
  2215 2005-10-20  Chia-I Wu  <b90201047@ntu.edu.tw>
  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.
  2222 2005-10-19  Chia-I Wu  <b90201047@ntu.edu.tw>
  2224 	* src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
  2225 	be invalid when FT_LOAD_NO_SCALE is set.
  2227 2005-10-17  David Turner  <david@freetype.org>
  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).
  2233 	* src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
  2234 	Remove compiler warning.
  2236 2005-10-16  David Turner  <david@freetype.org>
  2238 	* src/tools/apinames.c: Add new tool to extract public API function
  2239 	names from header files.
  2241 2005-10-05  Werner Lemberg  <wl@gnu.org>
  2243 	Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
  2244 	a hinting engine of its own.
  2246 	* include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
  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.
  2254 	* docs/CHANGES: Document it.
  2256 2005-09-27  Werner Lemberg  <wl@gnu.org>
  2258 	* builds/unix/freetype2.m4: Add license exception so that the file
  2259 	can be used in any other autoconf script.
  2261 2005-09-26  David Turner  <david@freetype.org>
  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.
  2267 2005-09-23  David Turner  <david@freetype.org>
  2269 	* src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
  2270 	prevented internal hint mode bitflags from being computed correctly.
  2272 	* src/base/Jamfile: Adding src/base/ftgxval.c.
  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).
  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!
  2290 	* src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
  2291 	`get_sfnt' and `load_sfnt' module interfaces.
  2293 2005-09-22  Werner Lemberg  <wl@gnu.org>
  2295 	* docs/CHANGES: Mention SING Glyphlet support.
  2297 2005-09-22  David Turner  <david@freetype.org>
  2299 	* src/base/Jamfile: Disable compilation of ftgxval module
  2300 	temporarily.
  2302 2005-09-19  David Somers  <dsomers@omz13.com>
  2304 	* 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'.
  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.
  2319 	Further information on the SING Glyphlet format can be found at:
  2321 	  http://www.adobe.com/products/indesign/sing_gaiji.html
  2323 	* include/freetype/ttags.h (TTAG_SING, TTAG_META): New macros for
  2324 	the OpenType tables `SING' and `META'.  These two tables are used in
  2325 	SING Glyphlet Format fonts.
  2327 2005-09-09  Werner Lemberg  <wl@gnu.org>
  2329 	* src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
  2330 	FT_FACE_FLAG_KERNING which has been commented out erroneously.
  2332 	* docs/CHANGES: Document it.
  2334 2005-09-05  Werner Lemberg  <wl@gnu.org>
  2336 	Fixes for `make multi' and using C++ compiler.
  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.
  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.
  2361 	* src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
  2362 	gxv_bsln_parts_fmt1_validate): Improve trace messages.
  2364 	* src/gxvalid/gxvfeat.c: Split off predefined registry stuff to...
  2365 	* src/gxvalid/gxvfeat.h: New file.
  2367 	* src/gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
  2368 	message.
  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.
  2380 	* src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
  2381 	with FT_LOCAL_DEF.
  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.
  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.
  2397 	* src/gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
  2398 	with FT_LOCAL_DEF.
  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.
  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.
  2411 	* src/gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
  2413 	* src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
  2414 	with FT_LOCAL_DEF.
  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.
  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.
  2432 	* src/gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
  2433 	with FT_LOCAL_DEF.
  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.
  2439 	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
  2440 	gxv_morx_validate): Improve trace message.
  2442 	* src/gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
  2443 	warnings.
  2444 	(gxv_opbd_validate): Improve trace message.
  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.
  2451 	* src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
  2452 	parameter.  Update all callers.
  2453 	(gxv_trak_validate): Improve trace message.
  2455 	* rules.mk (GXV_DRV_H): Add gxvfeat.h.
  2457 2005-09-01  Werner Lemberg  <wl@gnu.org>
  2459 	* src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
  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.
  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.
  2472 2005-08-31  Werner Lemberg  <wl@gnu.org>
  2474 	* src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
  2476 	* src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
  2478 	* src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
  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.
  2489 2005-08-30  Werner Lemberg  <wl@gnu.org>
  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.
  2499 2005-08-29  Werner Lemberg  <wl@gnu.org>
  2501 	* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
  2502 	a preliminary section with some explanations about user allocation.
  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.
  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.
  2513 2005-08-28  George Williams  <gww@silcom.com>
  2515 	* src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
  2516 	(load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
  2518 2005-08-25  J. Ali Harlow  <ali@avrc.city.ac.uk>
  2520 	* builds/unix/freetype2.in (CFlags): Add missing directory.
  2522 2005-08-24  Werner Lemberg  <wl@gnu.org>
  2524 	* docs/CHANGES: Mention gxvalid module.
  2526 2005-08-23  Werner Lemberg  <wl@gnu.org>
  2528 	* src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
  2529 	render mode properly.  Reported by chris@dokein.co.uk.
  2531 2005-08-23  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2533 	Add gxvalid module to validate TrueType GX/AAT tables.
  2535 	Modifications on existing files:
  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.
  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.
  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.
  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.
  2556 	New files on existing directories:
  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.
  2563 	New files under src/gxvalid/:
  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.
  2578 2005-08-21  Werner Lemberg  <wl@gnu.org>
  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.
  2584 2005-08-20  Chia I Wu  <b90201047@ntu.edu.tw>
  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.
  2590 	* src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
  2591 	valid before loading outline glyph.
  2593 	* src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
  2595 2005-08-20  Werner Lemberg  <wl@gnu.org>
  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.
  2601 2005-08-20  Masatake YAMATO  <jet@gyve.org>
  2603 	* src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
  2604 	of ft_setjmp.
  2606 2005-08-19  Werner Lemberg  <wl@gnu.org>
  2608 	* src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
  2609 	warnings.
  2611 2005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>
  2613 	* src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
  2614 	messages.
  2616 2005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>
  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.
  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.
  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.
  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.
  2662 2005-08-08  Werner Lemberg  <wl@gnu.org>
  2664 	* docs/INSTALL.ANY: Updated.
  2666 2005-08-05  Werner Lemberg  <wl@gnu.org>
  2668 	* src/cff/cffgload.c (cff_builder_close_contour),
  2669 	src/psaux/psobjs.c (t1_builder_close_contour): Protect against
  2670 	zero `outline' pointer.
  2672 	* src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
  2673 	`loader' address.
  2675 2005-08-03  Werner Lemberg  <wl@gnu.org>
  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.
  2681 2005-08-02  Werner Lemberg  <wl@gnu.org>
  2683 	* src/otvalid/otvcommn.h: Remove dead code.
  2685 2005-07-31  Chia I Wu  <b90201047@ntu.edu.tw>
  2687 	* src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
  2688 	functions.
  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.
  2699 2005-07-26  Chia I Wu  <b90201047@ntu.edu.tw>
  2701 	* src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
  2702 	computations and clean up.
  2704 	* src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
  2705 	internal copy of metrics.
  2707 2005-07-12  Werner Lemberg  <wl@gnu.org>
  2709 	* include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
  2710 	Reported by Xerxes.
  2712 2005-07-04  Werner Lemberg  <wl@gnu.org>
  2714 	* include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
  2715 	Reported by Brett Hutley.
  2717 2005-06-30  David Turner  <david@freetype.org>
  2719 	* src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
  2720 	Removing compiler warnings (Visual C++ /W4).
  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).
  2727 	* Jamfile (FT2_COMPONENTS): Include otvalid (again).
  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'.
  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.
  2741 2005-06-20  Chia I Wu  <b90201047@ntu.edu.tw>
  2743 	* include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
  2744 	ft_glyphslot_grid_fit_metrics.
  2746 	* src/truetype/ttgload.c (compute_glyph_metrics): Use
  2747 	ft_glyphslot_grid_fit_metrics.
  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.
  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.
  2758 2005-06-16  Chia I Wu  <b90201047@ntu.edu.tw>
  2760 	* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
  2761 	halved.
  2763 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
  2764 	strength.
  2765 	Don't increase slot->advance.y.
  2767 2005-06-16  Werner Lemberg  <wl@gnu.org>
  2769 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
  2770 	(FREETYPE_PATCH): Set to 0.
  2772 	* builds/unix/configure.ac (version_info): Set to 9:9:3.
  2773 	Currently, we are still binary compatible.
  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/.
  2779 	* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
  2780 	s/2.1.9/2.1.10/.
  2782 	* docs/CHANGES, docs/VERSION.DLL: Updated.
  2784 	* ChangeLog: Split off older entries into...
  2785 	* ChangeLog.20, ChangeLog.21: These new files.
  2787 2005-06-15  Kirill Smelkov  <kirr@mns.spb.ru>
  2789 	The next release will be 2.2.0, so don't worry about source code
  2790 	backwards compatibility.
  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.
  2799 2005-06-15  Chia I Wu  <b90201047@ntu.edu.tw>
  2801 	* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
  2802 	to make glyphs centered vertically.
  2804 	* src/truetype/ttgload.c (compute_glyph_metrics): Compute
  2805 	vertBearingY to make glyphs centered vertically.
  2806 	Fix some bugs in vertical metrics:
  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 is no need to adjust `top'.
  2813 2005-06-15  Werner Lemberg  <wl@gnu.org>
  2815 	* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
  2816 	in sync with OTV_OPTIONAL_OFFSET.  Reported by YAMATO Masatake.
  2818 2005-06-13  Werner Lemberg  <wl@gnu.org>
  2820 	* docs/release: Update.
  2822 ----------------------------------------------------------------------------
  2824 Copyright 2005, 2006, 2007, 2008 by
  2825 David Turner, Robert Wilhelm, and Werner Lemberg.
  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.
  2834 Local Variables:
  2835 version-control: never
  2836 coding: utf-8
  2837 End:

mercurial