2006-03-22  Patrick Lam  <plam@mit.edu>
	* src/fcatomic.c:

	On Windows, unlink before rename.  Reported by Tim Evans.

2006-03-08  Egmont Koblinger  <egmont@uhulinux.hu>
	reviewed by: plam

	* src/fcdir.c (FcDirScanConfig):

	Sort directory entries while scanning them from disk;
	prevents Heisenbugs due to file ordering in a directory.

2005-12-13  Carl Worth  <cworth@cworth.org>
	reviewed by: keithp

	* conf.d/Makefile.am:
	* conf.d/10LohitGujarati.conf: Add a configuration file that
	disables hinting for the Lohit Gujarati font (since the hinting
	distort some glyphs quite badly).

2005-11-23  Frederic Crozat  <fcrozat@mandriva.com>:
	reviewed by: plam
	
	* fc-match/fc-match.c (main):

	Make getopt_long accept -s parameter to fc-match as well.

2005-10-05  Christian Biesinger  <cbiesinger@web.de>
        reviewed by: plam & keithp

        * src/Makefile.am:

        Use libtool -no-undefined flag on all platforms.

2005-10-05  Simos Xenitellis  <simos74@gmx.net>
	reviewed by: plam & keithp

	* fonts.conf.in:

	Modify config file to use Greek fonts before Asian fonts with
	Greek glyphs.

2005-07-25  Keith Packard  <keithp@keithp.com>

	* doc/fontconfig-user.sgml:
	* fc-glyphname/fc-glyphname.c: (scan), (main):
	* fc-lang/fc-lang.c: (FcConfigHome):
	* fc-match/fc-match.c: (main):
	* src/fccfg.c: (FcConfigHome):
	* src/fcfreetype.c: (FcSfntNameTranscode), (FcSfntNameLanguage),
	(FcVendorMatch), (FcFreeTypeQuery), (FcFreeTypeCharSetAndSpacing),
	(addtag), (FcFontCapabilities):
	* src/fcpat.c: (FcValueListEntCreate):
	* src/fcstr.c: (FcStrCaseWalkerInit):
	* src/fcxml.c: (FcParsePatelt), (FcConfigParseAndLoadDir):

	Various GCC 4 cleanups for signed vs unsigned char

	Match only [0-9]*.conf files in <include>{directory}</include>
	elements to avoid loading *.rpmsave or .dpkg-old files. (otaylor)

2005-07-15  Carl Worth  <cworth@cworth.org>

	* src/fcint.h:
	* src/fcinit.c: (FcFini):
	* src/fcpat.c: (FcPatternFini): Rename FcPatternThawAll to
	FcPatternFini.
	
	* src/fcpat.c: (FcObjectStaticName), (FcObjectStaticNameFini):
	Pull the FcObjectStateName hash table out to file scope, and add
	FcObjectStaticNameFini so that FcFini will cleanup this hash table
	as well.

	* src/fcxml.c: (FcConfigParseAndLoad): Clear FILE* to NULL after
	fclose.

2005-06-16  Patrick Lam <plam@MIT.EDU>

	reviewed by: keithp

	* src/fccfg.c: (FcConfigCompareValue):
	Make FcOpNotContains use FcStrStr for strings so that
	it matches semantics for !FcOpContains.

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

	* debian/changelog:
	* debian/control:
	Move fontconfig source package to libs as per override

2005-05-20  Aiet Kolkhi <aietkolkhi@gmail.com>

	reviewed by: Mike Fabian

	* fc-lang/ka.orth:
	The ka.orth file requires several characters which are not 
	used anymore in modern Georgian and which are missing in the free 
	Georgian TrueType fonts downloadable at: 
	
	http://aiet.qartuli.net/docs/georgian_on_linux_en.php

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.
