summaryrefslogtreecommitdiff
path: root/lisp/dired-x.el
diff options
context:
space:
mode:
authorChunyang Xu <mail@xuchunyang.me>2017-02-28 00:41:56 +0200
committerJuri Linkov <juri@linkov.net>2017-02-28 00:41:56 +0200
commit50a2ccd87ec6d1b275f3906cec4ccc28be05c589 (patch)
tree1761ab0d6df1d4e04113440e99437343de758fcb /lisp/dired-x.el
parent4daca38d5c673c5b6862e10cfade9559852cce12 (diff)
downloademacs-50a2ccd87ec6d1b275f3906cec4ccc28be05c589.tar.gz
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
Diffstat (limited to 'lisp/dired-x.el')
-rw-r--r--lisp/dired-x.el39
1 files changed, 23 insertions, 16 deletions
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 86c95372c25..6c8fb0e7dae 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -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)))