Patrick Lam
c5411c4cae
Make fccache more resilient to broken cache files by checking return value
...
of FcCacheReadString all the time.
reviewed by: plam
2006-01-30 15:44:13 +00:00
Patrick Lam
30c4189deb
Fix global cache reads of subdirectories.
...
reviewed by: plam
2006-01-30 04:47:17 +00:00
Patrick Lam
971cf18018
Add documentation for FcConfigNormalizeFontDir.
...
Write directory information to global caches to fix make check (reported by
Ronny V. Vindenes). This changes the global cache format again.
2006-01-30 04:27:53 +00:00
Patrick Lam
97293e07dd
Move FcConfigNormalizeFontDir call so that it doesn't result in infinite
...
recursion (reported by Ronny V. Vindenes).
2006-01-27 05:47:59 +00:00
Patrick Lam
3cf9f5cec3
Add a couple of missing normalizations to make fc-cache work right; only
...
scan subdirectories once.
2006-01-27 00:27:37 +00:00
Patrick Lam
4073203deb
Don't crash on non-existant directories in global cache.
...
reviewed by: plam
2006-01-26 16:11:41 +00:00
Patrick Lam
f468f568b4
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-26 16:09:12 +00:00
Patrick Lam
575a37b797
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-25 14:52:49 +00:00
Patrick Lam
6f9fcb5186
Fix memory leaks reported by Ronny V. Vindenes.
2006-01-25 02:33:46 +00:00
Patrick Lam
eadadf489a
Fix segfault when consuming zero-length caches in fc-cat (which has no
...
config, so FcConfigAddFontDir shouldn't be called.)
2006-01-15 05:31:58 +00:00
Patrick Lam
8a0b0ed6d0
Compare device numbers as well as inodes. Always normalize directory names
...
before comparing them.
Allocate extra space for appended '/' in directory name.
reviewed by: plam
2006-01-14 21:23:03 +00:00
Patrick Lam
df3efc11a9
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-10 13:15:05 +00:00
Patrick Lam
cd9bca6970
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-09 13:58:04 +00:00
Patrick Lam
05a98eaf4b
Properly skip past dir caches that contain zero fonts (as occurs in global
...
caches.) Reported by Mike Fabian.
2006-01-08 10:50:51 +00:00
Patrick Lam
c60ec7cc6d
Add self to AUTHORS list.
...
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-05 15:12:22 +00:00
Patrick Lam
3bfae75d44
Bump version to 2.3.93.
...
Use open instead of fopen (requested by Phil Race for Sun).
src/fccache.c (FcDirCacheWrite);
Fix GCC4 warning and Makefile brokenness for /var/cache/fontconfig dir.
2005-12-21 03:31:19 +00:00
Patrick Lam
ec760b178a
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 20:45:54 +00:00
Patrick Lam
83b6739035
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 13:46:45 +00:00
Patrick Lam
ea44e21841
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-09 16:36:45 +00:00
Patrick Lam
b8948e8542
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.
reviewed by: plam
2005-11-29 14:57:10 +00:00
Patrick Lam
9fad72abaf
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 06:23:00 +00:00
Patrick Lam
61571f3f2e
Pass around FcCache *s to the Unserialize functions for extra consistency
...
(and less overhead, for what that's worth).
2005-11-25 15:50:34 +00:00
Patrick Lam
1c5b6345b9
Don't add current_arch_start more than once.
...
Fix ordering of ALIGN with respect to saving block_ptr; add another ALIGN
to fcfs.c.
reviewed by: plam
2005-11-17 15:43:39 +00:00
Patrick Lam
8e351527bb
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 17:49:01 +00:00
Patrick Lam
7fd7221e68
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).
Use sysconf to determine proper PAGESIZE value; this appears to be
POSIX-compliant. (reported by Andreas Schwab)
reviewed by: plam
2005-11-16 15:55:17 +00:00
Patrick Lam
9090cb9ece
Fix thinko: actually, the whole global cache is stale if the global cache
...
is older than the (newest) config file.
2005-11-02 06:39:23 +00:00
Patrick Lam
2b25f00c50
Declare the global cache of a directory's contents to be stale if the
...
directory is newer than the (newest) configuration file. S:
----------------------------------------------------------------------
2005-11-02 06:29:14 +00:00
Patrick Lam
e77c17184a
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-11-01 05:26:27 +00:00
Patrick Lam
e58b50e88c
Destroy the global cache file if it's terminally broken. (reported by Mike
...
Fabian)
2005-10-21 20:24:30 +00:00
Patrick Lam
15d7bd0a16
Check existence of directory cache file before attempting to unlink.
...
reviewed by: plam
2005-10-14 20:56:27 +00:00
Patrick Lam
1178b56976
Fix flipped return value on unlink. (Reported by Mike Fabian)
2005-10-13 12:32:14 +00:00
Patrick Lam
2eb8437406
When fc-cache is run without --force, use directory cache files to speed up
...
fc-cache run time.
2005-10-12 07:55:42 +00:00
Patrick Lam
751932ddb1
Implement move-to-front array for banks (perf regression reported by Ronny
...
V. Vindenes).
2005-10-05 18:41:55 +00:00
Patrick Lam
55c8fa4f08
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-05 00:34:52 +00:00
Patrick Lam
6bf2380478
Ensure that a directory cache has the appropriate section before reporting
...
that it is valid (reported by Matthias Clasen).
2005-10-03 19:51:11 +00:00
Patrick Lam
649cc3616d
Fix multi-arch cache files: compute the position for the block to be added
...
using info from OrigFile, not NewFile.
2005-09-29 05:14:04 +00:00
Patrick Lam
cd3109114c
Cast results of sizeof() to unsigned int to get rid of warnings on x86_64
...
(thanks Matthias Clasen).
2005-09-28 16:21:14 +00:00
Patrick Lam
1d879de2d9
Use FcAtomic to rewrite cache files.
2005-09-28 00:23:15 +00:00
Patrick Lam
099f9a8683
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 15:52:58 +00:00
Patrick Lam
6aee8c6faa
Allocate room for the subdirectory names in each directory cache. Thanks to
...
James Cloos for finding and diagnosing this bug!
2005-09-27 05:43:08 +00:00
Patrick Lam
a9698bed65
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-23 04:09:37 +00:00
Patrick Lam
13cdf60753
Revert ill-advised addition of FC_RENDER. Add strategy for handling objects
...
that aren't hardcoded into fontconfig, but generated by fontconfig
clients: keep another array of user-defined objects (indexed after the
built-in objects).
Fix compilation warning (uninitialized variable).
Add comment.
2005-09-15 20:36:44 +00:00
Patrick Lam
8245771d5a
Merge with HEAD and finish the GCC 4 cleanups (no more warnings!)
2005-09-11 02:16:09 +00:00
Patrick Lam
8cb4c56d99
Robustness fixes: check return values from read and lseek; fix
...
uninitialized variables; ensure progress on FcCacheSkipToArch.
2005-09-07 15:38:46 +00:00
Patrick Lam
03a212e525
Really fix the global cache: make sure we're reading and writing the same
...
data format. Also match subdirectories when consuming cache
information. Also check dates for global cache: a dir is out of date if
it is newer than the global cache; scan it manually if that's the case.
2005-09-03 04:56:56 +00:00
Patrick Lam
f6ee3db5f0
Fix addressing in the global cache file, preventing infinite loops. Get rid
...
of unused variables.
2005-09-02 06:16:49 +00:00
Patrick Lam
0230c9f887
Fix embarassing attempt to free a static buffer.
2005-09-01 06:59:44 +00:00
Patrick Lam
2304e38f9b
:
...
Save subdirectory names in cache files to save time. This completely
restores the original fontconfig API, BTW. Note that directories
without fonts don't get a cache file; but then how many files would it
have in that directory...
2005-09-01 06:14:46 +00:00
Patrick Lam
5e678e9459
Only load requested fonts for fc-cache, and cleanup memory handling:
...
*Serialize no longer mutates original FcPatterns, it creates a new copy
in the supplied buffer. Fix thinkos in global cache freeing and in
FcCacheSkipToArch.
2005-08-31 15:12:41 +00:00
Patrick Lam
fd77c154af
Fix compilation error exposed with gcc 2.95.
2005-08-30 23:03:42 +00:00