summaryrefslogtreecommitdiff
path: root/lisp/comint.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2015-02-10 02:38:09 +0200
committerJuri Linkov <juri@linkov.net>2015-02-10 02:38:09 +0200
commit87fc99fee17ef1df4c22db15ec783a7735d3fc6b (patch)
tree7ee4cce5e6dfde09a7088fe5a2b6b068cb066ae2 /lisp/comint.el
parenta7b1c2f88f06bbeda16117c0aa1caffac1b4ebe1 (diff)
downloademacs-87fc99fee17ef1df4c22db15ec783a7735d3fc6b.tar.gz
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
Diffstat (limited to 'lisp/comint.el')
-rw-r--r--lisp/comint.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/lisp/comint.el b/lisp/comint.el
index 419938ea684..c81551acd5f 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -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