Commit 81167385 by Ben Straub

Fix compile and workings on msvc.

Signed-off-by: Ben Straub <bstraub@github.com>
parent d024419f
......@@ -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);
......
......@@ -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) {
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;
FindClose(hFind);
}
} 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
}
......
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