Home | History | Annotate | Download | only in freetype
      1 2006-05-12  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
     71 
     72 	Put version information into the configure script.  Reported by Paul
     73 	Watson <pwatson (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
    127 
    128 	* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
    129 
    130 2006-05-02  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 (a] imbens.nl>.
    221 
    222 2006-04-29  Werner Lemberg  <wl (a] gnu.org>
    223 
    224 	Further C library abstraction.  Based on a patch from
    225 	msn2 (a] 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 (a] 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 (a] gmail.com>
    248 
    249 	* builds/win32/visualc/freetype.vcproj: Updated.
    250 
    251 2006-04-26  David Turner  <david (a] 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 (a] gnu.org>
    261 
    262 	* src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
    263 	FT_PtrDist for `delta'.  Reported by Cline PILLET
    264 	<Celine.Pillet (a] Tagginfo.com>.
    265 
    266 2006-04-21  David Turner  <david (a] 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 (a] 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 Wrkner  <TetiSoft (a] 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 (a] gmail.com>
    293 
    294 	* builds/compiler/intelc.mk (TE): New variable.
    295 	(ANSIFLAGS): Updated.
    296 
    297 2006-04-03  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 Wrkner  <TetiSoft (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gmail.com>
    410 
    411 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
    412 	algorithm.
    413 
    414 2006-03-21  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
    825 
    826 	* devel/ftoption.h: Synchronize with
    827 	include/freetype/config/ftoption.h.
    828 
    829 2006-02-16  David Turner  <david (a] 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 (a] 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 (a] 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 (a] ntu.edu.tw>
    943 
    944 	* src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
    945 
    946 2006-02-14  Chia-I Wu  <b90201047 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
   1074 
   1075 	* src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
   1076 
   1077 2006-02-09  suzuki toshiya  <mpsuzuki (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
   1238 
   1239 	* src/*/module.mk (.PHONY): Add.
   1240 
   1241 2006-01-27  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] imaginengine.com>
   1438 
   1439 	* builds/win32/visualc/freetype.dsp: Updated.
   1440 
   1441 2006-01-17  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
   1705 
   1706 	* docs/CHANGES: Updated.
   1707 
   1708 2006-01-08  Huw D M Davies  <h.davies1 (a] 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 (a] gnu.org>
   1716 
   1717 	* src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
   1718 	`bitmaps'.  Reported by Yu Lei <yulei0 (a] gmail.com>.
   1719 
   1720 	* src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
   1721 	Reported by Niels Boldt <nielsboldt (a] gmail.com>.
   1722 
   1723 2005-12-28  suzuki toshiya  <mpsuzuki (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 Wrkner  <TetiSoft (a] 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 (a] 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  Hvard Wall  <haavardw (a] 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 (a] gnu.org>
   1928 
   1929 	* src/sfnt/ttload.c (sfnt_init): Add tracing message.
   1930 
   1931 2005-11-21  Chia-I Wu  <b90201047 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 Wrkner  <TetiSoft (a] 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 Wrkner  <TetiSoft (a] 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 (a] gnu.org>
   1996 
   1997 	Add vertical metrics support to OpenType CFF outlines.  Based on a
   1998 	patch from Mike Moening <MikeM (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
   2068 
   2069 	* src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
   2070 	table available'.  From Sergey Tolstov <stolstov (a] esri.com>.
   2071 
   2072 2005-11-03  Ville Syrjl  <syrjala (a] sci.fi>
   2073 
   2074 	* src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
   2075 
   2076 2005-11-02  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
   2180 
   2181 	* include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
   2182 	Obsolete.
   2183 
   2184 2005-10-25  Werner Lemberg  <wl (a] 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 (a] sj.co.uk>.
   2189 
   2190 2005-10-23  Werner Lemberg  <wl (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
   2294 
   2295 	* docs/CHANGES: Mention SING Glyphlet support.
   2296 
   2297 2005-09-22  David Turner  <david (a] freetype.org>
   2298 
   2299 	* src/base/Jamfile: Disable compilation of ftgxval module
   2300 	temporarily.
   2301 
   2302 2005-09-19  David Somers  <dsomers (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] avrc.city.ac.uk>
   2519 
   2520 	* builds/unix/freetype2.in (CFlags): Add missing directory.
   2521 
   2522 2005-08-24  Werner Lemberg  <wl (a] gnu.org>
   2523 
   2524 	* docs/CHANGES: Mention gxvalid module.
   2525 
   2526 2005-08-23  Werner Lemberg  <wl (a] gnu.org>
   2527 
   2528 	* src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
   2529 	render mode properly.  Reported by chris (a] dokein.co.uk.
   2530 
   2531 2005-08-23  suzuki toshiya  <mpsuzuki (a] 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 (a] 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 (a] 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 (a] 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 (a] hiroshima-u.ac.jp.
   2600 
   2601 2005-08-20  Masatake YAMATO  <jet (a] 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 (a] gnu.org>
   2607 
   2608 	* src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
   2609 	warnings.
   2610 
   2611 2005-08-16  Chia I Wu  <b90201047 (a] 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 (a] 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 (a] gnu.org>
   2663 
   2664 	* docs/INSTALL.ANY: Updated.
   2665 
   2666 2005-08-05  Werner Lemberg  <wl (a] 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 (a] 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 (a] gnu.org>
   2682 
   2683 	* src/otvalid/otvcommn.h: Remove dead code.
   2684 
   2685 2005-07-31  Chia I Wu  <b90201047 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] gnu.org>
   2819 
   2820 	* docs/release: Update.
   2821 
   2822 ----------------------------------------------------------------------------
   2823 
   2824 Copyright 2005-2018 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:
   2838