mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-08 16:52:40 -08:00
comint-insert-previous-argument doesn't detect and ignore trailing &
This function is invoked in shell-mode by the user, and is meant to emulate what M-. does in zsh and bash: it inserts an argument from a previous command. Neither zsh nor bash treat a trailing & specially: M-. simply inserts it if it is encountered. Emacs DID have extra logic to detect and discard trailing &, but this logic was buggy, and a && anywhere in the sequence would confuse it. This patch simply removes that logic to fix the bug and to emulate zsh and bash more closely * lisp/comint.el (comint-insert-previous-argument): don't detect and ignore trailing & (Bug#25271) * etc/NEWS: Document this.
This commit is contained in:
parent
74f377b395
commit
ba2ddadb53
2 changed files with 5 additions and 3 deletions
5
etc/NEWS
5
etc/NEWS
|
|
@ -191,6 +191,11 @@ It now treats the optional 2nd argument to mean that the URL should be
|
|||
shown in the currently selected window.
|
||||
|
||||
** Comint
|
||||
*** 'comint-insert-previous-argument' no longer interprets &.
|
||||
This worked strangely in shell-mode in the presence of &&. And omitting this
|
||||
logic makes sense since 'comint-insert-previous-argument' exists to emulate M-.
|
||||
in bash and zsh, and neither of those treat & specially.
|
||||
|
||||
*** 'comint-insert-previous-argument' knows how to count args
|
||||
from the beginning or from the end. This is useful because
|
||||
'comint-insert-previous-argument' exists to emulate M-. in bash and zsh; and
|
||||
|
|
|
|||
|
|
@ -2705,9 +2705,6 @@ is the last argument. This command is like `M-.' in bash and zsh."
|
|||
(set-marker comint-insert-previous-argument-last-start-pos (point))
|
||||
;; Insert the argument.
|
||||
(let ((input-string (comint-previous-input-string 0)))
|
||||
(when (string-match "[ \t\n]*&" input-string)
|
||||
;; strip terminating '&'
|
||||
(setq input-string (substring input-string 0 (match-beginning 0))))
|
||||
(insert (comint-arguments input-string index index)))
|
||||
;; Make next invocation return arg from previous input
|
||||
(setq comint-input-ring-index (1+ (or comint-input-ring-index 0)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue