diff options
author | Juri Linkov <juri@linkov.net> | 2015-02-10 02:38:09 +0200 |
---|---|---|
committer | Juri Linkov <juri@linkov.net> | 2015-02-10 02:38:09 +0200 |
commit | 87fc99fee17ef1df4c22db15ec783a7735d3fc6b (patch) | |
tree | 7ee4cce5e6dfde09a7088fe5a2b6b068cb066ae2 /lisp/comint.el | |
parent | a7b1c2f88f06bbeda16117c0aa1caffac1b4ebe1 (diff) | |
download | emacs-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.el | 8 |
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 |