unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Mike Kupfer <mkupfer@alum.berkeley.edu>
Cc: 58721@debbugs.gnu.org, gusbrs.2016@gmail.com
Subject: bug#58721: 28.2; dired with delete-by-moving-to-trash can't trash directory twice
Date: Mon, 31 Oct 2022 14:49:08 +0200	[thread overview]
Message-ID: <83y1swdupn.fsf@gnu.org> (raw)
In-Reply-To: <58149.1667174501@alto> (message from Mike Kupfer on Sun, 30 Oct 2022 17:01:41 -0700)

> From: Mike Kupfer <mkupfer@alum.berkeley.edu>
> cc: Eli Zaretskii <eliz@gnu.org>, 58721@debbugs.gnu.org
> Date: Sun, 30 Oct 2022 17:01:41 -0700
> 
> Gustavo Barros wrote:
> 
> > I may be wrong but, as far as my reading goes, I think this might
> > misbehave if the "directory" is a symlink. `is-directory' is built as
> > `(file-directory-p fn)' which returns t even if it is a symlink to a
> > directory. 
> 
> Good point, thanks.  I think this points out a pre-existing issue with
> move-file-to-trash, in that the code to create a unique trash name will
> create a directory, rather than a file.

What is the expected semantics of moving a symlink to trashcan?  Is it
supposed to move the symlink or its target?  (I'd think it's the
former, but maybe my instincts are wrong.)  If the expectations are
that the symlink is moved, then all we need to do is to treat symlinks
as regular files, by augmenting file-directory-p not to dupe us.

> > Besides that, in general, imho I cannot think of this issue as
> > something else other than a misbehavior of `rename-file', so that the
> > patch in these terms feels like a workaround.
> 
> I agree that it's an inconsistency in the behavior of rename-file.  If
> the thing being renamed is a file, the target gets replaced, whether or
> not we're crossing filesystems.  But if it's a directory, the target
> gets replaced if it's in the same filesystem, but it's an error if the
> target is in a different filesystem.  If I understand Eli's concern,
> it's a question of whether making the behavior more consistent is worth
> the risk that it would break existing code--code that could assume the
> current behavior.

I'm okay with filing another bug report about rename-file, and
discussing this there.  But that's a separate issue, and fix of this
bug should not depend on that.





  parent reply	other threads:[~2022-10-31 12:49 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-22 18:23 bug#58721: 28.2; dired with delete-by-moving-to-trash can't trash directory twice Gustavo Barros
2022-10-27 16:09 ` Eli Zaretskii
2022-10-27 17:07   ` Gustavo Barros
2022-10-27 17:22     ` Gustavo Barros
2022-10-27 17:30     ` Eli Zaretskii
2022-10-27 17:51       ` Gustavo Barros
2022-10-27 18:20         ` Eli Zaretskii
2022-10-27 18:41           ` Gustavo Barros
2022-10-27 19:04             ` Eli Zaretskii
2022-10-27 19:13               ` Gustavo Barros
2022-10-27 22:01               ` Gustavo Barros
2022-10-28  7:46                 ` Eli Zaretskii
2022-10-28 10:43                   ` Gustavo Barros
2022-10-28 11:44                     ` Eli Zaretskii
2022-10-28 12:35                       ` Gustavo Barros
2022-10-28 15:26                         ` Stefan Kangas
2022-10-28 16:06                           ` Gustavo Barros
2022-10-28 19:07                             ` Gustavo Barros
2022-10-29  5:25                       ` Mike Kupfer
2022-10-29 10:35                         ` Gustavo Barros
2022-10-29 15:24                         ` Mike Kupfer
2022-10-29 15:48                           ` Eli Zaretskii
2022-10-29 16:32                             ` Mike Kupfer
2022-10-29 16:56                               ` Eli Zaretskii
2022-10-30  0:09                                 ` Mike Kupfer
2022-10-30  6:41                                   ` Eli Zaretskii
2022-10-30 17:40                                     ` Mike Kupfer
2022-10-30 18:02                                       ` Eli Zaretskii
2022-10-30 18:18                                         ` Mike Kupfer
2022-10-30 19:51                                           ` Eli Zaretskii
2022-10-30 22:20                                             ` Mike Kupfer
2022-10-30 23:10                                               ` Gustavo Barros
2022-10-31  0:01                                                 ` Mike Kupfer
2022-10-31  0:23                                                   ` Gustavo Barros
2022-10-31 12:49                                                   ` Eli Zaretskii [this message]
2022-10-31 13:16                                                     ` Gustavo Barros
2022-11-21  1:08                                                       ` Mike Kupfer
2022-11-21  1:45                                                         ` Gustavo Barros
2022-11-21  1:52                                                           ` Mike Kupfer
2022-11-24 11:19                                                         ` Eli Zaretskii
2022-11-24 11:28                                                           ` Gustavo Barros
2022-10-27 19:07             ` Gustavo Barros

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83y1swdupn.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=58721@debbugs.gnu.org \
    --cc=gusbrs.2016@gmail.com \
    --cc=mkupfer@alum.berkeley.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).