unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#69117: 30.0.50; Cannot trash directory, if such exists in trash can
@ 2024-02-09  8:01 Jean Louis
  2024-04-10  6:55 ` Ruslan Bekenev
  2024-04-14 12:07 ` Jean Louis
  0 siblings, 2 replies; 4+ messages in thread
From: Jean Louis @ 2024-02-09  8:01 UTC (permalink / raw)
  To: 69117


I cannot trash this directory:

from /home/data1/protected/.cache:
D drwxr-xr-x   4 4.0K Jun 19  2023 kaidan

to

/home/data1/protected/tmp/Wastebasket:
drwxr-xr-x 2 4.0K Feb  9 10:56 kaidan

because "drwxr-xr-x 2 4.0K Feb  9 10:56 kaidan" already exists in the
trash can directory named Wastebasket:

Trashing... 
file-error: Renaming: Directory not empty, /home/data1/protected/.cache/kaidan, /home/data1/protected/tmp/Wastebasket/kaidan



In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.0, Xaw3d scroll bars) of 2023-12-15 built on lco
Repository revision: 8e0882d17a38cb9d309df705e76a8e88529f30a9
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101011
System Description: Debian GNU/Linux trixie/sid

Configured using:
 'configure --with-x-toolkit=lucid --with-mailutils'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LCMS2 LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XAW3D XDBE XIM
XPM LUCID ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
x multi-tty move-toolbar make-network-process emacs)

Memory information:
((conses 16 39117 9845) (symbols 48 5254 0) (strings 32 14218 2026)
 (string-bytes 1 396415) (vectors 16 10414)
 (vector-slots 8 159394 14325) (floats 8 40 14) (intervals 56 291 10)
 (buffers 984 12))

Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#69117: 30.0.50; Cannot trash directory, if such exists in trash can
  2024-02-09  8:01 bug#69117: 30.0.50; Cannot trash directory, if such exists in trash can Jean Louis
@ 2024-04-10  6:55 ` Ruslan Bekenev
  2024-04-14 12:07 ` Jean Louis
  1 sibling, 0 replies; 4+ messages in thread
From: Ruslan Bekenev @ 2024-04-10  6:55 UTC (permalink / raw)
  To: bug#69117

[-- Attachment #1: Type: text/plain, Size: 577 bytes --]

> I cannot trash this directory


I tried to reproduce it and it seems working fine on my end. The file/dir is renamed and then stored in the trash can. In your case it should just rename the kaidan directory to kaidan~1~

Could you please share your ~system-move-file-to-trash~ variable value? 

I came up with the test for this use-case.
It seems passing. I hope someone can review the test case and see if there is better way to replicate the issue. 

P.S.
I initially sent this email to the wrong location. My apologies if it brought a little mess.

Ruslan


[-- Attachment #2: 0001-Test-dired-delete-functionality.patch --]
[-- Type: application/octet-stream, Size: 3300 bytes --]

From b202131097e2774a8e96f0d0e72c07c693977008 Mon Sep 17 00:00:00 2001
From: Ruslan Bekenev <furyinbox@gmail.com>
Date: Wed, 10 Apr 2024 12:58:07 +1000
Subject: [PATCH] Test dired delete functionality

Add test for https://debbugs.gnu.org/69117
The issue described in the bug is that a file cannot be trashed
if a file with the same name already exists in the trash bin.
The test checks this functionality and ensures that the dired delete
functionality works even in case trash bin already has the file with
the same name.
---
 test/lisp/dired-tests.el | 46 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el
index 651b77500a1..d6773ac8a56 100644
--- a/test/lisp/dired-tests.el
+++ b/test/lisp/dired-tests.el
@@ -609,5 +609,51 @@ dired-test-directory-files-and-attributes
       (let ((default-directory test-dir-other))
         (files-tests--insert-directory-shows-given-free test-dir)))))
 
+(ert-deftest dired-test-bug69117 ()
+  "Test for https://debbugs.gnu.org/69117."
+  (let* ((delete-by-moving-to-trash t)
+         (dired-recursive-deletes 'always)
+         (dired-deletion-confirmer (lambda (_) t))
+         (testdir (expand-file-name "bug69117" default-directory))
+         (trash-directory (expand-file-name "trashdir" default-directory))
+         (dir-to-delete "dir-to-delete"))
+    (fmakunbound 'system-move-file-to-trash) ;; make sure file aren't moved to system trash
+    (unwind-protect
+        (progn
+          (mapc (lambda (d)
+                    (when (file-directory-p d)
+                      (delete-directory d t)))
+                  (list trash-directory testdir))
+          (make-directory trash-directory)
+          (make-directory testdir)
+          (when (file-directory-p trash-directory)
+            (progn
+              (when (file-directory-p dir-to-delete)
+                (delete-directory dir-to-delete))
+              ;; create dir-to-delete and delete it
+              (make-directory (expand-file-name dir-to-delete testdir))
+              (dired testdir)
+              (dired-toggle-marks)
+              (should (= 2 (length (directory-files trash-directory)))) ;; . and .. folders are there
+              (should (= 1 (length (dired-get-marked-files))))
+              (dired-do-delete nil)
+              (dired-toggle-marks)
+              (should (= 0 (length (dired-get-marked-files))))
+              (should (= 3 (length (directory-files trash-directory))))
+
+              ;; create dir-to-delete and delete it again
+              (make-directory (expand-file-name dir-to-delete testdir))
+              (revert-buffer)
+              (dired-toggle-marks)
+              (should (= 1 (length (dired-get-marked-files))))
+              (dired-do-delete nil)
+              (dired-toggle-marks)
+              (should (= 0 (length (dired-get-marked-files))))
+              (should (= 4 (length (directory-files trash-directory)))))))
+      (mapc (lambda (d)
+              (when (file-directory-p d)
+                (delete-directory d t)))
+            (list trash-directory testdir)))))
+
 (provide 'dired-tests)
 ;;; dired-tests.el ends here
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#69117: 30.0.50; Cannot trash directory, if such exists in trash can
  2024-02-09  8:01 bug#69117: 30.0.50; Cannot trash directory, if such exists in trash can Jean Louis
  2024-04-10  6:55 ` Ruslan Bekenev
@ 2024-04-14 12:07 ` Jean Louis
  2024-04-14 13:16   ` Eli Zaretskii
  1 sibling, 1 reply; 4+ messages in thread
From: Jean Louis @ 2024-04-14 12:07 UTC (permalink / raw)
  To: 69117

* Jean Louis <bugs@gnu.support> [2024-02-14 11:51]:
> 
> I cannot trash this directory:
> 
> from /home/data1/protected/.cache:
> D drwxr-xr-x   4 4.0K Jun 19  2023 kaidan
> 
> to
> 
> /home/data1/protected/tmp/Wastebasket:
> drwxr-xr-x 2 4.0K Feb  9 10:56 kaidan
> 
> because "drwxr-xr-x 2 4.0K Feb  9 10:56 kaidan" already exists in the
> trash can directory named Wastebasket:
> 
> Trashing... 
> file-error: Renaming: Directory not empty, /home/data1/protected/.cache/kaidan, /home/data1/protected/tmp/Wastebasket/kaidan

That was in February, version from 7th March does not show me this result again, if so, I will report bug again.


Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#69117: 30.0.50; Cannot trash directory, if such exists in trash can
  2024-04-14 12:07 ` Jean Louis
@ 2024-04-14 13:16   ` Eli Zaretskii
  0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2024-04-14 13:16 UTC (permalink / raw)
  To: Jean Louis; +Cc: 69117-done

> Date: Sun, 14 Apr 2024 15:07:56 +0300
> From: Jean Louis <bugs@gnu.support>
> 
> * Jean Louis <bugs@gnu.support> [2024-02-14 11:51]:
> > 
> > I cannot trash this directory:
> > 
> > from /home/data1/protected/.cache:
> > D drwxr-xr-x   4 4.0K Jun 19  2023 kaidan
> > 
> > to
> > 
> > /home/data1/protected/tmp/Wastebasket:
> > drwxr-xr-x 2 4.0K Feb  9 10:56 kaidan
> > 
> > because "drwxr-xr-x 2 4.0K Feb  9 10:56 kaidan" already exists in the
> > trash can directory named Wastebasket:
> > 
> > Trashing... 
> > file-error: Renaming: Directory not empty, /home/data1/protected/.cache/kaidan, /home/data1/protected/tmp/Wastebasket/kaidan
> 
> That was in February, version from 7th March does not show me this result again, if so, I will report bug again.

Thanks.  So I'm closing this bug; please reopen if you see the problem
again.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-14 13:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-09  8:01 bug#69117: 30.0.50; Cannot trash directory, if such exists in trash can Jean Louis
2024-04-10  6:55 ` Ruslan Bekenev
2024-04-14 12:07 ` Jean Louis
2024-04-14 13:16   ` Eli Zaretskii

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).