OSDN Git Service

* syscalls.cc (link): Properly deal with a link to a symlink.
authorcgf <cgf>
Thu, 1 Aug 2002 21:29:31 +0000 (21:29 +0000)
committercgf <cgf>
Thu, 1 Aug 2002 21:29:31 +0000 (21:29 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/syscalls.cc

index 43bcdf0..f5e8e15 100644 (file)
@@ -1,5 +1,9 @@
 2002-08-01  Christopher Faylor  <cgf@redhat.com>
 
+       * syscalls.cc (link): Properly deal with a link to a symlink.
+
+2002-08-01  Christopher Faylor  <cgf@redhat.com>
+
        * cygthread.cc: Remove cruft.
 
 2002-08-01  Christopher Faylor  <cgf@redhat.com>
index 4b2fc3d..84d080c 100644 (file)
@@ -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;