1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-08 20:58:58 +00:00

Prompt default extension in dired-mark-extension

* lisp/dired-x.el (dired-mark-extension): Prompt default extension
based on extension of file at point.  (Bug#25578)

Copyright-paperwork-exempt: yes
This commit is contained in:
Chunyang Xu 2017-02-28 00:41:56 +02:00 committed by Juri Linkov
parent 4daca38d5c
commit 50a2ccd87e

View File

@ -342,22 +342,29 @@ Interactively, ask for EXTENSION.
Prefixed with one C-u, unmark files instead.
Prefixed with two C-u's, prompt for MARKER-CHAR and mark files with it."
(interactive
(let ((suffix
(read-string (format "%s extension: "
(if (equal current-prefix-arg '(4))
"UNmarking"
"Marking"))))
(marker
(pcase current-prefix-arg
('(4) ?\s)
('(16)
(let* ((dflt (char-to-string dired-marker-char))
(input (read-string
(format
"Marker character to use (default %s): " dflt)
nil nil dflt)))
(aref input 0)))
(_ dired-marker-char))))
(let* ((default
(let ((file (dired-get-filename nil t)))
(when file
(file-name-extension file))))
(suffix
(read-string (format "%s extension%s: "
(if (equal current-prefix-arg '(4))
"UNmarking"
"Marking")
(if default
(format " (default %s)" default)
"")) nil nil default))
(marker
(pcase current-prefix-arg
('(4) ?\s)
('(16)
(let* ((dflt (char-to-string dired-marker-char))
(input (read-string
(format
"Marker character to use (default %s): " dflt)
nil nil dflt)))
(aref input 0)))
(_ dired-marker-char))))
(list suffix marker)))
(or (listp extension)
(setq extension (list extension)))