From: Jim Meyering Date: Sun, 18 Apr 2004 13:09:27 +0000 (+0000) Subject: (readdir_ignoring_dot_and_dotdot): New inline function, from remove.c. X-Git-Tag: v5.3.0~1753 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de48260615454b6815e02beaae09eafae26785aa;p=thirdparty%2Fcoreutils.git (readdir_ignoring_dot_and_dotdot): New inline function, from remove.c. --- diff --git a/src/system.h b/src/system.h index 978b613d90..17b6da1ddb 100644 --- a/src/system.h +++ b/src/system.h @@ -572,6 +572,18 @@ uid_t getuid (); (Basename[0] == '.' && (Basename[1] == '\0' \ || (Basename[1] == '.' && Basename[2] == '\0'))) +/* A wrapper for readdir so that callers don't see entries for `.' or `..'. */ +static inline struct dirent const * +readdir_ignoring_dot_and_dotdot (DIR *dirp) +{ + while (1) + { + struct dirent const *dp = readdir (dirp); + if (dp == NULL || ! DOT_OR_DOTDOT (dp->d_name)) + return dp; + } +} + #if SETVBUF_REVERSED # define SETVBUF(Stream, Buffer, Type, Size) \ setvbuf (Stream, Type, Buffer, Size)