summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Straub <bstraub@github.com>2012-07-11 10:10:31 -0700
committerBen Straub <bstraub@github.com>2012-07-11 10:10:31 -0700
commitc3b5099fe46e1191784cc1890cd35f167305f47a (patch)
tree99ba9d21d3ebd34958c4d3b92a3bce54001ed66f /src
parent822d9dd51f8f2567766c38b719d9d6d5bdc1cfa0 (diff)
downloadlibgit2-c3b5099fe46e1191784cc1890cd35f167305f47a.tar.gz
Add git_path_is_dot_or_dotdot.
Also, remove some duplication in the clone test suite.
Diffstat (limited to 'src')
-rw-r--r--src/clone.c10
-rw-r--r--src/path.c12
-rw-r--r--src/path.h8
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.