mirror of
https://git.proxmox.com/git/libgit2
synced 2025-12-31 15:10:23 +00:00
Add git_path_is_dot_or_dotdot.
Also, remove some duplication in the clone test suite.
This commit is contained in:
parent
822d9dd51f
commit
c3b5099fe4
10
src/clone.c
10
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;
|
||||
|
||||
12
src/path.c
12
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);
|
||||
|
||||
@ -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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user