summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2003-03-12 22:15:39 +0000
committerKeith Packard <keithp@keithp.com>2003-03-12 22:15:39 +0000
commita8386abc916c6ce4b0fa0ca3f9f68aa0232d4824 (patch)
tree171bd5bda527483d43b8a61aab2b8f28cee19ad8 /src
parent89b61da31f88713074fdb396604cd3d8fe7e5ded (diff)
Global cache time checking was using wrong file name and computing wrong
count of fonts per file
Diffstat (limited to 'src')
-rw-r--r--src/fccache.c10
-rw-r--r--src/fcdir.c8
-rw-r--r--src/fcint.h2
3 files changed, 12 insertions, 8 deletions
diff --git a/src/fccache.c b/src/fccache.c
index 3a7cb6c..ab32629 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -309,14 +309,14 @@ FcCacheHash (const FcChar8 *string, int len)
* Verify the saved timestamp for a file
*/
FcBool
-FcGlobalCacheCheckTime (FcGlobalCacheInfo *info)
+FcGlobalCacheCheckTime (const FcChar8 *file, FcGlobalCacheInfo *info)
{
struct stat statb;
- if (stat ((char *) info->file, &statb) < 0)
+ if (stat ((char *) file, &statb) < 0)
{
if (FcDebug () & FC_DBG_CACHE)
- printf (" file missing\n");
+ printf (" file %s missing\n", file);
return FcFalse;
}
if (statb.st_mtime != info->time)
@@ -549,7 +549,7 @@ FcGlobalCacheScanDir (FcFontSet *set,
* See if the timestamp recorded in the global cache
* matches the directory time, if not, return False
*/
- if (!FcGlobalCacheCheckTime (&d->info))
+ if (!FcGlobalCacheCheckTime (d->info.file, &d->info))
{
if (FcDebug () & FC_DBG_CACHE)
printf ("\tdir cache entry time mismatch\n");
@@ -633,7 +633,7 @@ FcGlobalCacheFileGet (FcGlobalCache *cache,
}
}
if (count)
- *count = max;
+ *count = max + 1;
return match;
}
diff --git a/src/fcdir.c b/src/fcdir.c
index 264c5b4..995a908 100644
--- a/src/fcdir.c
+++ b/src/fcdir.c
@@ -70,7 +70,7 @@ FcFileScan (FcFontSet *set,
/*
* Found a cache entry for the file
*/
- if (FcGlobalCacheCheckTime (&cache_file->info))
+ if (FcGlobalCacheCheckTime (file, &cache_file->info))
{
name = cache_file->name;
need_scan = FcFalse;
@@ -89,7 +89,8 @@ FcFileScan (FcFontSet *set,
strlen ((const char *) file),
FcFalse)))
{
- if (FcGlobalCacheCheckTime (&cache_dir->info))
+ if (FcGlobalCacheCheckTime (cache_dir->info.file,
+ &cache_dir->info))
{
font = 0;
need_scan = FcFalse;
@@ -199,6 +200,9 @@ FcDirScan (FcFontSet *set,
strcat ((char *) file, "/");
base = file + strlen ((char *) file);
+ if (FcDebug () & FC_DBG_SCAN)
+ printf ("\tScanning dir %s\n", dir);
+
d = opendir ((char *) dir);
if (!d)
diff --git a/src/fcint.h b/src/fcint.h
index ba5d9a4..9873a66 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -338,7 +338,7 @@ void
FcGlobalCacheDestroy (FcGlobalCache *cache);
FcBool
-FcGlobalCacheCheckTime (FcGlobalCacheInfo *info);
+FcGlobalCacheCheckTime (const FcChar8*file, FcGlobalCacheInfo *info);
void
FcGlobalCacheReferenced (FcGlobalCache *cache,