2005-04-27  Keith Packard  <keithp@keithp.com>

	* README:
	* debian/changelog:
	Update date to real 2.3.2 release date.
	Fix change attributions
	
2005-04-27  Keith Packard  <keithp@keithp.com>

	* configure.in:
	Bump so revision for 2.3.2
	* fc-cache/fc-cache.c: (scanDirs):
	Fix a few minor leaks in error cases.

2005-04-23  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* debian/changelog:
	* fontconfig/fontconfig.h:
	Update for version 2.3.2

2005-04-21  Keith Packard  <keithp@keithp.com>

	* debian/fontconfig.postinst:
	Don't force bitmap font enable in default
	configuration; allows users to override this in
	~/.fonts.conf
	* debian/po/cs.po:
	* debian/po/da.po:
	* debian/po/de.po:
	* debian/po/es.po:
	* debian/po/fr.po:
	* debian/po/ja.po:
	* debian/po/nl.po:
	* debian/po/pt.po:
	* debian/po/pt_BR.po:
	* debian/po/templates.pot:
	* debian/po/tr.po:
	* debian/po/zh_CN.po:
	Updated translations
	
	* fc-cache/fc-cache.c: (main):
	Destroy font configuration on exit to help valgrind
	
	* fonts.conf.in:
	* src/fcfreetype.c: (FcSfntNameTranscode), (FcFreeTypeCharIndex),
	(FcFreeTypeCheckGlyph):
	Use own transcoding routines in preference to iconv
	which appears to have leaks in some translators.
	Call iconv_close after using iconv (oops).
	
	Prefer unicode encoding of Euro char as some
	fonts mis-encode Euro in other ones.

	Must fetch bitmap glyphs to get width values
	to check for monospace/dual-width fonts.

2005-04-13  Ross Burton  <ross@burtonini.com>

	* src/fcpat.c:
	Check that a pattern isn't already frozen in FcPatternFreeze.

2005-03-31  Ross Burton  <ross@burtonini.com>

	* src/fclist.c:
	* src/fcmatch.c:
	* src/fcpat.c:
	Run all FcPattern objects through FcObjectStaticName, so that
	compares can be done on pointers instead of strings (#2659)

2005-03-17  Tor Lillqvist  <tml@novell.com>

	* src/fontconfig.def.in: Add the .dll to the dll name.

2005-03-10  Keith Packard  <keithp@keithp.com>

	* debian/README.Debian:
	Update to reflect configuration changes
	* debian/changelog:
	* debian/fontconfig.postinst:
	Fix Autohint vs Autohinter mistake
	* debian/fontconfig.templates:
	Adopt changes from Josselin Mouette for configuration descriptions
	Update debian to version 2.3.1-2

2005-03-08  Keith Packard  <keithp@keithp.com>

	* debian/changelog:
	* debian/rules:
	Update debian for 2.3.1

2005-03-09  Tor Lillqvist  <tml@novell.com>

	* fontconfig-zip.in: Get the DLL from "bin" where modern libtools
	put it, not "lib".

	* src/fccfg.c (FcConfigFileExists): Check also drive letter
	prefix on Win32.

2005-03-08  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update for 2.3.1

2005-03-05  Keith Packard  <keithp@keithp.com>

	* src/fcfreetype.c: (addtag), (FcFontCapabilities):
	Include space and remove numbers from valid script tags.
	This ensures that tags like 'lao ' work while rejecting
	those which have any digits.
	Eliminate a spurious debugging variable (len)

2005-03-05  Keith Packard  <keithp@keithp.com>

	* src/fcfreetype.c: (addtag), (GetScriptTags),
	(FcFontCapabilities):
	Rework GSUB/GPOS script parsing to survive broken fonts.
	Thanks for the broken font go to Manish Singh

2005-03-05  Keith Packard  <keithp@keithp.com>

	Josselin Mouette:
	* debian/changelog:
	* debian/control:
	* debian/fontconfig.config:
	* debian/fontconfig.templates:
	* debian/rules:
		Include 2.3 release information in changelog
		Add Josselin Mouette as an Uploader
		Set hinting_type to low priority configuration option
		
	Manish Singh:
	* debian/fontconfig.postinst:
		yes_bitmaps.conf -> yes-bitmaps.conf
		
	Funda Wang:
	* src/fcfreetype.c:
		Johap -> Johab
		
2005-03-02  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* conf.d/Makefile.am:
	* conf.d/autohint.conf:
	* conf.d/no-sub-pixel.conf:
	* conf.d/sub-pixel.conf:
	* conf.d/unhinted.conf:
	* debian/autohint.conf:
	* debian/fontconfig.install:
	* debian/fontconfig.postinst:
	* debian/fontconfig.templates:
	* debian/no-sub-pixel.conf:
	* debian/unhinted.conf:
	Move debian-specific conf file examples upstream.
	
	Sub-pixel configuration examples must smash subpixel value
	as Xft always sets it from X.

	Change sub-pixel rendering debconf descriptions from
	Enable/Disable to Always/Never.

2005-03-02  Keith Packard  <keithp@keithp.com>

	* .cvsignore:
	* conf.d/.cvsignore:
	* doc/.cvsignore:
	Ignore more build detritus

	* Makefile.am:
	Add debian package construction stuff.
	
	* config/config.guess:
	* config/config.sub:
	Update to newer versions of these tools
	
	* doc/Makefile.am:
	Get library manuals to build again (we love automake).
	
	* debian/README.Debian:
	* debian/autohint.conf:
	* debian/changelog:
	* debian/compat:
	* debian/control:
	* debian/copyright:
	* debian/fontconfig-udeb.install:
	* debian/fontconfig.config:
	* debian/fontconfig.defoma:
	* debian/fontconfig.dirs:
	* debian/fontconfig.install:
	* debian/fontconfig.postinst:
	* debian/fontconfig.postrm:
	* debian/fontconfig.templates:
	* debian/libfontconfig1-dev.install:
	* debian/libfontconfig1.install:
	* debian/local.conf.md5sum:
	* debian/no-sub-pixel.conf:
	* debian/po/POTFILES.in:
	* debian/po/cs.po:
	* debian/po/da.po:
	* debian/po/de.po:
	* debian/po/es.po:
	* debian/po/fr.po:
	* debian/po/ja.po:
	* debian/po/nl.po:
	* debian/po/pt.po:
	* debian/po/pt_BR.po:
	* debian/po/templates.pot:
	* debian/po/tr.po:
	* debian/po/zh_CN.po:
	* debian/rules:
	* debian/unhinted.conf:
	Update debian build system to switch maintainers and
	deal with 2.3 functionality

2005-03-01  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update for 2.3.0

2005-03-01  Keith Packard  <keithp@keithp.com>

	* doc/Makefile.am:
	Generate and install PDF versions of the manuals

	* doc/fcpattern.fncs:
	Fix formatting
	
	* doc/fcstring.fncs:
	Add missing exported functions, fix data types
	
	* doc/fontconfig-devel.sgml:
	Add missing pattern elements.
	
	* doc/fontconfig-user.sgml:
	Add missing pattern elements.  Document conf.d usage,
	clarify available orthography list.  Fix some config file
	attributes.  Complete list of constants.
	
	* fontconfig/fontconfig.h:
	Mark FC_SOURCE deprecated.
	
	* src/fcfreetype.c: (FcFreeTypeQuery):
	Don't set FC_SOURCE any longer.

2005-02-28  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* conf.d/Makefile.am:
	* conf.d/README:
	* conf.d/no-bitmaps.conf:
	* conf.d/sub-pixel.conf:
	* conf.d/yes-bitmaps.conf:
	* configure.in:
	Create prototype /etc/fonts/conf.d directory with a few
	sample configuration files.
	Deprecate use of local.conf for local customizations in favor of
	this directory based scheme which is more easily integrated into
	installation systems.
	
	* src/fcname.c:
	Tag FC_EMBOLDEN as a boolean variable

2005-02-10  Keith Packard  <keithp@keithp.com>

	reviewed by: pborelli@katamail.com

	* src/fcdir.c: (FcFileScanConfig):
	Free patterns from fonts which are rejected by configuration
	(bug #2518)

2005-01-28  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update for version 2.2.99

2005-01-28  Keith Packard  <keithp@keithp.com>

	* README:
	Add a few pointers (#2284, #2285)

2005-01-28  Keith Packard  <keithp@keithp.com>

	* src/fcint.h:
	* src/fcname.c: (FcNameBool):
	* src/fcxml.c: (FcTypeName), (FcTypecheckValue), (FcTypecheckExpr),
	(FcTestCreate), (FcEditCreate), (FcConfigLexBool), (FcParseBool),
	(FcParseAlias), (FcParseInclude), (FcParseTest), (FcParseEdit):
	Polite typechecking for test and edit expressions.  Helps
	catch errors in the font configuration. (bug 229)

2005-01-15  Alan Coopersmith <alan.coopersmith@sun.com>

	reviewed by: Keith Packard <keithp@keithp.com>

	* configure.in:
	Have --with-expat set EXPAT_CFLAGS (bug 2278)

2005-01-13  Keith Packard  <keithp@keithp.com>

	* doc/fontconfig-user.sgml:
	Add SEE ALSO section (bug 2085)
	
2005-01-13  J. Ali Harlow <ali@juiblex.co.uk>

	reviewed by: Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* configure.in:
	* doc/Makefile.am:
	* fc-case/Makefile.am:
	* fc-glyphname/Makefile.am:
	* fc-lang/Makefile.am:
	* src/fontconfig.def.in:
	Cross compiling fixes (bug 280)

2005-01-13  Keith Packard  <keithp@keithp.com>

	* fonts.conf.in:
	Update blanks list (Closes bug 86)

2005-01-04  Keith Packard  <keithp@keithp.com>

	* src/fccache.c: (FcCacheFontSetAdd):
	Verify that every font pattern loaded from cache has
	both FC_FILE and FC_FAMILY entries.
	Attempt to fix bug #2219.

2004-12-29  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update for version 2.2.98

2004-12-29  Keith Packard  <keithp@keithp.com>

	* fontconfig/fontconfig.h:
	Document ASCII limitations of Fc character conversion macros
	* src/fcstr.c: (FcStrCaseWalkerLong), (FcStrDowncase):
	Fix off-by-one error in utf-8 case walking code.
	Add FcStrDowncase (useful for testing case conversion functions)

2004-12-29  Keith Packard  <keithp@keithp.com>

	* .cvsignore:
	* fc-case/.cvsignore:
	clean up CVS ignore lists
	* fc-lang/iso-3166.txt:
	Add territory database
	
2004-12-29   Tor Andersson <tor.andersson@gmail.com>

	Reviewed by: Keith Packard
	
	* fc-lang/ko.orth:
	Remove Han characters from Korean orthography

2004-12-29  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	Reorder utility programs to make sure fc-case is run before fc-lang
	as fc-lang uses fcstr.c which uses fccase.h
	* fonts.conf.in:
	Fix broken XML

2004-12-29  Keith Packard  <keithp@keithp.com>

	* fonts.conf.in:
	Adopt some RedHat suggestions for standard font configuration.

	* Makefile.am:
	* configure.in:
	* fc-case/CaseFolding.txt:
	* fc-case/Makefile.am:
	* fc-case/fc-case.c: (panic), (addFold), (ucs4_to_utf8),
	(utf8_size), (addChar), (foldExtends), (case_fold_method_name),
	(dump), (parseRaw), (caseFoldReadRaw), (main):
	* fc-case/fccase.tmpl.h:
	Add new helper program 'fc-case' to construct case folding
	tables from standard Unicode CaseFolding.txt file
	
	* src/fcint.h:
	* src/fclist.c: (FcListValueHash):
	* src/fcstr.c: (FcStrCaseWalkerInit), (FcStrCaseWalkerLong),
	(FcStrCaseWalkerNext), (FcStrCaseWalkerNextIgnoreBlanks),
	(FcStrCmpIgnoreCase), (FcStrCmpIgnoreBlanksAndCase),
	(FcStrHashIgnoreCase), (FcStrIsAtIgnoreBlanksAndCase),
	(FcStrIsAtIgnoreCase), (FcStrStrIgnoreCase):
	Re-implement case insensitive functions with Unicode
	aware versions (including full case folding mappings)

2004-12-13  Keith Packard  <keithp@keithp.com>

	reviewed by: Owen Taylor <otaylor@redhat.com>

	* src/fcmatch.c: (FcFontSetSort):
	I changed FcFontSetSort to respect the generic aliases better
	in the face of language matching.
	
	What I did was to ammend the strict sort order used by FcFontSort so
	that it 'satisfies' the language specified in the pattern by locating
	the best matching font supporting each pattern language and then
	ignores language in the remaining fonts for purposes of matching.

	So, when asking for 'sans:lang=en', you'll get an English font first,
	and then the remaining fonts sorted with respect to the 'sans' alias
	alone -- pushing Kochi fonts ahead of other English-supporting Han fonts.

2004-12-10  Jakub Pavelek <jakub.pavelek@nokia.com>

	reviewed by: Keith Packard  <keithp@keithp.com>

	* fontconfig/fontconfig.h:
	* fonts.conf.in:

	Configuration changes to request synthetic emboldening of
	fonts.  The actual emboldening code will live in Xft.

2004-12-09  John Thacker <thacker@math.cornell.edu>

	reviewed by: Keith Packard  <keithp@keithp.com>

	* fc-lang/ru.orth:
	
	Currently Russian (ru) requires 0406 and 0456 (І and і), but these
	were eliminated in Russian in 1918 in favor of 0418 and 0438 (И and
	и), and don't even appear in KOI8-R.  (The hypothesis that they
	don't appear in KOI8-R due to their similarity with Latin I and i is
	eliminated by their presence in KOI8-U.)  I have a couple of fonts
	with Russian support that don't have the letter.

	Therefore, 0406 and 0456 should be removed from or commented out of
	ru.orth

2004-12-06  michael meeks <mmeeks@novell.com>

	Reviewed by: Keith Packard  <keithp@keithp.com>

	* src/fcinit.c: (FcMemReport):
	* src/fcint.h:
	* src/fclist.c: (FcObjectSetAdd):
	* src/fcpat.c: (FcValueListEntCreate), (FcPatternBaseFreeze),
	(FcPatternInsertElt), (FcPatternEqual), (FcObjectStaticName):
	* src/fcxml.c: (FcParsePatelt):
	memoize strings and share a single copy for all uses.  Note that
	this could be improved further by using statically allocated blocks
	and gluing multiple strings together, but I'm basically lazy.
	In my environment with 800 font files, I get a savings of about 90KB.

2004-12-06  Keith Packard  <keithp@keithp.com>

	* COPYING:
	* Makefile.am:
	* config/Makedefs.in:
	* configure.in:
	* doc/edit-sgml.c:
	* doc/fcatomic.fncs:
	* doc/fcblanks.fncs:
	* doc/fccharset.fncs:
	* doc/fcconfig.fncs:
	* doc/fcconstant.fncs:
	* doc/fcfile.fncs:
	* doc/fcfontset.fncs:
	* doc/fcfreetype.fncs:
	* doc/fcinit.fncs:
	* doc/fcmatrix.fncs:
	* doc/fcobjectset.fncs:
	* doc/fcobjecttype.fncs:
	* doc/fcpattern.fncs:
	* doc/fcstring.fncs:
	* doc/fcstrset.fncs:
	* doc/fcvalue.fncs:
	* doc/fontconfig-devel.sgml:
	* doc/fontconfig-user.sgml:
	* doc/func.sgml:
	* doc/version.sgml.in:
	* fc-cache/Makefile.am:
	* fc-cache/fc-cache.c:
	* fc-glyphname/Makefile.am:
	* fc-glyphname/fc-glyphname.c:
	* fc-glyphname/fcglyphname.tmpl.h:
	* fc-lang/Makefile.am:
	* fc-lang/aa.orth:
	* fc-lang/ab.orth:
	* fc-lang/af.orth:
	* fc-lang/am.orth:
	* fc-lang/ar.orth:
	* fc-lang/ast.orth:
	* fc-lang/ava.orth:
	* fc-lang/ay.orth:
	* fc-lang/az.orth:
	* fc-lang/az_ir.orth:
	* fc-lang/ba.orth:
	* fc-lang/bam.orth:
	* fc-lang/be.orth:
	* fc-lang/bg.orth:
	* fc-lang/bh.orth:
	* fc-lang/bho.orth:
	* fc-lang/bi.orth:
	* fc-lang/bin.orth:
	* fc-lang/bn.orth:
	* fc-lang/bo.orth:
	* fc-lang/br.orth:
	* fc-lang/bs.orth:
	* fc-lang/bua.orth:
	* fc-lang/ca.orth:
	* fc-lang/ce.orth:
	* fc-lang/ch.orth:
	* fc-lang/chm.orth:
	* fc-lang/chr.orth:
	* fc-lang/co.orth:
	* fc-lang/cs.orth:
	* fc-lang/cu.orth:
	* fc-lang/cv.orth:
	* fc-lang/cy.orth:
	* fc-lang/da.orth:
	* fc-lang/de.orth:
	* fc-lang/dz.orth:
	* fc-lang/el.orth:
	* fc-lang/en.orth:
	* fc-lang/eo.orth:
	* fc-lang/es.orth:
	* fc-lang/et.orth:
	* fc-lang/eu.orth:
	* fc-lang/fa.orth:
	* fc-lang/fc-lang.c:
	* fc-lang/fc-lang.man:
	* fc-lang/fclang.tmpl.h:
	* fc-lang/fi.orth:
	* fc-lang/fj.orth:
	* fc-lang/fo.orth:
	* fc-lang/fr.orth:
	* fc-lang/ful.orth:
	* fc-lang/fur.orth:
	* fc-lang/fy.orth:
	* fc-lang/ga.orth:
	* fc-lang/gd.orth:
	* fc-lang/gez.orth:
	* fc-lang/gl.orth:
	* fc-lang/gn.orth:
	* fc-lang/gu.orth:
	* fc-lang/gv.orth:
	* fc-lang/ha.orth:
	* fc-lang/haw.orth:
	* fc-lang/he.orth:
	* fc-lang/hi.orth:
	* fc-lang/ho.orth:
	* fc-lang/hr.orth:
	* fc-lang/hu.orth:
	* fc-lang/hy.orth:
	* fc-lang/ia.orth:
	* fc-lang/ibo.orth:
	* fc-lang/id.orth:
	* fc-lang/ie.orth:
	* fc-lang/ik.orth:
	* fc-lang/io.orth:
	* fc-lang/is.orth:
	* fc-lang/iso639-2:
	* fc-lang/it.orth:
	* fc-lang/iu.orth:
	* fc-lang/ja.orth:
	* fc-lang/ka.orth:
	* fc-lang/kaa.orth:
	* fc-lang/ki.orth:
	* fc-lang/kk.orth:
	* fc-lang/kl.orth:
	* fc-lang/km.orth:
	* fc-lang/kn.orth:
	* fc-lang/ko.orth:
	* fc-lang/kok.orth:
	* fc-lang/ks.orth:
	* fc-lang/ku.orth:
	* fc-lang/ku_ir.orth:
	* fc-lang/kum.orth:
	* fc-lang/kv.orth:
	* fc-lang/kw.orth:
	* fc-lang/ky.orth:
	* fc-lang/la.orth:
	* fc-lang/lb.orth:
	* fc-lang/lez.orth:
	* fc-lang/lo.orth:
	* fc-lang/lt.orth:
	* fc-lang/lv.orth:
	* fc-lang/mg.orth:
	* fc-lang/mh.orth:
	* fc-lang/mi.orth:
	* fc-lang/mk.orth:
	* fc-lang/ml.orth:
	* fc-lang/mn.orth:
	* fc-lang/mo.orth:
	* fc-lang/mr.orth:
	* fc-lang/mt.orth:
	* fc-lang/my.orth:
	* fc-lang/nb.orth:
	* fc-lang/nds.orth:
	* fc-lang/ne.orth:
	* fc-lang/nl.orth:
	* fc-lang/nn.orth:
	* fc-lang/no.orth:
	* fc-lang/ny.orth:
	* fc-lang/oc.orth:
	* fc-lang/om.orth:
	* fc-lang/or.orth:
	* fc-lang/os.orth:
	* fc-lang/pl.orth:
	* fc-lang/ps_af.orth:
	* fc-lang/ps_pk.orth:
	* fc-lang/pt.orth:
	* fc-lang/rm.orth:
	* fc-lang/ro.orth:
	* fc-lang/ru.orth:
	* fc-lang/sa.orth:
	* fc-lang/sah.orth:
	* fc-lang/sco.orth:
	* fc-lang/se.orth:
	* fc-lang/sel.orth:
	* fc-lang/sh.orth:
	* fc-lang/si.orth:
	* fc-lang/sk.orth:
	* fc-lang/sl.orth:
	* fc-lang/sm.orth:
	* fc-lang/sma.orth:
	* fc-lang/smj.orth:
	* fc-lang/smn.orth:
	* fc-lang/sms.orth:
	* fc-lang/so.orth:
	* fc-lang/sq.orth:
	* fc-lang/sr.orth:
	* fc-lang/sv.orth:
	* fc-lang/sw.orth:
	* fc-lang/syr.orth:
	* fc-lang/ta.orth:
	* fc-lang/te.orth:
	* fc-lang/tg.orth:
	* fc-lang/th.orth:
	* fc-lang/ti_er.orth:
	* fc-lang/ti_et.orth:
	* fc-lang/tig.orth:
	* fc-lang/tk.orth:
	* fc-lang/tl.orth:
	* fc-lang/tn.orth:
	* fc-lang/to.orth:
	* fc-lang/tr.orth:
	* fc-lang/ts.orth:
	* fc-lang/tt.orth:
	* fc-lang/tw.orth:
	* fc-lang/tyv.orth:
	* fc-lang/ug.orth:
	* fc-lang/uk.orth:
	* fc-lang/ur.orth:
	* fc-lang/uz.orth:
	* fc-lang/ven.orth:
	* fc-lang/vi.orth:
	* fc-lang/vo.orth:
	* fc-lang/vot.orth:
	* fc-lang/wa.orth:
	* fc-lang/wen.orth:
	* fc-lang/wo.orth:
	* fc-lang/xh.orth:
	* fc-lang/yap.orth:
	* fc-lang/yi.orth:
	* fc-lang/yo.orth:
	* fc-lang/zh_cn.orth:
	* fc-lang/zh_hk.orth:
	* fc-lang/zh_mo.orth:
	* fc-lang/zh_sg.orth:
	* fc-lang/zh_tw.orth:
	* fc-lang/zu.orth:
	* fc-list/Makefile.am:
	* fc-list/fc-list.c:
	* fc-match/Makefile.am:
	* fc-match/fc-match.1:
	* fc-match/fc-match.c:
	* fontconfig/fcfreetype.h:
	* fontconfig/fcprivate.h:
	* fontconfig/fontconfig.h:
	* src/fcatomic.c:
	* src/fcblanks.c:
	* src/fccache.c:
	* src/fccfg.c:
	* src/fccharset.c:
	* src/fcdbg.c:
	* src/fcdefault.c:
	* src/fcdir.c:
	* src/fcfreetype.c:
	* src/fcfs.c:
	* src/fcinit.c:
	* src/fcint.h:
	* src/fclang.c:
	* src/fclist.c:
	* src/fcmatch.c:
	* src/fcmatrix.c:
	* src/fcname.c:
	* src/fcpat.c:
	* src/fcstr.c:
	* src/fcxml.c:
	Change files from ISO-Latin-1 to UTF-8

2004-12-04  Keith Packard  <keithp@keithp.com>

	* INSTALL:
	Update links to new freedesktop.org locations
	* Makefile.am:
	Add uninstall-local to get rid of fonts.conf and local.conf if they
	match the distributed versions.  Fixes 'make distcheck'

2004-12-04  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Updates for version 2.2.97

2004-12-04  Owen Taylor  <otaylor@redhat.com>

	reviewed by: Keith Packard  <keithp@keithp.com>

	* fc-cache/fc-cache.c: (main):
	Sleep for two seconds before exiting to make sure timestamps
	for future changes have distinct mod times in the file system.
	Bug #1982.
	* fc-lang/pa.orth:
	Add Punjabi orthography.  Bug #1671.

2004-12-04  Keith Packard  <keithp@keithp.com>

	* fonts.conf.in:
	Just remove the FC_FONTDATE -- it has locale issues and
	annoys redhat multi-arch installs.  Now that all X fonts are
	included without prejudice, the chances of the date being at
	all interesting are rather limited.  Bug #505.
	* src/Makefile.am:
	Add copyright and license

2004-12-04  Keith Packard  <keithp@keithp.com>

	* configure.in:
	Change default set of fonts to include all of
	/usr/X11R6/lib/X11/fonts (or wherever the X fonts are located).
	* doc/fontconfig-user.sgml:
	Document new <include>directory-name</include> semantics
	* fonts.conf.in:
	add <include ignore_missing="yes">conf.d</include>
	* local.conf:
	Add selectfont to ignore bitmap fonts, add comment for
	selectfont which accepts bitmap fonts.
	* src/fcdir.c:
	* src/fcint.h:
	* src/fcxml.c: (FcConfigParseAndLoadDir), (FcConfigParseAndLoad):
	Allow <include> configuration elements to reference directories.
	Parse and load all files of the form [0-9]* in sorted order.

2004-12-04  Keith Packard  <keithp@keithp.com>

	* autogen.sh:
	Report command line for $srcdir/configure accurately.
	Bug #212.

2004-12-04  Keith Packard  <keithp@keithp.com>

	* src/fcfreetype.c: (FcFreeTypeQuery):
	Check for non-empty face->family_name and face->style_name
	before using those for the font.  Empty names match everything.
	Bug #210.

2004-12-04  Keith Packard  <keithp@keithp.com>

	* configure.in:
	* fontconfig/fontconfig.h:
	* src/fcfreetype.c: (FcFreeTypeQuery):
	* src/fcname.c:
	Create FC_FONTFORMAT from FT_Get_X11_Font_Format function where
	available.  This provides font file format information (BDF, Type 1,
	PCF, TrueType) for each font.  Closes #109.

2004-12-04  Daniel Glassey <danglassey@ntlworld.com>

	reviewed by: Keith Packard  <keithp@keithp.com>

	* doc/fontconfig-user.sgml:
	Fix typo.
	
	* fontconfig/fontconfig.h:
	* src/fcfreetype.c: (FcFreeTypeQuery), (addtag), (compareulong),
	(GetScriptTags), (FcFontCapabilities):
	* src/fcname.c:
	Add detection for font capabilities (bug #105)

2004-12-04  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	Move existing fonts.conf to fonts.conf.bak
	
	* configure.in:
	Add detection of iconv
	
	* doc/fcpattern.fncs:
	* doc/fontconfig-devel.sgml:
	* doc/fontconfig-user.sgml:
	* fonts.dtd:
	Document new selectfont elements
	
	* fc-lang/nb.orth:
	Switch to UTF-8 in comment
	
	* fontconfig/fontconfig.h:
	* src/fcname.c:
	Add fullname, and family/style/fullname language entries
	
	* src/fccache.c: (FcCacheFontSetAdd):
	* src/fcdir.c: (FcFileScanConfig):
	Respect selectfont/*/glob
	
	* src/fcint.h:
	* src/fccfg.c: (FcConfigCreate), (FcConfigDestroy),
	(FcConfigCompareValue), (FcConfigPatternsAdd),
	(FcConfigPatternsMatch), (FcConfigAcceptFont):
	* src/fcxml.c: (FcElementMap), (FcVStackDestroy),
	(FcVStackPushPattern), (FcPopExpr), (FcParseAcceptRejectFont),
	(FcPopValue), (FcParsePatelt), (FcParsePattern), (FcEndElement):
	Add support for selectfont
	
	* src/fcfreetype.c: (FcSfntNameTranscode), (FcSfntNameLanguage),
	(FcStringInPatternElement), (FcFreeTypeQuery):
	Add multi-lingual family/style/fullname support
	
	* src/fclist.c: (FcListPatternMatchAny):
	Expose FcListPatternMatchAny (which selectfont/*/pattern uses)
	
	* src/fcpat.c: (FcPatternRemove), (FcPatternAppend),
	(FcObjectStaticName):
	Add new FcPatternRemove/FcPatternAppend.
	FcObjectStaticName stores computed pattern element names which
	are required to be static.
	
2004-09-09 "NAKAMURA Ken'ichi" <nakamura@sbp.fp.a.u-tokyo.ac.jp>

	reviewed by: keithp

	* Makefile.am:
	Remove spurious / after $(DESTDIR)

2004-06-30  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update for 2.2.96

2004-06-30  Keith Packard  <keithp@keithp.com>

	Provided by: Lubos Lunak <l.lunak@suse.cz>

	* src/fccfg.c: (FcConfigUptoDate):
	However FcConfigUptoDate() doesn't seem to work. See the attached
	patch.  First there's an obvious misplaced parenthesis making it
	return always false, and second, even this call fails to detect font
	changes (e.g.  adding a new font to 
	/usr/X11R6/lib/X11/fonts/truetype). The patch should fix that as
	well. The problem seems to be triggered by my fonts.conf specifying
	only /usr/X11R6/lib/X11/fonts , and therefore config->configDirs
	doesn't include subdirs, unlike config->fontDirs.

2004-06-03  Keith Packard  <keithp@keithp.com>

	* fontconfig/fontconfig.h:
	Remove comma at end of FcResult enum definition.

2004-05-29  Keith Packard  <keithp@keithp.com>

	* INSTALL:
	Add steps to md5sum release

2004-05-29  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update for 2.2.95

2004-05-29  Keith Packard  <keithp@keithp.com>

	* fontconfig/fontconfig.h:
	* src/fcmatch.c: (FcFontSetMatch):
	Add FcResultOutOfMemory to provide an accurate error when
	FcFontSetMatch fails in this way
	
	* src/fcfreetype.c:
	Make #warning about lacking various FreeType features indicate
	which version those features appeared so users know how to
	fix the problem (Thanks to Anton Tropashko)

2004-05-05  Keith Packard  <keithp@keithp.com>

	* src/fcfreetype.c: (FcFreeTypeCharSetAndSpacing):
	Replace MIN/MAX/ABS macros which happen to have come
	from FreeType with fontconfig-specific ones (FC_*)

2004-04-23  Keith Packard  <keithp@keithp.com>

	* INSTALL:
	Extend release preparation instructions to include
	notification and distribution steps

2004-04-23  Keith Packard  <keithp@keithp.com>

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update to 2.2.94 (2.2.93 shipped with broken libtool bits)

2004-04-23  Keith Packard  <keithp@keithp.com>

	* .cvsignore:
	Ignore a few more autotool files

2004-04-14  Keith Packard  <keithp@keithp.com>

	* INSTALL:
	Add instructions for doing a release
	
	* fontconfig.spec.in:
	clean up .spec file; perhaps this will be useful to somebody...

	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	Update to 2.2.93
	
	* fc-lang/fc-lang.c:
	Make 'scanopen' static so GCC doesn't whine about lacking prototype
	
	* fc-glyphname/Makefile.am:
	* fc-lang/Makefile.am:
	* fc-list/Makefile.am:
	* fc-match/Makefile.am:
	* src/Makefile.am:
	Add WARN_CFLAGS to pass -W flags for GCC systems
	
	* src/fcfreetype.c: (FcNoticeFoundry), (FcVendorMatch),
	(FcVendorFoundry), (FcGetPixelSize), (FcFreeTypeQuery):
	Change various char types around to match across
	function calls.
	Fixed bug in using available_sizes[i].height which 
	is in pixels, not 64ths of a pixel.

2004-03-06  Keith Packard  <keithp@keithp.com>

	* src/fcfreetype.c: (FcFreeTypeQuery):
	Force FC_FOUNDRY and FC_WIDTH to always be set so that
	matches looking for explicit values prefer exact matches

2004-03-02  Keith Packard  <keithp@keithp.com>

	Supplied by: mfabian@suse.de (Mike FABIAN)

	* src/fcfreetype.c: (FcFreeTypeQuery):
	Bug #260 fc-cache generates wrong spacing values for bitmap fonts
	Was using (strcmp (a,b)) instead of (!strcmp(a,b)).

2004-02-21  Manish Singh  <yosh@gimp.org>

	* fc-glyphname/fc-glyphname.c: (main):
	Cast strlen to int for printf, so we're 64-bit clean.

2004-02-11  Keith Packard  <keithp@keithp.com>

	* configure.in:
	* src/fcfreetype.c: (FcGetPixelSize):
	Ok, so I messed up the test for y_ppem.  Let's see if I
	got it right this time.

2004-02-10  Keith Packard  <keithp@keithp.com>

	* configure.in:
	* src/fcfreetype.c: (FcGetPixelSize):
	Pre-2.1.5 versions of FreeType didn't include y_ppem in the
	FT_Bitmap_Size record.  Add a configure.in test for this
	and change the code accordingly (using height instead).

2004-02-06  Keith Packard  <keithp@keithp.com>

	* fc-lang/nds.orth:
	Add Low Saxon orthography 
		(Kenneth Rohde Christiansen <kenneth@gnu.org>)
		
	* src/fccfg.c: (FcConfigNewestFile):
	Oops.  Left 'newest.set' unset, which would miscompute
	the newest file
	
	* src/fcfreetype.c: (FcGetPixelSize), (FcFreeTypeQuery),
	(FcFreeTypeCheckGlyph):
	Add FcGetPixelSize to extract correct pixel size from bdf/pcf
	font properties (which report the wrong value in current FreeType)

	Don't attempt to check for empty glyphs in non-scalable fonts; they
	have no outlines...

2004-02-01  Tor Lillqvist  <tml@iki.fi>

	* src/fccfg.c (FcConfigCreate): fontconfig, at least as used by
	GIMP and/or PangoFT2 on Windows, crashes when trying to save the
	cache if config->cache is NULL, which happens if FcConfigHome() is
	NULL. Guard against that by using the temp folder in that case.

2004-01-03  Roozbeh Pournader  <roozbeh@sharif.edu>

	* fc-lang/az_ir.orth:
	* fc-lang/ku_ir.orth:
	* fc-lang/ps_af.orth:
	* fc-lang/ps_pk.orth:
	Added orthographies for Iranian Azerbaijani and Kurdish, and Pashto
	(Afghan and Pakistani).
	* fc-lang/ur.orth:
	Updated Urdu orthography with real data.

2003-12-11  Carl Worth  <cworth@east.isi.edu>

	* fc-list/Makefile.am (man_MANS): Move man_MANS into the 'if
	USEDOCBOOK' block.

	* fc-cache/Makefile.am (man_MANS): Move man_MANS into the 'if
	USEDOCBOOK' block.
	(all-local): Remove excessive whitespace.

	* autogen.sh: Add 'set -e' to abort when any program fails,
	(avoids printing of 'now type make' after configure aborts).

2003-11-17   Eric Christopherson  <rakko@charter.net>

	reviewed by: Keith Packard  <keithp@keithp.com>

	* doc/Makefile.am:
	* fontconfig/fcfreetype.h:
	* src/fcfreetype.c:
	Switch to FreeType 2.1.7 style includes.  Bug #150.

2003-11-16  Noah Levitt  <nlevitt@columbia.edu>

	* fc-list/fc-list.sgml: Add some example usages.

2003-11-10  Roozbeh Pournader  <roozbeh@sharif.edu>

	* src/fcxml.c:
	Fixed a bug "FcStrtod" in handling some cases with two-byte decimal
	separators.

2003-10-27  Keith Packard  <keith@keithp.com>

	* configure.in:
	* fontconfig/fontconfig.h:
	Update to version 2.2.92

2003-10-27  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* configure.in:
	* doc/Makefile.am:
	* fc-cache/Makefile.am:
	* fc-glyphname/Makefile.am:
	* fc-lang/Makefile.am:
	* fc-list/Makefile.am:
	* fc-match/Makefile.am:
	* test/Makefile.am:
	* test/run-test.sh:
	Yet more cleanups to finish getting 'make distcheck' working
	This has been tested to ensure that it even works from a _build
	directory.

2003-10-26  Keith Packard  <keithp@keithp.com>

	* configure.in:
	* doc/Makefile.am:
	* fc-cache/Makefile.am:
	* fc-glyphname/Makefile.am:
	* fc-lang/Makefile.am:
	* fc-lang/fc-lang.c: (scanopen), (scan), (main):
	* fc-list/Makefile.am:
	* fc-match/Makefile.am:
	Attempts to fix 'make distcheck' work.  Things are
	progressing pretty well, but there are still failures
	long into the process dealing with docs (as always).
	
	The big changes here are mostly to make $(srcdir) != "."
	work correctly, fixing the docbook related sections and
	fc-lang were particularily tricky.  Docbook refuses to load
	system entities from anywhere other than where the original .sgml
	file was located, so no luck looking in "." for the
	configure-generated version.sgml and confdir.sgml files.

	fc-lang needed help finding .orth files; added a -d option
	to set the directory as the least evil of many options.

	Now to go use a faster machine and try and wring out the last
	issues.

2003-10-26  Keith Packard  <keithp@keithp.com>

	Tag version 2.2.91

2003-10-26  Keith Packard  <keithp@keithp.com>

	* doc/Makefile.am:
	Include confdir.sgml.in in EXTRA_DIST

2003-10-09  Josselin Mouette  <joss@debian.org>

        * fc-cache/fc-cache.sgml fc-cache/Makefile.am:
        * fc-list/fc-list.sgml fc-list/Makefile.am:
          Replace fc-cache and fc-list manpages with more detailed, SGML
          versions.

2003-09-23  Owen Taylor <otaylor@redhat.com>

	* fontconfig/fontconfig.h  src/fcdefault.c (FcDefaultSubstitute)
	src/fcname.c: Add a FC_HINT_STYLE key for patterns, with
	possible values HINT_NONE/HINT_SLIGHT/HINT_MEDIUM/HINT_FULL.
	(Bug #117)

2003-09-23  Owen Taylor <otaylor@redhat.com>

	* fc-lang/ka.orth: Remove Georgian capitals, they
	aren't used for normal writing. (Bug #116)

2003-09-06  Noah Levitt  <nlevitt@columbia.edu>

	* doc/fontconfig-devel.sgml:
	* doc/fontconfig-user.sgml:
	* fontconfig/fontconfig.h:
	* src/fcname.c:
	* src/fcfreetype.c (FcFreeTypeCharSetAndSpacing): Add new spacing
	value FC_DUAL (dual-width, as some CJK fonts). (bug #111)

	* src/fcfreetype.c (FcFreeTypeCharSetAndSpacing): When checking for
	monospace and dual-width fonts, allow roughly a 3% variance in the
	advances.

2003-08-31  Manish Singh  <yosh@gimp.org>

	* src/fccfg.c (FcConfigAppFontClear): Support passing NULL to
	use default config.

2003-08-15  Carl Worth  <cworth@isi.edu>

	* src/fcxml.c (FcEditDestroy): Fix leak of FcEdit.
	(FcPopExpr): Add comment about unhandled FcVStackGlob case.

	* src/fcpat.c (FcValueListEntDestroy): New function to support
	FcFini memory cleanup. Some statistics are not kept in
	synch. here.
	(FcValueListFreeze): Move hashTable outside this function so it
	can be accessed by FcValueListThawAll.
	(FcValueListThawAll): New function complements FcValueListFreeze.
	(FcPatternBaseFreeze): Move hashTable outside this function so it
	can be accessed by FcPatternBaseThawAll.
	(FcPatternBaseThawAll): New function complements
	FcPatternBaseFreeze.
	(FcPatternThawAll): New function complements FcPatternFreeze.

	* src/fcinit.c (FcFini): Add new FcFini to cleanup everything.

	* src/fccharset.c (FcCharLeafEntCreate): Save pointers to all
	allocated FcCharLeafEnt "blocks" so they can be freed later.
	(FcCharSetFreezeLeaf): Move hashTable outside this function so it
	can be accessed by FcCharSetThawAllLeaf.
	(FcCharSetThawAllLeaf): New function complements FcCharSetFreezeLeaf.
	(FcCharSetFreezeBase): Move hashTable outside this function so it
	can be accessed by FcCharSetThawAll.
	(FcCharSetThawAll): New function complements FcCharSetFreeze.

	* src/fccfg.c (FcSubstDestroy): Fix leak of outer FcSubst.
	(FcConfigDestroy): Fic leak of FcBlanks.

	* fc-list/fc-list.c (main): Fix leak of FcObjectSet.
	(main): Add call to FcFini when finished.

	* fc-glyphname/fc-glyphname.c: Mark several local functions as
	static. Add prototypes.

	* doc/fcinit.fncs: Add documentation for FcFini function.

	* doc/edit-sgml.c: Mark several local functions as static. Add
	prototypes.

	* doc/Makefile.am (DOC_MODULE): Fix "suspicious" lines.

2003-06-15  Tor Lillqvist  <tml@iki.fi>

	* test/run-test.sh (FONTCONFIG_FILE): Remove CRs from the out file
	before comparing (needed on Windows).

	* src/Makefile.am (install-libtool-import-lib): Fix cut&paste error.

2003-06-13  Tor Lillqvist  <tml@iki.fi>

	* fontconfig-zip.in (DEVZIP): Add share/doc directory. Add Fc*.3
	man pages.

	* configure.in: Set FC_DEFAULT_FONTS on Win32 to the
	WINDOWSFONTDIR token.

	* src/fontconfig.def.in: Move the LIBRARY and VERSION lines to the
	end, not to confuse libtool, which expects the EXPORTS line to be
	the first. Add FcConfigEnableHome.

	* src/fccfg.c: Check also for DLL_EXPORT as indication of being
	built as a DLL on Win32.

2003-06-09  Keith Packard <keithp@keithp.com>

	* Tag version 2.2.90

2003-06-09  Keith Packard <keithp@keithp.com>

	* Optimization in FcLangSetIndex was broken, occasionally
	  returning a pointer to the wrong location on miss

	* Add fc-match to test font matching from the command line.

2003-05-31  Keith Packard <keithp@keithp.com>

	* (Bug 85) add support for culmus fonts
	* (Bug 87) Automake 1.4 doesn't do man_MAN1 correctly
	* (Bug 88) Fix usage info on non-long option systems (Tim Mooney)

2003-05-28  James Su <suzhe@turbolinux.com.cn>

	* Fix "contains" op for strings and langsets.

2003-05-17  Keith Packard <keithp@keithp.com>

	* Fix build error with BDF prop local.  Free langset after query

2003-05-14  Keith Packard <keithp@keithp.com>

	* Extract spacing from XLFD atom

2003-05-12  Juliusz Chroboczek <jch@pps.jussieu.fr>

	* Reinstate SETWIDTH_NAME parsing for legacy fonts, 
	  disappeared in 1.30.

	* Generate FC_SIZE and FC_DPI for legacy bitmap fonts

2003-05-12  Keith Packard <keithp@keithp.com>

	* Use FcIsWidth to share code

	* Set FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH when scanning fonts to avoid
	  misclassifying some Han fonts as monospaced.
	  
2003-05-07  Keith Packard <keithp@keithp.com>

	* Add filename-based accept/reject to ammend available fonts.

	* Change FT_ENCODING_ADOBE_CUSTOM to ft_encoding_adobe_custom for
	  older FreeType releases.

2003-05-06  Keith Packard <keithp@keithp.com>

	* Remove 0b82 and Tamil numbers from tamil 
	  orthography (Jungshik Shin <jshin@mailaps.org>)

2003-05-04  Keith Packard <keithp@keithp.com>

	+ Map glyph names in fonts with adobe custom encoding to unicode

2003-05-02  Keith Packard <keithp@keithp.com>

	* Add FC_WEIGHT_BOOK as weight 75

2003-04-30  Keith Packard <keithp@keithp.com>

	* Typo in bitstream foundry name

2003-04-24  Keith Packard <keithp@keithp.com>

	* Eliminate italic_angle check for PS fonts

2003-04-23  Noah Levitt <nlevitt@columbia.edu>

	* Getting closer to fixing /etc/fonts hard-coding.

2003-04-22  Keith Packard <keithp@keithp.com>

	* Update autogen.sh to work with newer automake versions
	* Handle pattern elements moving during multiple edits

2003-04-23  James Henstridge  <james@daa.com.au>

	* doc/fontconfig-devel.sgml: close the <para> element.

	* doc/fcpattern.fncs: close the <para> element.

	* doc/func.sgml: close the <refsynopsisdiv> element.

2003-04-22  Keith Packard <keithp@keithp.com

	* Update autogen.sh to work with newer automake versions
	* Handle pattern elements moving during multiple edits

2003-04-17  Colin Walters <walters@debian.org>

	+ Remove some unused variables, and initialize some other ones so
	gcc doesn't warn us.

2003-04-16  Keith Packard <keithp@keithp.com>

	+ tag version 2.1.94

2003-04-16  Keith Packard <keithp@keithp.com>

	+ add BDF property fetching support for foundry 
	  (from Juliusz Chroboczek)
	+ add BDF property fetching support for width

2003-04-11  Juliusz Chroboczek <jch@pps.jussieu.fr>

	+ Implemented foundry generation for Type 1 and TrueType

2003-04-11  Gerard Escalante <g2@magestudios.net>

	+ Retrieve information from Type1 FontInfo dictionaries

2003-04-07  Colin Walters <walters@verbum.org>

	+ src/Makefile.am: Fix dummy makefile target names when
	MS_LIB_AVAILABLE isn't set.

2003-03-22  Tor Lillqvist  <tml@iki.fi>

	Changes for Windows:
	  
	+ On Windows with gcc (a.k.a. mingw) build as a DLL.
	  
	+ We don't want to hardcode the fonts.conf file location in the
	  DLL, so we look up the DLL location at run-time in a DllMain()
	  function. The fonts.conf location is deduced from that.

	+ The colon can't be used as path separator on Windows,
	  semicolon is used instead. File path components can be separated
	  with either slash or backslash. Absolute paths can also begin
	  with a drive letter.

	+ Add internal function FcStrLastSlash that strrchr's the last
	  slash, or backslash on Windows.
	
	+ There is no link() on Windows. For atomicity checks, mkdir a
	  lock directory instead.
	  
	+ In addition to HOME, also look for USERPROFILE.

	+ Recognize the special font directory token WINDOWSFONTDIR, to
	  use the system's font directory.
	  
	+ Remove the fontconfig-def.cpp that was obsolete. Add
	  fontconfig.def(.in), without internal functions.
	  
	+ Add a fontconfig-zip(.in) script, used to build a binary
	  distribution.

Fri Mar  7 07:55:00 EST 2003    Mike A. Harris <mharris@redhat.com>
	+ RPM specfile cleanups for 2.1.92: Removed man1/* and added man5/*
	  to main package and man3/* to devel package

	+ Added missing defattr(-, root, root) to main RPM package
 
	+ Added HTML and text development documentation to -devel subpackage

Wed Mar  5 05:08:00 EST 2003	Mike A. Harris <mharris@redhat.com>
	+ Added back the configure macro options --disable-docs, otherwise
	  fontconfig installs docs into /usr/share/doc/fontconfig (with no
	  version number) unconditionally, causing RPM to fail the build due
	  to _unpackaged_files_terminate_build.  We pick up the pregenerated
	  docs with %doc already.

Wed Mar  5 04:26:20 EST 2003	Mike A. Harris <mharris@redhat.com>
	+ Removed commented out rpm macro define at top of spec file,
	  replacing it with a simple explanation, since rpm macros are
	  expanded by rpm even in comments.

	+ Changed /usr/bin to _bindir in BuildRequires lines

	+ Cleaned up rpm postinstall script, and made fc-cache use _bindir

	+ Reorganized file manifest lists

Sun Mar  2 14:16:17 EST 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.
