Add a couple of missing normalizations to make fc-cache work right; only
scan subdirectories once.
This commit is contained in:
parent
4073203deb
commit
3cf9f5cec3
|
@ -1,3 +1,10 @@
|
||||||
|
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>
|
2006-01-26 Mike Fabian <mfabian@suse.de>
|
||||||
reviewed by: plam
|
reviewed by: plam
|
||||||
|
|
||||||
|
|
|
@ -609,6 +609,10 @@ FcDirCacheValid (const FcChar8 *dir)
|
||||||
struct stat file_stat, dir_stat;
|
struct stat file_stat, dir_stat;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
|
dir = FcConfigNormalizeFontDir (FcConfigGetCurrent(), dir);
|
||||||
|
if (!dir)
|
||||||
|
return FcFalse;
|
||||||
|
|
||||||
if (stat ((char *) dir, &dir_stat) < 0)
|
if (stat ((char *) dir, &dir_stat) < 0)
|
||||||
return FcFalse;
|
return FcFalse;
|
||||||
|
|
||||||
|
@ -644,6 +648,10 @@ FcDirCacheHasCurrentArch (const FcChar8 *dir)
|
||||||
off_t current_arch_start;
|
off_t current_arch_start;
|
||||||
char *current_arch_machine_name;
|
char *current_arch_machine_name;
|
||||||
|
|
||||||
|
dir = FcConfigNormalizeFontDir (FcConfigGetCurrent(), dir);
|
||||||
|
if (!dir)
|
||||||
|
return FcFalse;
|
||||||
|
|
||||||
fd = FcDirCacheOpen (dir);
|
fd = FcDirCacheOpen (dir);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
goto bail;
|
goto bail;
|
||||||
|
|
|
@ -432,7 +432,7 @@ FcConfigNormalizeFontDir (FcConfig *config,
|
||||||
/* If this is a bottleneck, we can cache the fontDir inodes. */
|
/* If this is a bottleneck, we can cache the fontDir inodes. */
|
||||||
ino_t di;
|
ino_t di;
|
||||||
dev_t dd;
|
dev_t dd;
|
||||||
int n;
|
int n, n0;
|
||||||
struct stat s;
|
struct stat s;
|
||||||
|
|
||||||
if (stat ((char *)d, &s) == -1)
|
if (stat ((char *)d, &s) == -1)
|
||||||
|
@ -448,7 +448,7 @@ FcConfigNormalizeFontDir (FcConfig *config,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ok, we didn't find it in fontDirs; let's add subdirs.... */
|
/* Ok, we didn't find it in fontDirs; let's add subdirs.... */
|
||||||
for (n = 0; n < config->fontDirs->num; n++)
|
for (n = 0, n0 = config->fontDirs->num; n < n0; n++)
|
||||||
FcConfigAddFontDirSubdirs (config, config->fontDirs->strs[n]);
|
FcConfigAddFontDirSubdirs (config, config->fontDirs->strs[n]);
|
||||||
|
|
||||||
/* ... and try again. */
|
/* ... and try again. */
|
||||||
|
|
Loading…
Reference in New Issue