Commit 22ef0c28 by Russell Belfer

Merge pull request #1680 from csware/win32-junction

Correctly handle win32 junctions
parents eddc1f1e 47537112
...@@ -350,8 +350,7 @@ int git_futils_mkdir( ...@@ -350,8 +350,7 @@ int git_futils_mkdir(
int tmp_errno = errno; int tmp_errno = errno;
/* ignore error if directory already exists */ /* ignore error if directory already exists */
if (p_stat(make_path.ptr, &st) < 0 || if (p_stat(make_path.ptr, &st) < 0 || !S_ISDIR(st.st_mode)) {
!(S_ISDIR(st.st_mode) || S_ISLNK(st.st_mode))) {
errno = tmp_errno; errno = tmp_errno;
giterr_set(GITERR_OS, "Failed to make directory '%s'", make_path.ptr); giterr_set(GITERR_OS, "Failed to make directory '%s'", make_path.ptr);
goto done; goto done;
......
...@@ -90,6 +90,9 @@ static int do_lstat( ...@@ -90,6 +90,9 @@ static int do_lstat(
if (fdata.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) if (fdata.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
fMode |= S_IFLNK; fMode |= S_IFLNK;
if ((fMode & (S_IFDIR | S_IFLNK)) == (S_IFDIR | S_IFLNK)) // junction
fMode ^= S_IFLNK;
buf->st_ino = 0; buf->st_ino = 0;
buf->st_gid = 0; buf->st_gid = 0;
buf->st_uid = 0; buf->st_uid = 0;
......
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