From ac7edd91670ae859cda6e9b2b97fd87f2639433a Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 19 Oct 2015 23:58:17 +0200 Subject: util: improve dir_is_empty() call Simplify the call, and add dir_is_populated() as inverse call, in order to make some checks easier to read. --- src/basic/util.c | 17 ++++------------- src/basic/util.h | 8 ++++++++ 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'src/basic') diff --git a/src/basic/util.c b/src/basic/util.c index 3e90456dd3..c2a2f8dc5c 100644 --- a/src/basic/util.c +++ b/src/basic/util.c @@ -2381,25 +2381,16 @@ bool is_device_path(const char *path) { int dir_is_empty(const char *path) { _cleanup_closedir_ DIR *d; + struct dirent *de; d = opendir(path); if (!d) return -errno; - for (;;) { - struct dirent *de; - - errno = 0; - de = readdir(d); - if (!de && errno != 0) - return -errno; - - if (!de) - return 1; + FOREACH_DIRENT(de, d, return -errno) + return 0; - if (!hidden_file(de->d_name)) - return 0; - } + return 1; } char* dirname_malloc(const char *path) { diff --git a/src/basic/util.h b/src/basic/util.h index ff39eae715..a3ebb987e4 100644 --- a/src/basic/util.h +++ b/src/basic/util.h @@ -358,6 +358,14 @@ bool is_device_path(const char *path); int dir_is_empty(const char *path); char* dirname_malloc(const char *path); +static inline int dir_is_populated(const char *path) { + int r; + r = dir_is_empty(path); + if (r < 0) + return r; + return !r; +} + char* lookup_uid(uid_t uid); char* getlogname_malloc(void); char* getusername_malloc(void); -- cgit v1.2.3-54-g00ecf