mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-07 07:10:07 +00:00
Fix compile and workings on msvc.
Signed-off-by: Ben Straub <bstraub@github.com>
This commit is contained in:
parent
d024419f16
commit
81167385e9
@ -36,16 +36,16 @@ static int apply_filters(git_buf *out,
|
||||
size_t len)
|
||||
{
|
||||
int retcode = GIT_ERROR;
|
||||
git_buf origblob = GIT_BUF_INIT;
|
||||
|
||||
git_buf_clear(out);
|
||||
|
||||
if (!filters->length) {
|
||||
/* No filters to apply; just copy the result */
|
||||
git_buf_put(out, data, len);
|
||||
git_buf_put(out, (const char *)data, len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
git_buf origblob = GIT_BUF_INIT;
|
||||
git_buf_attach(&origblob, (char*)data, len);
|
||||
retcode = git_filters_apply(out, &origblob, filters);
|
||||
git_buf_detach(&origblob);
|
||||
|
28
src/path.c
28
src/path.c
@ -391,8 +391,16 @@ bool git_path_isfile(const char *path)
|
||||
|
||||
#ifdef GIT_WIN32
|
||||
|
||||
static bool is_dot_or_dotdotW(const wchar_t *name)
|
||||
{
|
||||
return (name[0] == L'.' &&
|
||||
(name[1] == L'\0' ||
|
||||
(name[1] == L'.' && name[2] == L'\0')));
|
||||
}
|
||||
|
||||
bool git_path_is_empty_dir(const char *path)
|
||||
{
|
||||
git_buf pathbuf = GIT_BUF_INIT;
|
||||
HANDLE hFind = INVALID_HANDLE_VALUE;
|
||||
wchar_t *wbuf;
|
||||
WIN32_FIND_DATAW ffd;
|
||||
@ -400,13 +408,23 @@ bool git_path_is_empty_dir(const char *path)
|
||||
|
||||
if (!git_path_isdir(path)) return false;
|
||||
|
||||
wbuf = gitwin_to_utf16(path);
|
||||
gitwin_append_utf16(wbuf, "\\*", 2);
|
||||
git_buf_printf(&pathbuf, "%s\\*", path);
|
||||
wbuf = gitwin_to_utf16(git_buf_cstr(&pathbuf));
|
||||
|
||||
hFind = FindFirstFileW(wbuf, &ffd);
|
||||
if (INVALID_HANDLE_VALUE != hFind) {
|
||||
retval = false;
|
||||
FindClose(hFind);
|
||||
if (INVALID_HANDLE_VALUE == hFind) {
|
||||
giterr_set(GITERR_OS, "Couldn't open '%s'", path);
|
||||
return false;
|
||||
}
|
||||
|
||||
do {
|
||||
if (!is_dot_or_dotdotW(ffd.cFileName)) {
|
||||
retval = false;
|
||||
}
|
||||
} while (FindNextFileW(hFind, &ffd) != 0);
|
||||
|
||||
FindClose(hFind);
|
||||
git_buf_free(&pathbuf);
|
||||
git__free(wbuf);
|
||||
return retval;
|
||||
}
|
||||
|
@ -96,10 +96,10 @@ void test_clone_clone__network_full(void)
|
||||
#if DO_LIVE_NETWORK_TESTS
|
||||
git_remote *origin;
|
||||
|
||||
cl_git_pass(git_clone(&g_repo, LIVE_REPO_URL, "./test", NULL));
|
||||
cl_git_pass(git_clone(&g_repo, LIVE_REPO_URL, "./test2", NULL));
|
||||
cl_assert(!git_repository_is_bare(g_repo));
|
||||
cl_git_pass(git_remote_load(&origin, g_repo, "origin"));
|
||||
git_futils_rmdir_r("./test", GIT_DIRREMOVAL_FILES_AND_DIRS);
|
||||
git_futils_rmdir_r("./test2", GIT_DIRREMOVAL_FILES_AND_DIRS);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user