diff options
| author | Ben Straub <bstraub@github.com> | 2012-07-11 10:10:31 -0700 |
|---|---|---|
| committer | Ben Straub <bstraub@github.com> | 2012-07-11 10:10:31 -0700 |
| commit | c3b5099fe46e1191784cc1890cd35f167305f47a (patch) | |
| tree | 99ba9d21d3ebd34958c4d3b92a3bce54001ed66f | |
| parent | 822d9dd51f8f2567766c38b719d9d6d5bdc1cfa0 (diff) | |
| download | libgit2-c3b5099fe46e1191784cc1890cd35f167305f47a.tar.gz | |
Add git_path_is_dot_or_dotdot.
Also, remove some duplication in the clone test
suite.
| -rw-r--r-- | src/clone.c | 10 | ||||
| -rw-r--r-- | src/path.c | 12 | ||||
| -rw-r--r-- | src/path.h | 8 |
3 files changed, 12 insertions, 18 deletions
diff --git a/src/clone.c b/src/clone.c index 9e527280c..3f161c810 100644 --- a/src/clone.c +++ b/src/clone.c @@ -24,6 +24,7 @@ #include "remote.h" #include "fileops.h" #include "refs.h" +#include "path.h" GIT_BEGIN_DECL @@ -191,13 +192,6 @@ static int setup_remotes_and_fetch(git_repository *repo, } -static bool is_dot_or_dotdot(const char *name) -{ - return (name[0] == '.' && - (name[1] == '\0' || - (name[1] == '.' && name[2] == '\0'))); -} - /* TODO: p_opendir, p_closedir */ static bool path_is_okay(const char *path) { @@ -238,7 +232,7 @@ static bool path_is_okay(const char *path) } while ((e = readdir(dir)) != NULL) { - if (!is_dot_or_dotdot(e->d_name)) { + if (!git_path_is_dot_or_dotdot(e->d_name)) { giterr_set(GITERR_INVALID, "'%s' exists and is not an empty directory", path); retval = false; diff --git a/src/path.c b/src/path.c index a6574b3de..3de4b1100 100644 --- a/src/path.c +++ b/src/path.c @@ -488,14 +488,6 @@ int git_path_cmp( return (c1 < c2) ? -1 : (c1 > c2) ? 1 : 0; } -/* Taken from git.git */ -GIT_INLINE(int) is_dot_or_dotdot(const char *name) -{ - return (name[0] == '.' && - (name[1] == '\0' || - (name[1] == '.' && name[2] == '\0'))); -} - int git_path_direach( git_buf *path, int (*fn)(void *, git_buf *), @@ -524,7 +516,7 @@ int git_path_direach( while (p_readdir_r(dir, de_buf, &de) == 0 && de != NULL) { int result; - if (is_dot_or_dotdot(de->d_name)) + if (git_path_is_dot_or_dotdot(de->d_name)) continue; if (git_buf_puts(path, de->d_name) < 0) { @@ -583,7 +575,7 @@ int git_path_dirload( char *entry_path; size_t entry_len; - if (is_dot_or_dotdot(de->d_name)) + if (git_path_is_dot_or_dotdot(de->d_name)) continue; entry_len = strlen(de->d_name); diff --git a/src/path.h b/src/path.h index fd76805e5..76e01fc8f 100644 --- a/src/path.h +++ b/src/path.h @@ -80,6 +80,14 @@ extern int git_path_to_dir(git_buf *path); */ extern void git_path_string_to_dir(char* path, size_t size); +/* Taken from git.git */ +GIT_INLINE(int) git_path_is_dot_or_dotdot(const char *name) +{ + return (name[0] == '.' && + (name[1] == '\0' || + (name[1] == '.' && name[2] == '\0'))); +} + #ifdef GIT_WIN32 /** * Convert backslashes in path to forward slashes. |
