From d186060b45e856dda0585ef6478b7bf983e28698 Mon Sep 17 00:00:00 2001 From: cgf Date: Thu, 1 Aug 2002 21:29:31 +0000 Subject: [PATCH] * syscalls.cc (link): Properly deal with a link to a symlink. --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/syscalls.cc | 3 +++ 2 files changed, 7 insertions(+) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 43bcdf0060..f5e8e1551c 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,9 @@ 2002-08-01 Christopher Faylor + * syscalls.cc (link): Properly deal with a link to a symlink. + +2002-08-01 Christopher Faylor + * cygthread.cc: Remove cruft. 2002-08-01 Christopher Faylor diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 4b2fc3d073..84d080cf9a 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -617,6 +617,7 @@ _link (const char *a, const char *b) sigframe thisframe (mainthread); path_conv real_b (b, PC_SYM_NOFOLLOW | PC_FULL); path_conv real_a (a, PC_SYM_NOFOLLOW | PC_FULL); + extern BOOL allow_winsymlinks; if (real_a.error) { @@ -647,6 +648,8 @@ _link (const char *a, const char *b) /* Try to make hard link first on Windows NT */ if (wincap.has_hard_links ()) { + if (allow_winsymlinks && real_b.issymlink ()) + strcat (real_a, ".lnk"); if (CreateHardLinkA (real_b, real_a, NULL)) { res = 0; -- 2.11.0