From e190da78f373511ca999d32f66115bbc75705abf Mon Sep 17 00:00:00 2001 From: schu Date: Thu, 9 Jun 2011 18:11:11 +0200 Subject: [PATCH] fileops: add convenience function is_dot_or_dotdot() Signed-off-by: schu --- src/fileops.c | 9 ++------- src/fileops.h | 8 ++++++++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/fileops.c b/src/fileops.c index 52aeb41a3..edde3aa46 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -231,13 +231,8 @@ int git_futils_direach( size_t de_len; int result; - /* always skip '.' and '..' */ - if (de->d_name[0] == '.') { - if (de->d_name[1] == '\0') - continue; - if (de->d_name[1] == '.' && de->d_name[2] == '\0') - continue; - } + if (is_dot_or_dotdot(de->d_name)) + continue; de_len = strlen(de->d_name); if (path_sz < wd_len + de_len + 1) { diff --git a/src/fileops.h b/src/fileops.h index 4bfebe9d4..cc88682ac 100644 --- a/src/fileops.h +++ b/src/fileops.h @@ -102,6 +102,14 @@ extern int git_futils_mv_withpath(const char *from, const char *to); */ extern git_off_t git_futils_filesize(git_file fd); +/* Taken from git.git */ +static inline int is_dot_or_dotdot(const char *name) +{ + return (name[0] == '.' && + (name[1] == '\0' || + (name[1] == '.' && name[2] == '\0'))); +} + /** * Read-only map all or part of a file into memory. * When possible this function should favor a virtual memory