Sun Mar  2 14:16:17 2003  Owen Taylor  <otaylor@redhat.com>

	+ fontconfig.spec.in: Improvements from Red Hat spec file.

	+ {fc-lang,fc-cache,fc-list}/Makefile.am: Add man pages.

	+ docs/*.sgml: SGML fixes.

Sat Mar  1 17:28:53 PST 2003	keithp
	+ Ok, so the ChangeLog is a bit out of date

	+ Lots of bugs fixed; most are in bugzilla, the
	  biggest problems were in cache management where
	  Owen discovered the library would lose badly when
	  combining fonts-cache and ~/.fonts-cache data

	+ Converted from autoconf to automake.  This after
	  getting patches accepted into libtool to allow
	  the '-version-number' argument which lets
	  packages set version numbers explicitly rather
	  than the roundabout libtool way

	+ Converted documentation to SGML using the docbook
	  DTD.  Now .txt and .html documents are installed
	  in /usr/share/doc/fontconfig and there's no
	  man page.  Perhaps a man version can be written
	  at some point.

Sat Aug 31 15:21:22 PDT 2002	keithp
	+ Xrender and Xft had several bugs related to
	  rendering manually placed or poly-face text

	+ Added more complete memory tracing in fontconfig
	  Checked with (patched) mozilla and found no leaks

	+ Updated Latin orthographies by comparing those from
	  evertype.com with those from eki.ee.  Tried to make
	  sensible choices, including chars that occured in both
	  and leaving some optional chars out that occured only
	  in one.

Mon Aug 26 16:33:04 PDT 2002	keithp
	+ Owen discovered that FcLangSetHasLang wasn't actually
	  checking the language set.

Mon Aug 26 13:37:23 PDT 2002	keithp
	+ Append a version number to cache filenames

Thu Aug 22 11:36:18 PDT 2002	keithp

	+ Add "contains" and "not_contains" operators and elements to
	  font configuration
	  
	+ Changed semantics of eq operator for LangSets to check for
	  FcLangEqual so that any match will do
	
	+ FcFontList was using FcConfigCompareValue (...FcOpEqual) instead
	  of FcValueEqual to check for identical values when inserting into
	  the results.  This broke when the above semantic change was made,
	  now it uses FcValueEqual which is "more correct" in any case.

Thu Aug 22 00:32:29 PDT 2002	keithp

	+ Reimplement FC_LANG as new datatype.  Lists of strings
	  was consuming over a megabyte of memory for 401 fonts.

	+ Freeze patterns loaded from cache files.  This shares
	  common value lists and common patterns which saves
	  considerable memory.

	+ Change the denotation of 'constant' charsets to use special
	  ref value instead of separate boolean.

	+ Clean up leak tracing stuff, found several unannoted alloc/free
	  calls

Tue Aug 20 16:17:37 PDT 2002	keithp

	+ Fix memory leak when parsing matrices from XML

Mon Aug 19 11:57:27 PDT 2002	keithp

	+ Fix autoconf files to pass FONTCONFIG_PATH on
	  compile line so that ${prefix} gets substituted
	  correctly.

	+ Use getc_unlocked/putc_unlocked on systems that
	  provide them to avoid damage done to stdio by posix

	+ Eliminate FC_PATTERN and FcTypePattern in favor of
	  an extended api for FcConfigSubstitute which takes
	  both the font and the pattern.

	+ Add 'sans serif' alias for 'sans-serif' as some apps
	  can't handle hyphens in family names

	+ Eliminate pretense of support for libxml2

	+ Comment origins of Han orthographies

Tue Jul 30 18:37:09 PDT 2002	keithp

	+ Add binding property to edit element so that strong
	  binding values may be inserted by the config file.
	  The default remains weak.

Sun 28 Jul 04:16:55 PDT 2002	keithp

	+ Tagged release candidate 1 in the CVS tree and
	  placed fcpackage.rc1.tar.gz for distribution

Thu Aug  1 08:55:08 PDT 2002	keithp

	+ Fixed autoconf builds to always specify install
	  target files (for BSD).  Also fixed to
	  define FONTCONFIG_PATH in config.h so that
	  nonstandard installs will actually work.
