diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2006-09-19 22:11:38 +0000 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2006-09-19 22:11:38 +0000 |
| commit | 7889cfbbc7a0fff35d65dce18bc995816aec2389 (patch) | |
| tree | 52b1d905b00fd6fb58aef724342b2d696aae15e7 /src/ln.c | |
| parent | (cp invocation): Clarify cp -i a bit more. (diff) | |
| download | coreutils-7889cfbbc7a0fff35d65dce18bc995816aec2389.tar.gz coreutils-7889cfbbc7a0fff35d65dce18bc995816aec2389.zip | |
* src/ln.c (target_directory_operand): Rewrite to avoid porting
problem on Tandem reported by Matthew Woehlke in
<https://savannah.gnu.org/bugs/?17172>.
Diffstat (limited to 'src/ln.c')
| -rw-r--r-- | src/ln.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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)) |
