summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fileops.c9
-rw-r--r--src/fileops.h8
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