From fb19a739d528651e6c78e198269ae856192ffc68 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 23 May 2011 21:39:15 +0200 Subject: [PATCH] util: introduce dirent_is_file() --- src/util.c | 21 +++++++++++++++------ src/util.h | 1 + 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/util.c b/src/util.c index 4046938fc..7f5902182 100644 --- a/src/util.c +++ b/src/util.c @@ -4181,6 +4181,20 @@ finish: return r; } +bool dirent_is_file(struct dirent *de) { + assert(de); + + if (ignore_file(de->d_name)) + return false; + + if (de->d_type != DT_REG && + de->d_type != DT_LNK && + de->d_type != DT_UNKNOWN) + return false; + + return true; +} + void execute_directory(const char *directory, DIR *d, char *argv[]) { DIR *_d = NULL; struct dirent *de; @@ -4214,12 +4228,7 @@ void execute_directory(const char *directory, DIR *d, char *argv[]) { pid_t pid; int k; - if (ignore_file(de->d_name)) - continue; - - if (de->d_type != DT_REG && - de->d_type != DT_LNK && - de->d_type != DT_UNKNOWN) + if (!dirent_is_file(de)) continue; if (asprintf(&path, "%s/%s", directory, de->d_name) < 0) { diff --git a/src/util.h b/src/util.h index 79d634bb6..f2156afb6 100644 --- a/src/util.h +++ b/src/util.h @@ -268,6 +268,7 @@ bool path_equal(const char *a, const char *b); char *ascii_strlower(char *path); +bool dirent_is_file(struct dirent *de); bool ignore_file(const char *filename); bool chars_intersect(const char *a, const char *b); -- 2.30.2