From 7761bd3bb6c56a375ad8d027c20d020aaa33e2d8 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 11 Apr 2019 13:11:53 +0200 Subject: lib/fileutils: add xreaddir() Remove duplicate code and keep only one implementation in include/fileutils.h. Signed-off-by: Karel Zak --- include/fileutils.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include') diff --git a/include/fileutils.h b/include/fileutils.h index 8a7e66261..043f2ca44 100644 --- a/include/fileutils.h +++ b/include/fileutils.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include "c.h" @@ -57,4 +58,18 @@ extern int get_fd_tabsize(void); extern int mkdir_p(const char *path, mode_t mode); extern char *stripoff_last_component(char *path); +/* This is readdir()-like function, but skips "." and ".." directory entries */ +static inline struct dirent *xreaddir(DIR *dp) +{ + struct dirent *d; + + while ((d = readdir(dp))) { + if (!strcmp(d->d_name, ".") || + !strcmp(d->d_name, "..")) + continue; + break; + } + return d; +} + #endif /* UTIL_LINUX_FILEUTILS */ -- cgit v1.2.3-55-g7522