2006-02-24  Patrick Lam	 <plam@mit.edu>
	* ChangeLog:
	* README:
	* configure.in:
	* fontconfig/fontconfig.h:

	Bump version to 2.3.94.

2006-02-24  Patrick Lam	 <plam@mit.edu>
	* Makefile.am:

	Fix placement of @s.

2006-02-24  Patrick Lam	 <plam@mit.edu>
	* conf.d/10-fonts-persian.conf:

	Remove unconditional emboldening (per Behdad's instructions).

	* Makefile.am:

	Add @s to hide some echos.

2006-02-24  Mike Fabian  <mfabian@suse.de>
	    Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam
	
	* src/fcfreetype.c (GetScriptTags):

	Fix double-free on error case.

2006-02-21  Patrick Lam  <plam@mit.edu>
	* fc-lang/fc-lang.c (scan):

	Strip \r and whitespace from input; fixes bug 3454.

2006-02-21  Patrick Lam  <plam@mit.edu>
	* fc-lang/fc-lang.c (main):

	Allocate large arrays statically in fc-lang to fix crashes under
	MinGW/MSYS.

2006-02-21  Diego Petten  <flameeyes@gentoo.org>
	* src/fcfreetype.c (FcFreeTypeCharIndex):

	Pass the buck; make fontconfig not crash on pango badness.

2006-02-21  Patrick Lam  <plam@mit.edu>
	* conf.d/10-fonts-persian.conf:

	Use embeddedbitmap rather than rh_prefer_bitmap.

2006-02-21  Paul Cornett  <paulcor1@bullseye.com>
	reviewed by: plam

	* src/fccache.c (FcDirCacheWrite):
	* src/fcdir.c (FcFileScanConfig):
	* src/fcfreetype.c (FcStringInPatternElement):
	* src/fcxml.c (FcParseFamilies):
	* src/ftglue.c (ftglue_face_goto_table):

	Eliminate redundancies.

2006-02-21  Kjartan Maraas  <kmaraas@gnome.org>
	reviewed by: plam

	* fc-list/fc-list.c (main):
	* src/fcfreetype.c (FcFreeTypeCharSetAndSpacing):
	* src/fcstr.c (FcStrStr):
	* src/fcxml.c (FcConfigSaveAttr):

	Eliminate unused vars reported by Intel's compiler.

2006-02-21  Aiet Kolkhi  <aietkolkhi@gmail.com>
	reviewed by: plam

	* fc-lang/ka.orth:

	Remove one more archaic character.

2006-02-21  Ross Burton  <ross@burtonini.com>
	reviewed by: plam, keithp

	* src/fcxml.c (FcParsePatelt):

	Freeze patterns created by configuration file for tiny 
	memory savings (every little bit helps).

2006-02-21  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam
	
	* fc-cat/fc-cat.c (main):

	Initialize fontconfig library in fc-cat to avoid segfault.

2006-02-18  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (scanDirs):
	* src/fccache.c (FcCacheReadDirs):
	* src/fcdir.c (FcDirScanConfig):

	Fix the underlying cause of the below segfault (must usually
	call FcDirCacheHasCurrentArch after FcDirCacheValid).
	
2006-02-18  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheHasCurrentArch):

	Fix triggering of segfault caused by misreading cache files
	(reported by fcrozat).

2006-02-17  Patrick Lam  <plam@mit.edu>
	* src/fcint.h  (FC_CACHE_MAGIC):

	Bump up magic version; we changed the binary format.

2006-02-17  Patrick Lam  <plam@mit.edu>
	* fc-cat/fc-cat.c (main):

	Enable fc-cat to print out old-style cache info when given a
	directory name.

2006-02-16  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheHasCurrentArch):

	Deal correctly with changing FC_CACHE_MAGIC.

2006-02-16  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (usage, scanDirs, main):

	Add -r --really-force option which blows away cache files and then
	regenerates them.

2006-02-16  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheUnlink, FcCacheCopyOld, FcDirCacheWrite):

	Don't bail if fontconfig can't remove a dir cache file.
	Skip the ID of a cache file when copying.
	Eliminate 'source file too small' bug in FcDirCacheWrite.

2006-02-13  Patrick Lam  <plam@mit.edu>
	* src/fcfreetype.c (FcFreeTypeQuery):

	Fix memory leak in error condition code.

2006-02-13  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam
	* src/fcfreetype.c (FcFreeTypeQuery):

	Skip bitmap fonts which can't even get it together enough to
	declare a family name; this appears to reproduce previous
	fontconfig behaviour.

2006-02-10  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam
	* src/fccache.c (FcDirCacheOpen):

	Try to open /var/cache/fontconfig/[hashed name] before
	fonts.cache-2 in a directory, because /var/cache/fontconfig
	failures ought to be fixable, unlike fonts.cache-2 failures,
	which may leave you screwed.

2006-02-10  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam
	* src/fcmatch.c (FcFontSetMatch):

	Use a tri-state to mark the fonts which didn't get blocked but
	were just missing an element, to distinguish them from the
	fonts that do match the element.

2006-02-10  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam
	* src/fcmatch.c (FcFontSetMatch):

	Don't kill fonts because they don't declare an element that's
	being matched on.

2006-02-09  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave,
			 FcDirCacheUnlink, FcDirCacheOpen, FcDirCacheWrite):

	Define and pass O_BINARY to open if appropriate, for those
	platforms that need it.  Reported by Doodle.

2006-02-09  Patrick Lam  <plam@mit.edu>
	* src/fccharset.c (FcCharSetNeededBytes, FcCharSetSerialize, 
			   FcCharSetGetLeaf):

	Fix problem with missing 'en' due to euro.patch: change
	cache file format slightly to coincide with that generated
	by fc-lang.

2006-02-07  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcCacheReadDirs):

	Fix warning.

2006-02-07  Patrick Lam  <plam@mit.edu>
	* src/fcdir.c (FcDirScanConfig):

	Don't reject dirs that can't be normalized (fixes lilypond, and
	is correct in the context of application font directories.)

2006-02-07  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam

	* src/fccache.c (FcCacheReadDirs):

	Use normalized directory name exclusively in FcCacheReadDirs.

2006-02-07  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam

	* src/fcpat.c (FcValueHash, FcValueListHash, FcValueListEntCreate): 

	Perf optimizations.  Inline FcValueCanonicalize, 
	reduce FcValueListPtrU usage, remove redundant cast.

2006-02-07  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam

	* src/fccharset.c (FcLangCharSetPopulate, FcCharSetInsertLeaf)
	* fc-lang/fc-lang.c:

	Fix missing FcCacheBankToIndex in FcCharSetInsertLeaf.
	Declare extern for static arrays as arrays, not pointers.
	(Part of the fix for 'fonts don't have en' issue after Euro patch.)

2006-02-07  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam

	* fc-lang/de.orth:
	* fc-lang/el.orth:
	* fc-lang/en.orth:
	* fc-lang/es.orth:
	* fc-lang/fi.orth:
	* fc-lang/fr.orth:
	* fc-lang/it.orth:
	* fc-lang/nl.orth:
	* fc-lang/pt.orth:

	Add Euro sign to list of symbols required by European languages.

2006-02-07  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcCacheReadString):

	Fix hidden variable warning.

2006-02-07  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam

        * src/fccache.c (FcCacheReadString, FcCacheSkipString):
	
        Remove de-escaping logic because FcCacheWriteString
        doesn't escape anyway. Do blockwise reading instead
        of byte-wise for performance.

2006-02-06  Patrick Lam  <plam@mit.edu>
	    Takashi Iwai  <tiwai@suse.de>

	* src/fccache.c (FcCacheReadDirs, FcCacheRead):

	Don't loop infinitely on recursive symlinks (client-side).

2006-02-06  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam
	* fc-cache/fc-cache.c (scanDirs, main):

	Don't loop infinitely on recursive symlinks.

2006-02-06  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam
	* src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheReadDir,
			 FcGlobalCacheDirFind, FcGlobalCacheUpdate,
			 FcGlobalCacheSave, FcCacheReadDirs):
	* src/fcint.h:

	Skip subdirs when skipping over stale bits of global cache.
	Introduce state machine into FcGlobalCacheDir to avoid
	doing inappropriate operations on global dir entries, e.g.
	writing out an out-of-date cache entry.
	
2006-02-06  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam
	* src/fcdir.c (FcFileScanConfig):

	Hoist FcFileIsDir check out of FcFileScanConfig loop.

2006-02-06  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam

	* src/fccfg.c (FcConfigInodeMatchFontDir, FcConfigAddFontDir,
		       FcConfigAddFontDirSubdirs, FcConfigNormalizeFontDir):

	Don't rescan when trying to normalize a non-declared font dir.
	Don't add font dirs multiple times (even if they're aliased).

2006-02-06  Dirk Mueller  <dmueller@suse.de>
	reviewed by: plam

	* src/fcfs.c (FcFontSetUnserialize):

	Explain apples/oranges comparison and fix compilation error.

2006-02-06  Dirk Mueller  <dmueller@suse.de>
	reviewed by: plam

	* src/fcfs.c (FcFontSetUnserialize):

	Insert check for integer overflow in # of fonts.

2006-02-04  Behdad Esfahbod  <behdad@cs.toronto.edu>
	reviewed by: plam

	* doc/Makefile.am:
	* fc-cache/Makefile.am:
	* fc-cat/Makefile.am: 
	* fc-list/Makefile.am:

	Make 'make distcheck' work with automake 1.6.3.
	
2006-02-03  Takashi IWAI  <tiwai@suse.de>
	reviewed by: plam

	* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, main,
			   FcCacheFileRead):

	* src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave, 
			 FcDirCacheConsume, FcDirCacheWrite)
	* src/fcxml.c (FcConfigMessage):

	Check I/O call return values and eliminate unused variable
	warnings.

2006-02-03  Takashi Iwai  <tiwai@suse.de>
	reviewed by: plam

	* src/fccfg.c (FcConfigAppFontAddFile, FcConfigAppFontAddDir)

	Fix memory leak.

2006-02-03  Dirk Mueller  <dmueller@suse.de>
	reviewed by: plam

	* src/fcfs.c (FcFontSetUnserialize):

	Gracefully handle the case where a cache asserts that it
	has a negative number of fonts, causing overflow.

2006-02-03  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheUnlink):

	Fix double free in error case.

2006-01-31  Behdad Esfabod  <behdad@cs.utoronto.edu>
	    Stephan Kulow  <coolo@suse.de>
	reviewed by: plam

	* fc-cache/Makefile.am:

	Replace 'stamp' target with mkinstalldirs.

2006-01-31  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam

	* src/fccache.c (FcGlobalCacheLoad):

	Toast broken global cache files.

2006-01-30  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheReadDir):

	Actually use the directories that I added to the global cache.
	Fixes 'make check'.

2006-01-30  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam
	
	* fc-cache/fc-cache.c (scanDirs):

	Don't stop scanning if a directory in fonts.conf doesn't
	exist, because subsequent directories might exist.
	
2006-01-30  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheLoad):

	Make global cache work again after putting dir names into global
	cache (I misplaced the recording of a file offset).

2006-01-30  Patrick Lam  <plam@mit.edu>
	* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint):
	
	Update fc-cat to handle subdir lists in global cache file.
	
	* src/fccache.c (FcGlobalCacheLoad):
	
	Another FcCacheReadString return value check.

2006-01-30  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam

	* src/fccache.c (FcGlobalCacheLoad, FcDirCacheUnlink
			 FcDirCacheOpen, FcDirCacheRead, FcDirCacheWrite):

	Make fccache more resilient to broken cache files by checking
	return value of FcCacheReadString all the time.

2006-01-30  Frederic Crozat  <fcrozat@mandriva.com>
	reviewed by: plam

	* fc-match/fc-match.1:
	* fc-lang/fc-lang.man:

	Remove references to dead fontconfig(3) manpages in
	other fontconfig manpages.

2006-01-29  Behdad Esfabod  <behdad@cs.utoronto.edu>
	reviewed by: plam
	
	* doc/fcpattern.fncs:

	Fix world's tiniest typo in code example.

2006-01-29  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam

	* src/fccache.c (FcGlobalCacheReadDir):

	Fix global cache reads of subdirectories.

2006-01-29  Patrick Lam  <plam@mit.edu>
	* doc/fcconfig.fncs:
	Add documentation for FcConfigNormalizeFontDir.

	* src/fccache.c (FcGlobalCacheDirDestroy, FcGlobalCacheLoad,
			 FcGlobalCacheUpdate, FcGlobalCacheSave):
	* src/fcdir.c (FcDirScanConfig):
	* src/fcint.h:

	Write directory information to global caches to fix make check
	(reported by Ronny V. Vindenes).  This changes the global cache
	format again.
	
2006-01-27  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (scanDirs):
	* fontconfig/fontconfig.h:
	* src/fcint.h:
	* src/fccache.c (FcDirCacheValid, FcDirCacheHasCurrentArch):

	Move FcConfigNormalizeFontDir call so that it doesn't result in
	infinite recursion (reported by Ronny V. Vindenes).

2006-01-26  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheValid, FcDirCacheHasCurrentArch):
	* src/fccfg.c (FcConfigNormalizeFontDir):

	Add a couple of missing normalizations to make fc-cache work
	right; only scan subdirectories once.

2006-01-26  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam
	
	* src/fcacache.c (FcGlobalCacheReadDir):

	Don't crash on non-existant directories in global cache.

2006-01-26  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheSave, FcDirCacheWrite):
	* src/fccfg.c (FcConfigAddFontDirSubdirs, FcConfigNormalizeFontDir):
	* src/fcdir.c (FcDirScanConfig):
	* src/fcxml.c (FcEndElement):

	Stop trampling the directory name when writing out caches.
	(with Mike Fabian:) Beef up FcConfigNormalizeFontDir to scan
	subdirs when necessary.  Don't scan directories that can't be
	normalized.

2006-01-25  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheOpen, FcDirCacheWrite):
	* src/fccfg.c (FcConfigEvaluate):
	* src/fcfreetype.c (FcPatternAddWithBinding):

	Fix additional memory leaks reported by Ronny V. Vindenes: don't
	invoke FcValueSave on hashed static strings in
	FcPatternAddWithBinding.  

	Add another st_dev check in FcDirCacheOpen.

2006-01-24  James Su  <james.su@gmail.com>
	reviewed by: plam
	
	* src/fcfreetype.c (FcFreeTypeIsExclusiveLang):
	* fc-lang/zh_hk.orth:

	Treat zh-hk fonts differently from zh-tw fonts.  This patch may
	cause fontconfig to treat A-X fonts differently from A-Y fonts;
	please mail the fontconfig list if this causes any problems.

2006-01-24  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheUnlink, FcDirCacheWrite):
	* src/fcfreetype.c (FcFreeTypeQuery):

	Fix memory leaks reported by Ronny V. Vindenes.

2006-01-19  Andreas Schwab  <schwab@suse.de>
	reviewed by: plam

	* src/fcpat.c (FcStrNeededBytes):

	Fix for unaligned memory accesses.

2006-01-18  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam
	
	* src/fcdir.c (FcDirScanConfig):

	Properly order the FcConfigAddFontDir and FcConfigNormalizeFontDir
	calls to avoid crashes.

2006-01-14  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheConsume):

	Fix segfault when consuming zero-length caches in fc-cat
	(which has no config, so FcConfigAddFontDir shouldn't be called.)

2006-01-14  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (scanDirs):
	* fontconfig/fontconfig.h:
	* src/fccache.c (FcGlobalCacheReadDir, FcGlobalCacheUpdate,
			 FcGlobalCacheSave, FcDirCacheUnlink, FcDirCacheOpen):
	* src/fccfg.c (FcConfigBuildFonts, FcConfigNormalizeFontDir):
	* src/fcdir.c (FcDirScanConfig):
	* src/fcint.h:
	
	Compare device numbers as well as inodes.
	Always normalize directory names before comparing them.

2006-01-11  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam
	
	* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint):

	Allocate extra space for appended '/' in directory name.

2006-01-10  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheConsume, FcDirCacheOpen,
			 FcDirCacheValid, FcDirCacheHasCurrentArch,
			 FcDirCacheUnlink, FcDirCacheRead, FcDirCacheConsume):
	* fc-cache/fc-cache.c (main):

	Explicitly add font dirs to config.fontDirs even if they're empty.
	Set current config in fc-cache.c.
	Fix treatment of cache directory as read from cache file; don't
	use string equality to determine if we have the right file,
	use inode equality.

2006-01-09  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (scanDirs):
	* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, FcCacheFileRead):
	* src/fccache.c (FcGlobalCacheReadDir, FcCacheReadDirs, 
			 FcDirCacheRead, FcDirCacheConsume, FcDirCacheWrite):
	* src/fccfg.c (FcConfigNormalizeFontDir):
	* src/fcdir.c (FcDirScanConfig):
	* src/fcint.h:

	Normalize font dirs by using the form, as given in fonts.conf, and
	recorded in FcConfig's fontDirs string set, as canonical.
	
	Actually update config.fontDirs as font directories are scanned.

2006-01-08  James Su  <james.su@gmail.com>
	* src/fcmatch.c (FcFontSetMatch):

	Fix matching bug when multiple elements match; don't use
	the sum of all scores, but the best score.

	Also more perf opts, e.g. evaluate best over all font sets
	rather than on a per-set basis (and other changes).

2006-01-08  Patrick Lam  <plam@mit.edu>
        * src/fccache.c (FcDirCacheConsume):

        Properly skip past dir caches that contain zero fonts (as occurs
        in global caches.)  Reported by Mike Fabian.

2006-01-06  Patrick Lam  <plam@mit.edu>
	* src/fcdbg.c (FcPatternPrint):

	Print out full pathname in fc-match -v as well.  Reported by
	Frederic Crozat.
	
2006-01-06  Mike Fabian  <mfabian@suse.de>
	reviewed by: plam
	
	* src/fcname.c (FcNameParse):

	Fix bug where fc-match crashes when given __DUMMY__ property to
	match on.

	(I added the __DUMMY__ string to enable callers of
	FcObjectToPtrLookup to distinguish an error return from a
	successful return. -PL)

2006-01-05  Patrick Lam  <plam@mit.edu>
	* AUTHORS:

	Add self to AUTHORS list.

	* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, 
	                   FcCacheFileRead, FcCachePrintSet, main): 
	* src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheUpdate, 
			 FcGlobalCacheSave, FcCacheNextOffset, 
			 FcDirCacheHasCurrentArch, FcDirCacheRead, 
			 FcDirCacheConsume, FcDirCacheWrite): 
	* src/fcint.h:
	* src/fcpat.c (comment):

	Minor change to global cache file format to fix fc-cat bug
	reported by Frederic Crozat, and buglet with not globally caching
	directories with zero fonts cached.

2006-01-02  Lubos Lunak  <l.lunak@suse.cz>
	reviewed by: plam
	
	* src/fccfg.c (FcConfigEvaluate):

	Fix double-free which occurs because FcValueCanonicalize doesn't
	create an extra copy of the returned value, it only canonicalizes
	it.

2006-01-02  Patrick Lam  <plam@mit.edu>
	* doc/fontconfig-user.sgml:

	Fix version of .cache file (currently 1 -> currently 2).  Reported
	by Jim Osborn.

2005-12-21  Jinghua Luo  <sunmoon1997@gmail.com>
	reviewed by: plam

	* src/fcpat.c (FcPatternAddFullFname, FcPatternFindFullFname):

	Shut up GCC warnings on amd.

2005-12-20  Patrick Lam	 <plam@mit.edu>
	* ChangeLog:
	* README:
	* configure.in:
	* fontconfig/fontconfig.h:

	Bump version to 2.3.93.

2005-12-20  Patrick Lam  <plam@mit.edu>
	* src/fccharset.c (FcLangCharSetPopulate):
	* src/fcint.h (FcCacheBankToIndex):

	Avoid check on _fcBankId nullness and fix case where it used to
	crash.

2005-12-20  Patrick Lam  <plam@mit.edu>
	* src/fcxml.c (FcConfigParseAndLoad):

	Use open instead of fopen (requested by Phil Race for Sun).

2005-12-20  Patrick Lam	 <plam@mit.edu>
	* src/fccache.c (FcDirCacheWrite);
	* fc-cache/Makefile.am:

	Fix GCC4 warning and Makefile brokenness for /var/cache/fontconfig
	dir.

2005-12-20  Patrick Lam	 <plam@mit.edu>
	* src/fcfreetype.c (FcFreeTypeQuery):

	Restore code to skip over PCF fonts that have no encoded
	characters.
	(We guess that a font is PCF by presence of the PIXEL_SIZE
	BDF property.)

2005-12-12  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheOpen, FcDirCacheWrite):

	Read and write the original location as a fallback for the
	hashed cache file locations.  This is mostly for users to be
	able to have per-directory cache files.

2005-12-12  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (scanDirs):
	* fc-cache/Makefile.am:
	* src/fccache.c (FcDirCacheHashName):

	Improve error message when fc-cache can't write the cache.  Add
	missing slash.  Reported by Behdad.  Incorporate Behdad's patch to
	create /var/cache/fontconfig when appropriate.

2005-12-12  Behdad Esfahbod  <behdad@cs.toronto.edu>
	reviewed by: plam
	
	* src/fcxml.c (FcConfigGetAttribute):

	Fix crash reported by Frederic Crozat when using libxml2.

2005-12-09  Patrick Lam  <plam@mit.edu>
	* INSTALL:
	* configure.in:
	* fc-cache/Makefile.am:
	* fc-cat/Makefile.am:
	* src/Makefile.am:
	* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, FcCacheFileRead):
	* fontconfig/fontconfig.h (FC_CACHE_SUFFIX):
	* src/fccache.c (FcCacheSkipString, FcGlobalCacheLoad,
			FcGlobalCacheSave, FcCacheNextOffset, FcDirCacheValid,
			FcDirCacheHasCurrentArch, FcDirCacheHashName,
			FcDirCacheOpen, FcDirCacheRead, FcDirCacheWrite):

	Migrate cache files from fonts directories to
	/var/cache/fontconfig.  This helps make fontconfig FHS-compliant,
	but requires that all caches get rebuilt.

	Also, autogen.sh now needs the additional parameter
	--localstatedir=/var.
	
2005-12-07  Patrick Lam  <plam@mit.edu>
	* src/fcpat.c (FcPatternAddString):

	Because we've changed FcPatternAddString to use FcStrStaticName
	and not FcValueSave, explicitly handle the case of a null string.

2005-12-06  Patrick Lam  <plam@mit.edu>
	* fc-cat/fc-cat.c (FcCachePrintSet, FcCacheGlobalFileReadAndPrint):

	Fix warnings.

2005-12-05  Patrick Lam  <plam@mit.edu>
	* src/fcname.c (FcNameGetObjectType):

	Don't assign types to user object names.

2005-12-05  Patrick Lam  <plam@mit.edu>
	* src/fcpat.c (FcValueDestroy, FcValueListDestroy, FcStrHashed):

	Don't free strings that have been returned from FcStrStaticName.

2005-12-01  Patrick Lam  <plam@mit.edu>
	* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, main):

	Add codepath for reading global cache files as well.

2005-12-01  Behdad Esfahbod  <behdad@cs.toronto.edu>
	reviewed by: plam

	* conf.d/10-fonts.persian.conf:
	* conf.d/Makefile.am:

	Add config file for Persian fonts from Sharif FarsiWeb, Inc.

2005-11-30  Behdad Esfahbod  <behdad@cs.toronto.edu>
	reviewed by: plam

	* src/fcxml.c (FcConfigParseAndLoad):

	Only add a config file to the set of config files once.

2005-11-29  Patrick Lam  <plam@mit.edu>
	* src/fcint.h (FcCacheBankToIndex);

	Fix segfault by guarding array dereference.

2005-11-29  Dirk Mueller  <dmueller@suse.de>
	reviewed by: plam
	
	* fc-lang/fc-lang.c:
	* src/fccache.c (FcDirCacheConsume, FcCacheHaveBank,
			 FcCacheBankToIndex, FcCacheBankToIndexMTF,
			 FcCacheAddBankDir):
	* src/fcint.h:

	Refactor FcCacheBankToIndex into an inlineable part
	(in fcint.h) which checks the front of the list and a
	non-inlineable part which finds and moves the appropriate element
	to the front of the list.

2005-11-29  Patrick Lam  <plam@mit.edu>
	* src/fccfg.c (FcConfigBuildFonts):
	* src/fccache.c (FcCacheReadDirs):

	Make the perf guys hate me a bit less: hoist the directory-name
	FcConfigAcceptFont check for cached fonts up to directory cache
	read time, rather than running it for each font.

2005-11-29  Patrick Lam  <plam@mit.edu>
	* src/fccfg.c (FcConfigBuildFonts):
	* src/fcint.h:
	* src/fcpat.c (FcPatternFindFullFname):

	Don't make FcPatternFindFullFname available to fccfg, it's not
	really safe.  Instead go through FcPatternGetString (sorry,
	perf guys.)  Also, use globs for dirs as well.

2005-11-28  Patrick Lam  <plam@mit.edu>
	* src/fccfg.c (FcConfigBuildFonts):

	Fix segfault.

2005-11-28  Patrick Lam  <plam@mit.edu>
	* src/fcint.h:
	* src/fcpat.c (FcPatternFindFullFname):
	* src/fccfg.c (FcConfigBuildFonts):

	Fix problem dating back at least to 2.3.2 where globs weren't
	being applied to patterns loaded from a cache.

2005-11-28  Patrick Lam  <plam@mit.edu>
	* doc/fontconfig-user.sgml:

	Fix some obvious spelling mistakes.
	
2005-11-28  Dirk Mueller  <dmueller@suse.com>
	    Stephan Kulow  <coolo@suse.de>
	reviewed by: plam

	* src/fcmatch.c (FcFontSetMatch):

	Don't kill all fonts during match (oops!)


2005-11-25  Dirk Mueller  <dmueller@suse.com>
            Stephan Kulow  <coolo@suse.de>
            Michael Matz  <matz@suse.de>
        reviewed by: plam

        * src/fcmatch.c (FcObjectPtrToMatcher, FcCompareValueList,
                FcFontSetMatch):

        Rewrite FcFontSetMatch to a path-finding based algorithm, i.e.
        inline FcCompare into FcFontSetMatch and reorder the
        loops, adding a boolean array which blocks patterns from future
        consideration if they're known to not be best on some past
        criterion.

2005-11-26  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam
	
	* src/fcmatch.c (FcCompareValueList):

	Fix incorrect merge.

2005-11-25  Patrick Lam  <plam@mit.edu>
	* src/fcmatch.c (FcMatchObjectPtrsInit, FcCompareValueList):

	Don't do random matching when bad objects are passed into
	FcCompareValueList.

2005-11-25  Patrick Lam  <plam@mit.edu>
	* src/fcint.h:
	* src/fcpat.c (FcPatternEnsureBank, FcPatternDistributeBytes, 
			FcPatternSerialize, FcPatternUnserialize, 
			FcValueListEnsureBank, FcValueListDistributeBytes,
			FcValueListUnserialize):

	Rename fcpatterns, fcpatternelts, fcvaluelists to _fcPatterns,
	_fcPatternElts, _fcValueLists for consistency.

2005-11-25  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam

	* src/fcmatch.c:

	Pass the FcObjectPtr to FcCompareValueList, not the char * (perf).

2005-11-25  Patrick Lam  <plam@mit.edu>
	* src/fcint.h:
	* src/fccache.c (FcDirCacheConsume):
	* src/fccharset.c (FcCharSetUnserialize):
	* src/fcfs.c (FcFontSetUnserialize):
	* src/fclang.c (FcLangSetUnserialize):
	* src/fcname.c (FcObjectUnserialize):
	* src/fcpat.c (FcStrUnserialize, FcValueListUnserialize, 
			FcPatternUnserialize):

	Pass around FcCache *s to the Unserialize functions for extra
	consistency (and less overhead, for what that's worth).

2005-11-24  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam

	* src/fcint.h:
	* src/fcmatch.c (FcCompare*, FcFontSetSort):
	* src/fcname.c (FcNameUnparseValue):

	Inline the *PtrU functions to gain perf.
	Remove unneeded params for the FcCompare* functions.

2005-11-24  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam
	
        * src/fcint.h, fontconfig/fontconfig.h: 
        
	Move FC_BANK_DYNAMIC, FC_BANK_FIRST to internal header.

        * src/fcpat.c, src/fcint.h, src/fcname.c:
          
	Check for type validity during FcPatternAddWithBinding, don't
	verify type in FcFontMatch, don't call FcCanonicalize here
        (which always does a deep copy).

2005-11-24  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam

	* src/fcmatch.c (FcCompareNumber, FcCompareString, FcCompareFamily):
	* src/fcpat.c (FcPatternAddWithBinding):

	Make FcCompareString and FcCompareFamily less expensive.
	Only add a value for FC_FAMILY if the proposed value is a string.

2005-11-24  Dirk Mueller  <dmueller@suse.com>
	reviewed by: plam
	
	* src/fcdbg.c (FcDebug, FcDebugInit, FcPatternPrint):
	* src/fcinit.c (FcInitLoadConfig, FcInitLoadConfigAndFonts):
	* src/fcint.h (FcDebug):
	
	Inline FcDebug invocations and only initialize once, in FcInit*.
	Improve debug msg in FcPatternPrint.

2005-11-23  Frederic Crozat  <fcrozat@mandriva.com>:
	reviewed by: plam
	
	* fontconfig/fontconfig.h:
	* fc-cat/fc-cat.c:

	Minor code warning cleanups.

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-11-21  Dirk Mueller <dmueller@suse.com>
	reviewed by: plam

	* src/fcmatch.c (FcCompareValueList):

	Manually perform inlining & partial redundancy elimination to
	reduce calls to FcValueListPtrU.

2005-11-21  Dirk Mueller <dmueller@suse.com>
	reviewed by: plam

        * src/fcstr.c (FcStrFree, FcStrCaseWalkerInit, FcStrCaseWalkerLong,
		       FcStrCaseWalkerNext, FcStrCaseWalkerNextIgnoreBlanks): 

	Only invoke strlen() when really necessary.
	
2005-11-19  Matthias Clasen  <mclasen@redhat.com>
	reviewed by: plam

	* src/Makefile.am:
	* src/fcfreetype.c (FcGetPixelSize, FcFreeTypeQuery, GetScriptTags,
	                    FcFontCapabilities):
	* src/ftglue.c:
	* src/ftglue.h:

	Get rid of the use of freetype internal headers in fcfreetype.c,
	since those headers will go away with freetype 2.2.  Replace with
	public domain ftglue code from pango.  Note that the patch removes
	some extra error checking in FT_Get_BDF_Property() and comments
	out the skipping of empty pcf fonts.

2005-11-19  Jinghua Luo  <sunmoon1997@gmail.com>
	reviewed by: plam

	* fc-lang/fc-lang.c (main):

	Further fix of patch from 2005-11-04: miscounted numbers count
	(numbers_count); didn't strip duplicate numbers (langBankNumbers);
	and leafidx_offset and numbers_offset in fcLangCharSets are wrong.

	Removed leafidx_count and numbers_count since they are the same
	and replaced them with offset_count.

2005-11-18  Frederic Crozat  <fcrozat@mandriva.com>
	reviewed by: plam

	* fc-cat/fc-cat.c (main):

	Don't crash when fc-cat invoked with no arguments.

2005-11-18  Frederic Crozat  <fcrozat@mandriva.com>
	reviewed by: plam

	* src/fcxml.c (FcConfigSaveAttr, FcConfigParseAndLoad):

	Fix invalid read access caused by premature free and
	GCC4 warnings in libxml2 codepath.

2005-11-17  Jinghua Luo  <sunmoon1997@gmail.com>
	reviewed by: plam

	* src/fccfg.c (FcConfigValues):

	List iteration not needed in FcConfigValues, since it's building
	up the list itself; we can just strip FcVoid elements during
	construction.

2005-11-17  Patrick Lam  <plam@mit.edu>
	* src/fccfg.c (FcConfigValues):

	Fix crash on invalid constants in config files (forgot to update
	a pointer upon list iteration.)

2005-11-17  Frederic Crozat  <fcrozat@mandriva.com>
	reviewed by: plam

	* src/fcxml.c (FcTypecheckExpr):

	Complain about invalid constants in config files.

2005-11-17  Andreas Schwab  <schwab@suse.de>
	reviewed by: plam
	
	* src/fccache.c (FcGlobalCacheSave): 

	Don't add current_arch_start more than once.

2005-11-16  Patrick Lam  <plam@mit.edu>
	* src/fccharset.c (FcCharSetDistributeBytes, FcCharSetUnserialize):
	* src/fcfs.c (FcFontSetUnserialize):
	* src/fcname.c (FcObjectDistributeBytes, FcObjectUnserialize):
	* src/fcpat.c (FcStrUnserialize):

	Fix ordering of ALIGN with respect to saving block_ptr; add
	another ALIGN to fcfs.c.

2005-11-16  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheProduce)
	
	Fix case where alignment bytes bumped up metadata->count
	causing unwarranted failures to write cache files.  
	(Reported by Stephan Kulow).

2005-11-16  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheProduce):
	* src/fccharset.c (FcCharSetDistributeBytes):
	* src/fcfs.c (FcFontSetDistributeBytes):
	* src/fcint.h:
	* src/fclang.c (FcLangSetDistributeBytes):
	* src/fcname.c (FcObjectDistributeBytes):
	* src/fcpat.c (FcPatternNeededBytes, FcValueListNeededBytes,
		FcStrNeededBytes):
	
	Add *NeededBytesAlign(), which overestimates the padding which is
	later added by the new ALIGN macro.  Fix alignment problems on
	ia64 and s390 by bumping up block_ptr appropriately.  (Earlier
	version by Andreas Schwab).

2005-11-16  Stephan Kulow  <coolo@kde.org>
	reviewed by: plam
	
	* src/fccache.c:

	Use sysconf to determine proper PAGESIZE value; this
	appears to be POSIX-compliant. (reported by Andreas Schwab)

2005-11-04  Patrick Lam  <plam@mit.edu>
	* fc-lang/fc-lang.c:
	* src/fccharset.c:
	* src/fcint.h:
	* src/fclang.c:

	Fix bug 2878 (excessive relocations at startup for charsets,
	reported by Ross Burton): fc-lang/fc-lang now creates the
	static form of the langset, not the dynamic form, so that
	the charsets should now be in .rodata.

2005-11-04  Patrick Lam  <plam@mit.edu>
	* src/fcdir.c (FcDirScanConfig):

	Add test for validity of directory caches that
	somehow got lost (reported by make distcheck).

2005-11-04  Patrick Lam  <plam@mit.edu>
	* ChangeLog:
	* README:
	* configure.in:
	* fontconfig/fontconfig.h:
	
        Bump version to 2.3.92.

2005-11-02  Patrick Lam  <plam@mit.edu>
	* src/fcpat.c (FcPatternDuplicate):

	Fix argument ordering problem in call to FcPatternTransferFullFname.

2005-11-02  Patrick Lam  <plam@mit.edu>
	* src/fcfreetype.c (FcFreetypeQuery):
	* src/fcpat.c (FcPatternDestroy, FcPatternDuplicate, 
	               FcPatternTransferFullFname):

	Fix warnings and embarrassing double-free error.

2005-11-02  Zhe Su  <zsu@novell.com>
	reviewed by: plam
	
	* fonts.conf.in:

	Change the rule for artificial emboldening in fonts.conf.in.  This
	enables the support for artificial emboldening included in cairo.

2005-11-02  Patrick Lam  <plam@mit.edu>
	* src/fcpat.c (FcPatternDestroy, FcPatternTransferFullName):

	Don't zero out full names for FC_REF_CONSTANT fonts;
	also, duplicate full names when transferring, and free
	full names when freeing the associated font.
	Reported by Jinghua Luo.

2005-11-02  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (scanDirs):
	* src/fcpat.c (FcValueListSerialize):

	Revert the previous patch and commit the correct patch:
	I forgot a canonicalization in FcValueListSerialize, so
	that it would choke on already-serialized input files.  Duh!

2005-11-02  Patrick Lam  <plam@mit.edu>
	* fc-cache/fc-cache.c (scanDirs):

	Forcibly rescan a directory before writing a fresh local
	cache file for that directory, fixing the losing-fonts
	problem reported by Mike Fabian and also apparently the 
	font cache file corruption.

2005-11-02  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheLoad):

	Fix thinko: actually, the whole global cache is stale 
	if the global cache is older than the (newest) config file.

2005-11-02  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheLoad):
	* src/fccfg.c (FcConfigModifiedTime, FcConfigBuildFonts):
	* src/fcint.h:

	Declare the global cache of a directory's contents to be stale if
	the directory is newer than the (newest) configuration file.

2005-10-31  Patrick Lam  <plam@mit.edu>
	* src/fcint.h:
	* src/fclist.c (FcListAppend):
	* src/fcmatch.c (FcFontRenderPrepare):
	* src/fcpat.c (FcPatternTransferFullFname, FcPatternDuplicate,
	               FcPatternFreeze, FcPatternBaseFreeze):

	Copy the full pathname whenever duplicating an FcPattern; otherwise,
	applications continue breaking.

2005-10-31  Patrick Lam  <plam@mit.edu>
	* fc-cat/fc-cat.c (FcCacheFileRead, main):
	* src/fcfreetype.c (FcFreeTypeQuery):

	Fix small memory error (tried to free argv); use basename and
	dirname correctly (they can modify their arguments).

2005-10-31  Patrick Lam  <plam@mit.edu>
	* fc-cat/fc-cat.c:
	* src/fccache.c:
	* src/fcfreetype.c:
	* src/fcint.h:
	* src/fclist.c:
	* src/fcpat.c:

	Reinstate basename patch, but keep a hash table linking FcPatterns
	to their fully-qualified font names for clients' benefit.  Clients
	only pay for the font names once they request the FC_FILE property
	from an FcPattern, but the font name is malloc'd at that point (i.e.
	not mmapped: that's impossible, since it may vary between machines.)
	Clients do have to pay for a copy of the path name per cache file.

	Note that FcPatternGetString now does some rewriting if you ask
	for an FC_FILE, appending the pathname as appropriate.
	
2005-10-31  Patrick Lam  <plam@mit.edu>
	* src/fcfreetype.c (FcFreeTypeQuery):

	Revert basename patch, which breaks fontconfig clients on my system.

2005-10-25  Jinghua Luo  <sunmoon1997@gmail.com>
	reviewed by: plam

	* fontconfig/fonts.conf.in:
	* fontconfig/fontconfig.h:
	* src/fcdefault.c:
	* src/fcname.c:

	Add FC_EMBEDDED_BITMAP object type to tell Xft/Cairo whether
	to load embedded bitmaps or not.

2005-10-25  Patrick Lam  <plam@mit.edu>
	* src/fcfreetype.c (FcFreeTypeQuery):

	Only add basename to patterns' FC_FILE element, not any part of
	the dirname.

2005-10-22  Patrick Lam  <plam@mit.edu>
	* src/fcfreetype.c:

	Add some more consts, fixing more GCC4 warnings.

2005-10-22  Zhe Su  <zsu@novell.com>
	reviewed by: plam

	Support localized font family and style names.
	This has been reported to break old apps like xfd, but modern
	(gtk+/qt/mozilla) apps work fine.

2005-10-21  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheLoad):

	Destroy the global cache file if it's terminally broken.  (reported by
	Mike Fabian)

2005-10-21  Patrick Lam  <plam@mit.edu>
	* fc-list/fc-list.c (main):
	* src/fcname.c (FcNameUnparse, FcNameUnparseEscaped):
	* fontconfig/fontconfig.h:

	Prevent fc-list from escaping strings when printing them (reported by
	Matthias Clasen).

2005-10-20  Marcus Meissner  <meissner@suse.de>
	reviewed by: plam

	* fontconfig/fontconfig.h:

	Add valist sentinel markup for FcObjectSetBuild and FcPatternBuild.
	
2005-10-14  Ross Burton  <ross@burtonini.com>
	reviewed by: plam

	* fc-glyphname/fc-glyphname.c:
	* src/fclang.c:

	Add consts to variables so as to move arrays into .rodata.

2005-10-14  Mike Fabian  <mfabian@suse.de>
        reviewed by: plam

        * src/fccache.c (FcDirCacheUnlink):

        Check existence of directory cache file before attempting to unlink.

2005-10-13  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheUnlink):

	Fix flipped return value on unlink.  (Reported by Mike Fabian)

2005-10-12  Patrick Lam  <plam@mit.edu>

        * src/fccache.c:
        * src/fcdir.c (FcDirScanConfig):
        * src/fcint.h:

        When fc-cache is run without --force, use directory cache files
        to speed up fc-cache run time.  (Reported by Mike Fabian)

2005-10-06  Patrick Lam  <plam@mit.edu>

        * src/fcname.c (FcObjectToPtr):
        * src/fcpat.c (FcStrStaticName):

        Add padding to make valgrind and glibc not hate each other
        when calling strlen().

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-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  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcCacheHaveBank):

	Implement move-to-front array for banks (perf regression
	reported by Ronny V. Vindenes).

2005-10-04  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheValid, FcDirCacheUnlink, 
	                 FcDirCacheHasCurrentArch):
	* fc-cache/fc-cache.c (scanDirs):
	* fontconfig/fontconfig.h:

	Add new API which unlinks directory caches and checks dir caches
	for existence of appropriate sections.  Fix fc-cache to unlink
	stale cache files and save directory caches that lack relevant
	sections.

2005-10-03  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcDirCacheValid):

	Ensure that a directory cache has the appropriate section
	before reporting that it is valid (reported by Matthias Clasen).

2005-09-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

        reviewed by: plam
	
	* configure.in:
	* src/Makefile.am:
	* src/fcxml.c:

	Use libxml2 if requested (with --enable-libxml2) or if
	expat is not available.

2005-09-29  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheSave, FcDirCacheWrite):

	Fix multi-arch cache files: compute the position for the
	block to be added using info from OrigFile, not NewFile.

2005-09-28  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcCacheMachineSignature):

        Cast results of sizeof() to unsigned int to get rid of
        warnings on x86_64 (thanks Matthias Clasen).

2005-09-27  Patrick Lam  <plam@mit.edu>
	* src/fccache.c (FcGlobalCacheSave, FcCacheCopyOld,
                FcDirCacheWrite):

        Use FcAtomic to rewrite cache files.

2005-09-27  Patrick Lam  <plam@mit.edu>

        * src/fccache.c (FcDirCacheWrite):

        Don't unlink the fonts.cache-2 file even if there's no data
        to write; just write an empty cache file.  (thanks Lubos Lunak)

2005-09-27  Patrick Lam  <plam@mit.edu>

        * src/fccache.c (FcDirCacheWrite):

        Allocate room for the subdirectory names in each
        directory cache.  Thanks to James Cloos for finding
        and diagnosing this bug!

2005-09-22  Patrick Lam  <plam@mit.edu>

        * fc-cache/fc-cache.sgml:
        * src/fccache.c (FcDirCacheWrite):
        * src/fccache.h (struct FcCache):

        Update documentation -- fc-cache's man page now says that you
        need to run fc-cache once per cached architecture; add some
        documentation to the FcCache structure.

        Make fc-cache write out fonts.cache-2 files for directories with
        no fonts (i.e. only subdirectories).
	
2005-09-22  Patrick Lam    <plam@mit.edu>
	* doc/edit-sgml.c:
	* fc-cache/fc-cache.sgml:
	* fc-case/fc-case.c:
	* fc-glyphname/fc-glyphname.c:
	* src/fcdefault.c:
	* src/fcfreetype.c:
	* src/fcinit.c:
	* src/fcxml.c:

	More GCC 4 cleanups, due to Behhad Esfahbod <behdad@beddad.org>.

        * Makefile.am:
	* configure.in:
	* fc-lang/fc-lang.c:
	* fontconfig/fcprivate.h:
	* fontconfig/fontconfig.h:
	* src/fccache.c:
	* src/fccfg.c:
	* src/fccharset.c:
	* src/fcdbg.c:
	* src/fcdir.c:
	* src/fcfs.c:
	* src/fcint.h:
	* src/fclang.c:
	* src/fclist.c:
	* src/fcmatch.c:
	* src/fcname.c:
	* src/fcpat.c:

	Implement new mmaped cache for font information.
	Bump so revision to 2.3.90.

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.
