"Fossies" - the Fresh Open Source Software Archive

Member "firefox-69.0.1/modules/freetype2/ChangeLog.22" (17 Sep 2019, 99819 Bytes) of package /linux/www/firefox-69.0.1.source.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "ChangeLog.22": 68.0.2_vs_69.0.

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