Skip to content

Commit 37a7adb

Browse files
committed
Support symlinks for directories in win32
1 parent 604e281 commit 37a7adb

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/win32/posix_w32.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,8 +402,12 @@ int p_symlink(const char *target, const char *path)
402402
git__utf8_to_16(target_w, MAX_PATH, target) < 0)
403403
return -1;
404404

405-
if (!CreateSymbolicLinkW(path_w, target_w,
406-
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE))
405+
DWORD dwFlags = SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE;
406+
407+
if (GetFileAttributesW(target_w) & FILE_ATTRIBUTE_DIRECTORY)
408+
dwFlags |= SYMBOLIC_LINK_FLAG_DIRECTORY;
409+
410+
if (!CreateSymbolicLinkW(path_w, target_w, dwFlags))
407411
return -1;
408412

409413
return 0;

0 commit comments

Comments
 (0)