Commit Graph

101 Commits

Author SHA1 Message Date
Patrick Lam b17cf498be Fix multiarch support (don't destroy multiarch files!)
Require pkg-config. (Thanks Behdad; better solution wanted for libxml2
    detection!)
reviewed by: plam
2006-03-24 15:21:10 +00:00
Patrick Lam bb6b19938e Get rid of C++-style comments. 2006-03-03 06:35:53 +00:00
Patrick Lam f2fb985c7a Eliminate redundancies.
reviewed by: plam
2006-02-21 15:50:19 +00:00
Patrick Lam 530e66b008 Fix the underlying cause of the below segfault (must usually call
FcDirCacheHasCurrentArch after FcDirCacheValid).
2006-02-18 18:18:07 +00:00
Patrick Lam a68ce9525d Fix segfault (reported by fcrozat) caused by incorrect input on cache
files.
2006-02-18 17:56:25 +00:00
Patrick Lam 8c0d692125 Deal correctly with changing FC_CACHE_MAGIC. 2006-02-16 17:50:04 +00:00
Patrick Lam 719f4b841f 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-16 07:12:04 +00:00
Patrick Lam d00c3cb5e0 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
2006-02-11 05:01:32 +00:00
Patrick Lam 879af7060b Define and pass O_BINARY to open if appropriate, for those platforms that
need it. Reported by Doodle.
2006-02-09 18:44:14 +00:00
Patrick Lam c7490074c5 Fix attempt to close -1. Don't unboundedly grow bad caches (reported by
fcrozat).
2006-02-09 16:19:42 +00:00
Patrick Lam b10e77628c Fix warning. 2006-02-08 03:34:17 +00:00
Patrick Lam 5c3deb2985 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
2006-02-07 22:09:01 +00:00
Patrick Lam a81f23c0ce Fix hidden variable warning. 2006-02-07 03:53:32 +00:00
Patrick Lam 799157dbbf Remove de-escaping logic because FcCacheWriteString doesn't escape anyway.
Do blockwise reading instead of byte-wise for performance.
2006-02-07 02:33:57 +00:00
Patrick Lam 8b413bb62c Takashi Iwai <tiwai@suse.de>
Don't loop infinitely on recursive symlinks (client-side).
2006-02-07 02:22:50 +00:00
Patrick Lam fff5a5af30 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.
reviewed by: plam
2006-02-06 22:44:02 +00:00
Patrick Lam 68355f3877 src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave, FcDirCacheConsume,
FcDirCacheWrite)
Check I/O call return values and eliminate unused variable warnings.
reviewed by: plam
2006-02-05 02:57:21 +00:00
Patrick Lam 1af0f5741a Fix double free in error case. 2006-02-03 23:47:37 +00:00
Patrick Lam 28aefd013d Toast broken global cache files.
reviewed by: plam
2006-01-31 07:16:22 +00:00
Patrick Lam 3616cbe251 Actually use the directories that I added to the global cache. Fixes 'make
check'.
2006-01-31 04:42:20 +00:00
Patrick Lam 81d97094cf Make global cache work again after putting dir names into global cache (I
misplaced the recording of a file offset).
2006-01-30 16:31:56 +00:00
Patrick Lam 2c4e012497 Update fc-cat to handle subdir lists in global cache file.
Another FcCacheReadString return value check.
2006-01-30 15:59:17 +00:00
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