Fix 'dired-mark-extension' with prefix argument

* lisp/dired-x.el (dired-mark-extension): Allow to specify
MARKER-CHAR interactively as a string, not as a character's
codepoint.  (Bug#24518)

* doc/misc/dired-x.texi (Advanced Mark Commands): Document the
behavior when invoked with a prefix arg.
This commit is contained in:
Eli Zaretskii 2016-09-24 18:10:42 +03:00
parent 6ddcb0f10f
commit 5ee56c4613
2 changed files with 14 additions and 3 deletions

View file

@ -710,7 +710,8 @@ variable @code{window-min-height}.
@findex dired-mark-extension
Mark all files with a certain extension for use in later commands. A @samp{.}
is not automatically prepended to the string entered, you must type it
explicitly.
explicitly. If invoked with a prefix argument, this command asks for
a character to use as the marker.
When called from Lisp, @var{extension} may also be a list of extensions
and an optional argument @var{marker-char} specifies the marker used.

View file

@ -333,8 +333,18 @@ See also the functions:
"Mark all files with a certain EXTENSION for use in later commands.
A `.' is *not* automatically prepended to the string entered.
EXTENSION may also be a list of extensions instead of a single one.
Optional MARKER-CHAR is marker to use."
(interactive "sMarking extension: \nP")
Optional MARKER-CHAR is marker to use.
Interactively, ask for EXTENSION, and if invoked with a prefix
argument, for MARKER-CHAR as well."
(interactive
(list (read-string "Marking extension: ")
(and current-prefix-arg
(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)))))
(or (listp extension)
(setq extension (list extension)))
(dired-mark-files-regexp