From 21769fb5b92d19fbc428f8022d2aa3cc81a55db2 Mon Sep 17 00:00:00 2001 From: Chunyang Xu Date: Mon, 30 Jan 2017 21:10:37 +0800 Subject: [PATCH] Prompt default extension in dired-mark-extension * lisp/dired-x.el (dired-mark-extension): Prompt default extension base on extension of file at point. Copyright-paperwork-exempt: yes --- lisp/dired-x.el | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 86c95372c2..6c8fb0e7da 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -342,22 +342,29 @@ dired-mark-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))) -- 2.11.0