From: Paul Eggert Date: Tue, 19 Sep 2006 22:11:38 +0000 (+0000) Subject: * src/ln.c (target_directory_operand): Rewrite to avoid porting X-Git-Tag: v6.3~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7889cfbbc7a0fff35d65dce18bc995816aec2389;p=thirdparty%2Fcoreutils.git * src/ln.c (target_directory_operand): Rewrite to avoid porting problem on Tandem reported by Matthew Woehlke in . --- diff --git a/ChangeLog b/ChangeLog index d51b10411e..db940937e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-09-19 Paul Eggert + + * src/ln.c (target_directory_operand): Rewrite to avoid porting + problem on Tandem reported by Matthew Woehlke in + . + 2006-09-18 Paul Eggert Fix bug where chmod, chown, and chgrp did not process operands diff --git a/src/ln.c b/src/ln.c index 46d5834657..0aa5ac520b 100644 --- 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))