Better support for the case of typing RET on the prompt in comint.

* lisp/comint.el (comint-get-old-input-default): Go to the field end
when comint-use-prompt-regexp is nil.
(comint-line-beginning-position): Check if point is already
on the prompt before searching for the prompt when
comint-use-prompt-regexp is non-nil.

Fixes: debbugs:19710
This commit is contained in:
Juri Linkov 2015-02-10 02:38:09 +02:00
parent a7b1c2f88f
commit 87fc99fee1
2 changed files with 16 additions and 2 deletions

View file

@ -1,3 +1,13 @@
2015-02-10 Juri Linkov <juri@linkov.net>
Better support for the case of typing RET on the prompt in comint.
* comint.el (comint-get-old-input-default): Go to the field end
when comint-use-prompt-regexp is nil.
(comint-line-beginning-position): Check if point is already
on the prompt before searching for the prompt when
comint-use-prompt-regexp is non-nil. (Bug#19710)
2015-02-08 Eli Zaretskii <eliz@gnu.org>
* frame.el (frame-notice-user-settings): Refresh the value of

View file

@ -2215,7 +2215,10 @@ the current line with any initial string matching the regexp
(null (get-char-property (setq bof (field-beginning)) 'field)))
(field-string-no-properties bof)
(comint-bol)
(buffer-substring-no-properties (point) (line-end-position)))))
(buffer-substring-no-properties (point)
(if comint-use-prompt-regexp
(line-end-position)
(field-end))))))
(defun comint-copy-old-input ()
"Insert after prompt old input at point as new input to be edited.
@ -2263,8 +2266,9 @@ a buffer local variable."
(if comint-use-prompt-regexp
;; Use comint-prompt-regexp
(save-excursion
(re-search-backward comint-prompt-regexp nil t)
(beginning-of-line)
(unless (looking-at comint-prompt-regexp)
(re-search-backward comint-prompt-regexp nil t))
(comint-skip-prompt)
(point))
;; Use input fields. Note that, unlike the behavior of