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


View this message in rfc822 format

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: 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 68 days ago.

Previous Next


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