GNU bug report logs - #78658
30.1; [PATCH] Dired feature suggestion: dired-on-marked-files-in-all-buffers

Previous Next

Package: emacs;

Reported by: Phil Sainty <psainty <at> orcon.net.nz>

Date: Sun, 1 Jun 2025 03:20:06 UTC

Severity: normal

Tags: patch

Found in version 30.1

Full log


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

From: Drew Adams <drew.adams <at> oracle.com>
To: Juri Linkov <juri <at> linkov.net>, Phil Sainty <psainty <at> orcon.net.nz>
Cc: "78658 <at> debbugs.gnu.org" <78658 <at> debbugs.gnu.org>
Subject: RE: [External] : bug#78658: 30.1; [PATCH] Dired feature suggestion:
 dired-on-marked-files-in-all-buffers
Date: Mon, 2 Jun 2025 16:23:34 +0000
> (defun diredp-marked-files-in-all-buffers ()
>   "Dired the files and directories marked in any Dired buffers.
> Like `diredp-marked-files', but for all Dired buffers."
>   (interactive)
>   (let ((files  (diredp-get-marked-files-in-all-buffers)))
>     (unless (directory-name-p common) (setq common  (diredp-parent-dir
> common)))
>     (let ((default-directory  (or common  default-directory)))
>       (dired (cons "MARKED-ANYWHERE"
>                    (if common
>                        (mapcar (lambda (file) (file-relative-name file common))
>                                files)
>                      files)))))))

Typo - somehow I omitted some lines.  Should have been this:

(defun diredp-marked-files-in-all-buffers ()
  "Dired the files and directories marked in any Dired buffers.
Like `diredp-marked-files', but for all Dired buffers."
  (interactive)
  (let ((files  (diredp-get-marked-files-in-all-buffers)))
    (unless files (user-error "No marked files in any Dired buffer"))
    (let ((common  (try-completion "" files)))
      (unless (directory-name-p common) (setq common  (diredp-parent-dir common)))
      (let ((default-directory  (or common  default-directory)))
        (dired (cons "MARKED-ANYWHERE"
                     (if common
                         (mapcar (lambda (file) (file-relative-name file common))
                                 files)
                       files)))))))

And it would be good to let users optionally name the resulting buffer:

(defun diredp-marked-files-in-all-buffers (&optional buffer-name)
  "Dired the files and directories marked in any Dired buffers.
Like `diredp-marked-files', but for all Dired buffers.
With a prefix argument you're prompted for the name of the resulting
Dired buffer.  Otherwise, the name is `MARKED-ANYWHERE'."
  (interactive (list (if current-prefix-arg
                         (read-string "Resulting Dired buffer name: ")
                       "MARKED-ANYWHERE")))
  (let ((files  (diredp-get-marked-files-in-all-buffers)))
    (unless files (user-error "No marked files in any Dired buffer"))
    (let ((common  (try-completion "" files)))
      (unless (directory-name-p common) (setq common  (diredp-parent-dir common)))
      (let ((default-directory  (or common  default-directory)))
        (dired (cons buffer-name
                     (if common
                         (mapcar (lambda (file) (file-relative-name file common))
                                 files)
                       files)))))))




This bug report was last modified 6 days ago.

Previous Next


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