Keith Packard [Mon, 28 Aug 2006 06:40:51 +0000 (23:40 -0700)]
Eliminate ./ and ../ elements from font directory names when scanning.
FcStrCanonFilename eliminates ./ and ../ elements from pathnames through
simple string editing. Also, relative path names are fixed by prepending the
current working directory.
Keith Packard [Mon, 28 Aug 2006 04:53:48 +0000 (21:53 -0700)]
Eliminate global cache. Eliminate multi-arch cache code.
With the removal of the in-directory cache files, and the addition of
per-user cache directories, there is no longer any reason to preserve the
giant global cache file. Eliminating of this unifies the cache structure
and simplifies the overall caching strategies greatly.
Keith Packard [Mon, 28 Aug 2006 01:19:39 +0000 (18:19 -0700)]
Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir.
Normalized directory names offer protection against looped directory trees
but cost enormous numbers of system calls (stat per file in the hierarchy).
Also, cache file directory name contents are validated each time the
directory is modified, don't re-validate every time the cache file is loaded
with an access and stat call.
Keith Packard [Mon, 28 Aug 2006 00:04:01 +0000 (17:04 -0700)]
Write caches to first directory with permission. Valid cache in FcDirCacheOpen.
Previous policy was to attempt to update the cache in place and bail if that
didn't work. Now, search for the first writable directory and place the
cache file there instead. Furthermore, on startup, search directory list for
valid cache files instead of bailing if the first found cache file wasn't
valid.
Keith Packard [Sun, 27 Aug 2006 23:25:07 +0000 (16:25 -0700)]
Construct short architecture name from architecture signature.
Map existing architecture signature to short architecture name
at build time. This architecture name is (as yet) unused, but will be used
to build per-architecture cache files with names made unique by including
the architecture name. The auto-detected architecture name can be overridden
with the --with-arch=ARCH configure option.
Patrick Lam [Fri, 4 Aug 2006 16:13:00 +0000 (16:13 +0000)]
2006-08-04 Keith Packard (keithp@keithp.com) reviewed by: plam
Make cache directories configurable. Simplify and correct some code which
deals with per-directory caches.
Patrick Lam [Thu, 27 Apr 2006 08:13:45 +0000 (08:13 +0000)]
Keith Packard <keithp@keithp.com>
Reduce transient memory usage during config file parsing by allocating
smaller buffers (64 seems to be a magic number).
Keith Packard [Thu, 27 Apr 2006 07:11:44 +0000 (07:11 +0000)]
Make path names in cache files absolute (NB, cache format change) Stop
permitting cache files to be stored in font dirs. Bump cache magic.
Don't include /fonts.cache-2 in cache hash construction.
reviewed by: Patrick Lam <plam@mit.edu>
Patrick Lam [Mon, 10 Apr 2006 15:46:34 +0000 (15:46 +0000)]
Fix double free (spotted by Coverity, CID #1965).
Check if pattern is not null before using it (Coverity defect #1883).
Fix memory leak with hash collision (Coverity defect #1829).
Fix memory leak when bail cases (Coverity defect #1828).
Don't leak directory name (Coverity defect #1827).
reviewed by: plam
Patrick Lam [Fri, 7 Apr 2006 17:27:39 +0000 (17:27 +0000)]
Portability fixes for HP-UX (reported by Christoph Bauer). Replace
'__inline__' by AC_C_INLINE and 'inline'. Replace '__alignof__' by
'fc_alignof'.
reviewed by: plam
Patrick Lam [Fri, 7 Apr 2006 04:42:32 +0000 (04:42 +0000)]
Patrick Lam <plam@mit.edu>
Make fontconfig compile under MinGW:
1) remove unneeded #includes;
2) make use of mmap and sysconf conditional;
3) replace rand_r by srand/rand if needed;
4) use chsize instead of ftruncate; and
5) update libtool exports file
Patrick Lam [Thu, 6 Apr 2006 04:52:21 +0000 (04:52 +0000)]
Reduce amount of dirty rss by const'ing some data structures.
Don't fail if we can't create or remove $(pkgcachedir) i.e.
/var/cache/fontconfig. (reported by Quanah Gibson-Mount).
reviewed by: plam
Patrick Lam [Wed, 8 Mar 2006 20:32:56 +0000 (20:32 +0000)]
debian/po/*
.cvsignore
Remove debian/ directory from sources. See Debian's subversion server at
svn://svn.debian.org/pkg-freedesktop/trunk/fontconfig instead.
Patrick Lam [Wed, 8 Mar 2006 02:30:43 +0000 (02:30 +0000)]
Remove stuff we don't use, make get_{char,short,long} functions of ftglue
macros to be inlined.
Code cleanups (excess prototype, old-style function definition).
reviewed by: plam
Patrick Lam [Thu, 16 Feb 2006 07:12:04 +0000 (07:12 +0000)]
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.
Patrick Lam [Mon, 13 Feb 2006 21:51:11 +0000 (21:51 +0000)]
Skip bitmap fonts which can't even get it together enough to declare a
family name; this appears to reproduce previous fontconfig behaviour.
reviewed by: plam
Patrick Lam [Sat, 11 Feb 2006 05:01:32 +0000 (05:01 +0000)]
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.
reviewed by: plam
Patrick Lam [Sat, 11 Feb 2006 04:50:46 +0000 (04:50 +0000)]
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.
reviewed by: plam
Patrick Lam [Tue, 7 Feb 2006 22:09:01 +0000 (22:09 +0000)]
Don't reject dirs that can't be normalized (fixes lilypond, and is correct
in the context of application font directories.)
Use normalized directory name exclusively in FcCacheReadDirs.
reviewed by: plam
Patrick Lam [Tue, 7 Feb 2006 20:56:48 +0000 (20:56 +0000)]
src/fccharset.c (FcLangCharSetPopulate, FcCharSetInsertLeaf)
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.)
(I forgot to commit the ChangeLog last time.)
reviewed by: plam