* src/ln.c (target_directory_operand): Rewrite to avoid porting
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 19 Sep 2006 22:11:38 +0000 (22:11 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 19 Sep 2006 22:11:38 +0000 (22:11 +0000)
problem on Tandem reported by Matthew Woehlke in
<https://savannah.gnu.org/bugs/?17172>.

ChangeLog
src/ln.c

index d51b10411e01a265937128a99d8d81c30ed685bf..db940937e30b6891dcfa8e8e8dea7efad0d00687 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/ln.c (target_directory_operand): Rewrite to avoid porting
+       problem on Tandem reported by Matthew Woehlke in
+       <https://savannah.gnu.org/bugs/?17172>.
+
 2006-09-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fix bug where chmod, chown, and chgrp did not process operands
index 46d58346579b3cfb25018e62da2931991907a548..0aa5ac520be75dfe08471246b99ea26d705c0c9f 100644 (file)
--- a/src/ln.c
+++ b/src/ln.c
@@ -112,8 +112,9 @@ target_directory_operand (char const *file)
   size_t blen = strlen (b);
   bool looks_like_a_dir = (blen == 0 || ISSLASH (b[blen - 1]));
   struct stat st;
-  int err = ((dereference_dest_dir_symlinks ? stat : lstat) (file, &st) == 0
-            ? 0 : errno);
+  int stat_result =
+    (dereference_dest_dir_symlinks ? stat (file, &st) : lstat (file, &st));
+  int err = (stat_result == 0 ? 0 : errno);
   bool is_a_dir = !err && S_ISDIR (st.st_mode);
   if (err && err != ENOENT)
     error (EXIT_FAILURE, err, _("accessing %s"), quote (file));
@@ -254,7 +255,7 @@ do_link (const char *source, const char *dest)
      Try to unlink DEST even if we may have backed it up successfully.
      In some unusual cases (when DEST and DEST_BACKUP are hard-links
      that refer to the same file), rename succeeds and DEST remains.
-     If we didn't remove DEST in that case, the subsequent LINKFUNC
+     If we didn't remove DEST in that case, the subsequent symlink or link
      call would fail.  */
 
   if (!ok && errno == EEXIST && (remove_existing_files || dest_backup))