Commit c3b5099f by Ben Straub

Add git_path_is_dot_or_dotdot.

Also, remove some duplication in the clone test
suite.
parent 822d9dd5
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "remote.h" #include "remote.h"
#include "fileops.h" #include "fileops.h"
#include "refs.h" #include "refs.h"
#include "path.h"
GIT_BEGIN_DECL GIT_BEGIN_DECL
...@@ -191,13 +192,6 @@ static int setup_remotes_and_fetch(git_repository *repo, ...@@ -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 */ /* TODO: p_opendir, p_closedir */
static bool path_is_okay(const char *path) static bool path_is_okay(const char *path)
{ {
...@@ -238,7 +232,7 @@ 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) { 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, giterr_set(GITERR_INVALID,
"'%s' exists and is not an empty directory", path); "'%s' exists and is not an empty directory", path);
retval = false; retval = false;
......
...@@ -488,14 +488,6 @@ int git_path_cmp( ...@@ -488,14 +488,6 @@ int git_path_cmp(
return (c1 < c2) ? -1 : (c1 > c2) ? 1 : 0; 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( int git_path_direach(
git_buf *path, git_buf *path,
int (*fn)(void *, git_buf *), int (*fn)(void *, git_buf *),
...@@ -524,7 +516,7 @@ int git_path_direach( ...@@ -524,7 +516,7 @@ int git_path_direach(
while (p_readdir_r(dir, de_buf, &de) == 0 && de != NULL) { while (p_readdir_r(dir, de_buf, &de) == 0 && de != NULL) {
int result; int result;
if (is_dot_or_dotdot(de->d_name)) if (git_path_is_dot_or_dotdot(de->d_name))
continue; continue;
if (git_buf_puts(path, de->d_name) < 0) { if (git_buf_puts(path, de->d_name) < 0) {
...@@ -583,7 +575,7 @@ int git_path_dirload( ...@@ -583,7 +575,7 @@ int git_path_dirload(
char *entry_path; char *entry_path;
size_t entry_len; size_t entry_len;
if (is_dot_or_dotdot(de->d_name)) if (git_path_is_dot_or_dotdot(de->d_name))
continue; continue;
entry_len = strlen(de->d_name); entry_len = strlen(de->d_name);
......
...@@ -80,6 +80,14 @@ extern int git_path_to_dir(git_buf *path); ...@@ -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); 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 #ifdef GIT_WIN32
/** /**
* Convert backslashes in path to forward slashes. * Convert backslashes in path to forward slashes.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment