GNU bug report logs - #48301
28.0.50; Dired asks if buffer "" should be deleted with ls flag -p

Previous Next

Package: emacs;

Reported by: Tassilo Horn <tsdh <at> gnu.org>

Date: Sat, 8 May 2021 22:01:01 UTC

Severity: normal

Tags: moreinfo

Found in version 28.0.50

Done: Tassilo Horn <tsdh <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 48301 in the body.
You can then email your comments to 48301 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#48301; Package emacs. (Sat, 08 May 2021 22:01:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Tassilo Horn <tsdh <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 08 May 2021 22:01:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.50; Dired asks if buffer "" should be deleted with ls flag -p
Date: Sat, 08 May 2021 23:11:15 +0200
1. emacs -Q
2. (setq dired-listing-switches "-Alhp") ;; the -p prints dirs as foo/,
                                         ;; i.e., with trailing /.
3. M-x dired RET ~ RET
4. Visit directory ~/foobar in dired
5. Delete ~/foobar directory in dired
6. Dired asks: "Kill Dired buffer of , too?" where it should ask if the
   buffer of foobar should be killed.

The reason is that with the -p flag to ls which prints directories with
trailing slash, `dired-clean-up-after-deletion' is called with filename
FN "/home/foo/foobar/" and then (file-name-nondirectory
"/home/foo/foobar/") returns "".

Without the -p flag, it would be called with "/home/foo/foobar" where
(file-name-nondirectory "/home/foo/foobar") => "foobar".


In GNU Emacs 28.0.50 (build 23, x86_64-pc-linux-gnu, GTK+ Version 3.24.29, cairo version 1.17.4)
 of 2021-05-08 built on thinkpad-t440p
Repository revision: 79e2d0486c89c6c452df33792976ea6fdf825185
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101001
System Description: Arch Linux

Configured using:
 'configure --with-modules --with-native-compilation'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
  value of $LC_MONETARY: de_DE.utf8
  value of $LC_NUMERIC: de_DE.utf8
  value of $LC_TIME: de_DE.utf8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Messages

Minor modes in effect:
  global-aggressive-indent-mode: t
  dynamic-completion-mode: t
  which-key-mode: t
  company-posframe-mode: t
  global-company-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  override-global-mode: t
  vertico-mode: t
  aggressive-completion-mode: t
  minibuffer-depth-indicate-mode: t
  recentf-mode: t
  pixel-scroll-mode: t
  save-place-mode: t
  savehist-mode: t
  show-paren-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
~/Repos/el/mu/build/mu4e/mu4e hides ~/Repos/el/mu/mu4e/mu4e
~/Repos/el/mu/build/mu4e/mu4e-main hides ~/Repos/el/mu/mu4e/mu4e-main
~/Repos/el/mu/build/mu4e/mu4e-view hides ~/Repos/el/mu/mu4e/mu4e-view
~/Repos/el/mu/build/mu4e/mu4e-org hides ~/Repos/el/mu/mu4e/mu4e-org
~/Repos/el/mu/build/mu4e/mu4e-lists hides ~/Repos/el/mu/mu4e/mu4e-lists
~/Repos/el/mu/build/mu4e/mu4e-actions hides ~/Repos/el/mu/mu4e/mu4e-actions
~/Repos/el/mu/build/mu4e/mu4e-utils hides ~/Repos/el/mu/mu4e/mu4e-utils
~/Repos/el/mu/build/mu4e/mu4e-context hides ~/Repos/el/mu/mu4e/mu4e-context
~/Repos/el/mu/build/mu4e/mu4e-draft hides ~/Repos/el/mu/mu4e/mu4e-draft
~/Repos/el/mu/build/mu4e/mu4e-message hides ~/Repos/el/mu/mu4e/mu4e-message
~/Repos/el/mu/build/mu4e/mu4e-compose hides ~/Repos/el/mu/mu4e/mu4e-compose
~/Repos/el/mu/build/mu4e/mu4e-view-common hides ~/Repos/el/mu/mu4e/mu4e-view-common
~/Repos/el/mu/build/mu4e/mu4e-view-old hides ~/Repos/el/mu/mu4e/mu4e-view-old
~/Repos/el/mu/build/mu4e/mu4e-view-gnus hides ~/Repos/el/mu/mu4e/mu4e-view-gnus
~/Repos/el/mu/build/mu4e/mu4e-headers hides ~/Repos/el/mu/mu4e/mu4e-headers
~/Repos/el/mu/build/mu4e/mu4e-mark hides ~/Repos/el/mu/mu4e/mu4e-mark
~/Repos/el/mu/build/mu4e/mu4e-icalendar hides ~/Repos/el/mu/mu4e/mu4e-icalendar
~/Repos/el/mu/build/mu4e/mu4e-speedbar hides ~/Repos/el/mu/mu4e/mu4e-speedbar
~/Repos/el/mu/build/mu4e/mu4e-contrib hides ~/Repos/el/mu/mu4e/mu4e-contrib
~/Repos/el/mu/build/mu4e/mu4e-proc hides ~/Repos/el/mu/mu4e/mu4e-proc
~/Repos/el/mu/build/mu4e/mu4e-meta hides ~/Repos/el/mu/mu4e/mu4e-meta
~/Repos/el/mu/build/mu4e/mu4e-vars hides ~/Repos/el/mu/mu4e/mu4e-vars
/home/horn/.emacs.d/elpa/transient-20210427.833/transient hides /home/horn/Repos/el/emacs/lisp/transient

Features:
(shadow emacsbug dired-aux secrets network-stream mailalias conf-mode
magit-extras cursor-sensor misearch multi-isearch cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
two-column face-remap view eieio-opt speedbar ezimage dframe shortdoc
help-fns radix-tree mm-archive gnus-fun sort gnus-cite mail-extr qp
company-oddmuse company-keywords company-etags etags fileloop generator
xref project company-gtags company-dabbrev-code company-dabbrev
company-files company-clang company-capf company-cmake company-semantic
company-template company-bbdb paredit vc-mtn vc-hg vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs display-fill-column-indicator auto-package-update
finder-inf generic yaml-mode fish-mode cargo cargo-process rust-utils
rust-mode rust-rustfmt rust-playpen rust-compile compile rust-cargo
web-mode disp-table preview-latex auto-loads tex-site deadgrep spinner s
hl-todo aggressive-indent rainbow-mode vc-git vc-dir ewoc vc
vc-dispatcher epa-file dired-x mu4e-icalendar gnus-icalendar org-capture
org-refile icalendar diary-lib diary-loaddefs mu4e mu4e-org mu4e-main
mu4e-view mu4e-view-gnus mu4e-view-common mu4e-headers mu4e-compose
mu4e-context mu4e-draft mu4e-actions ido rfc2368 mu4e-mark mu4e-proc
mu4e-utils doc-view jka-compr image-mode exif mu4e-lists mu4e-message
flow-fill org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-footnote org-src ob-comint org-pcomplete org-list org-faces
org-entities org-version ob-emacs-lisp ob-core ob-eval org-table ol
org-keys org-compat org-macs org-loaddefs find-func cal-menu calendar
cal-loaddefs mule-util hl-line mu4e-vars mu4e-meta smtpmail-multi
smtpmail sendmail ecomplete completion auto-dictionary flyspell ispell
tramp-smb which-key highlight-parentheses company-restclient
know-your-http-well http-status-codes http-relations http-methods
http-headers restclient company-posframe posframe company pcase
yasnippet forge-list forge-commands forge-semi forge-bitbucket buck
forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github
ghub-graphql treepy gsexp ghub let-alist gnutls forge-notify
forge-revnote forge-pullreq forge-issue forge-topic forge-post
markdown-mode color thingatpt noutline outline forge-repo forge
forge-core forge-db closql emacsql-sqlite advice emacsql
emacsql-compiler magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
which-func imenu magit-diff smerge-mode diff diff-mode git-commit
log-edit pcvs-util add-log magit-core magit-autorevert autorevert
filenotify magit-margin magit-transient magit-process with-editor server
magit-mode transient comp comp-cstr magit-git magit-section magit-utils
crm dash visual-filename-abbrev debbugs soap-client url-http url-auth
url-gw nsm warnings rng-xsd rng-dt rng-util xsd-regexp bug-reference
use-package-bind-key bind-key easy-mmode vertico aggressive-completion
icomplete mb-depth use-package-diminish windmove rx tramp-cache tramp-sh
recentf tree-widget pixel-scroll saveplace savehist paren smiley
gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku
svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud
nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range
message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg
epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader gnus-win gnus wid-edit nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search mm-util
mail-prsvr mail-utils edmacro kmacro dracula-theme diminish cl-extra
help-mode use-package-ensure use-package-core tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell pcomplete comint
ansi-color ring parse-time iso8601 time-date ls-lisp format-spec info
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-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 cl-generic 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 charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 875922 131442)
 (symbols 48 48716 6)
 (strings 32 221966 9449)
 (string-bytes 1 7356230)
 (vectors 16 91176)
 (vector-slots 8 2231600 244469)
 (floats 8 658 635)
 (intervals 56 24199 1855)
 (buffers 992 45))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#48301; Package emacs. (Tue, 11 May 2021 13:27:01 GMT) Full text and rfc822 format available.

Message #8 received at 48301 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: 48301 <at> debbugs.gnu.org
Subject: Re: bug#48301: 28.0.50; Dired asks if buffer "" should be deleted
 with ls flag -p
Date: Tue, 11 May 2021 15:26:10 +0200
Tassilo Horn <tsdh <at> gnu.org> writes:

> 1. emacs -Q
> 2. (setq dired-listing-switches "-Alhp") ;; the -p prints dirs as foo/,
>                                          ;; i.e., with trailing /.
> 3. M-x dired RET ~ RET
> 4. Visit directory ~/foobar in dired
> 5. Delete ~/foobar directory in dired
> 6. Dired asks: "Kill Dired buffer of , too?" where it should ask if the
>    buffer of foobar should be killed.
>
> The reason is that with the -p flag to ls which prints directories with
> trailing slash, `dired-clean-up-after-deletion' is called with filename
> FN "/home/foo/foobar/" and then (file-name-nondirectory
> "/home/foo/foobar/") returns "".

I'm unable to reproduce this bug in Emacs 28 -- I get no prompt at all
when deleting the foobar directory (when testing with "emacs -Q").  Are
there some missing steps here?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) moreinfo. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Tue, 11 May 2021 13:28:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#48301; Package emacs. (Tue, 11 May 2021 15:29:02 GMT) Full text and rfc822 format available.

Message #13 received at 48301 <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 48301 <at> debbugs.gnu.org
Subject: Re: bug#48301: 28.0.50; Dired asks if buffer "" should be deleted
 with ls flag -p
Date: Tue, 11 May 2021 15:41:04 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

>> 1. emacs -Q
>> 2. (setq dired-listing-switches "-Alhp") ;; the -p prints dirs as foo/,
>>                                          ;; i.e., with trailing /.
>> 3. M-x dired RET ~ RET
>> 4. Visit directory ~/foobar in dired
>> 5. Delete ~/foobar directory in dired
>> 6. Dired asks: "Kill Dired buffer of , too?" where it should ask if the
>>    buffer of foobar should be killed.
>>
>> The reason is that with the -p flag to ls which prints directories with
>> trailing slash, `dired-clean-up-after-deletion' is called with filename
>> FN "/home/foo/foobar/" and then (file-name-nondirectory
>> "/home/foo/foobar/") returns "".
>
> I'm unable to reproduce this bug in Emacs 28 -- I get no prompt at all
> when deleting the foobar directory (when testing with "emacs -Q").
> Are there some missing steps here?

Oh, I'm sorry, you are right.  It seems that one needs to require
dired-x, too.  So here a completed/amended recipe:

>> 1. emacs -Q
>> 2. (setq dired-listing-switches "-Alhp") ;; the -p prints dirs as foo/,
>>                                          ;; i.e., with trailing /.

2.1 (require 'dired-x)

>> 3. M-x dired RET ~ RET

3.1 Create foobar subdir using `+ foobar RET'
3.2 Refresh using `g' because only then the new foobar directory will be
    shown as foobar/ instead of foobar (without the trailing /).

>> 4. Visit directory ~/foobar/ in dired (a new dired buffer)
>> 5. Delete ~/foobar/ directory in the original dired buffer
>> 6. Dired asks: "Kill Dired buffer of , too?" where it should ask if the
>>    buffer of foobar should be killed.

Bye,
Tassilo




Reply sent to Tassilo Horn <tsdh <at> gnu.org>:
You have taken responsibility. (Tue, 11 May 2021 19:13:01 GMT) Full text and rfc822 format available.

Notification sent to Tassilo Horn <tsdh <at> gnu.org>:
bug acknowledged by developer. (Tue, 11 May 2021 19:13:01 GMT) Full text and rfc822 format available.

Message #18 received at 48301-done <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 48301-done <at> debbugs.gnu.org
Subject: Re: bug#48301: 28.0.50; Dired asks if buffer "" should be deleted
 with ls flag -p
Date: Tue, 11 May 2021 21:10:54 +0200
Hi again,

I've just had some time to have a look at the issue myself and fixed it
in commit 4e175604b5.  I'm closing this issue.

Bye,
Tassilo




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 09 Jun 2021 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 320 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.