summaryrefslogtreecommitdiff
path: root/fc-cache/fc-cache.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@koto.keithp.com>2007-10-18 04:54:51 -0700
committerKeith Packard <keithp@koto.keithp.com>2007-10-18 04:54:51 -0700
commite12f718f65fc874e9170761f670930124815663e (patch)
tree505fc89e22780d7c8118119ce6e115b863b7e6fd /fc-cache/fc-cache.c
parentf7da903d370dcf662a301930b003485f25db618f (diff)
Remove unneeded call to access(2) in fc-cache.
This call was followed by a call to stat(2) which provided the necessary information. This call to access(2) was necessary when cache files were stored in the font directory as that would check for write permission correctly.
Diffstat (limited to 'fc-cache/fc-cache.c')
-rw-r--r--fc-cache/fc-cache.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c
index acaa8ba1..0415b547 100644
--- a/fc-cache/fc-cache.c
+++ b/fc-cache/fc-cache.c
@@ -153,35 +153,23 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
continue;
}
- if (access ((char *) dir, W_OK) < 0)
+ if (stat ((char *) dir, &statb) == -1)
{
switch (errno) {
case ENOENT:
case ENOTDIR:
if (verbose)
printf ("skipping, no such directory\n");
- continue;
- case EACCES:
- case EROFS:
- /* That's ok, caches go to /var anyway. */
- /* Ideally we'd do an access on the hashed_name. */
- /* But we hid that behind an abstraction barrier. */
break;
default:
fprintf (stderr, "\"%s\": ", dir);
perror ("");
ret++;
-
- continue;
+ break;
}
- }
- if (stat ((char *) dir, &statb) == -1)
- {
- fprintf (stderr, "\"%s\": ", dir);
- perror ("");
- ret++;
continue;
}
+
if (!S_ISDIR (statb.st_mode))
{
fprintf (stderr, "\"%s\": not a directory, skipping\n", dir);