Make eshell-next-prompt more reliable (Bug#27405)

* lisp/eshell/em-prompt.el (eshell-next-prompt): Search for
`eshell-prompt-regexp' (and `read-only' text-property if
`eshell-highlight-prompt' is set) rather than trying to use
`forward-paragraph'.
(eshell-previous-prompt): Don't count prompt on current line.
This commit is contained in:
Noam Postavsky 2017-07-11 22:11:19 -04:00
parent ffde1e9b9e
commit 7a0ca227af

View file

@ -161,14 +161,25 @@ If N is negative, find the previous or Nth previous match."
"Move to end of Nth next prompt in the buffer.
See `eshell-prompt-regexp'."
(interactive "p")
(forward-paragraph n)
(if eshell-highlight-prompt
(progn
(while (< n 0)
(while (and (re-search-backward eshell-prompt-regexp nil t)
(not (get-text-property (match-beginning 0) 'read-only))))
(setq n (1+ n)))
(while (> n 0)
(while (and (re-search-forward eshell-prompt-regexp nil t)
(not (get-text-property (match-beginning 0) 'read-only))))
(setq n (1- n))))
(re-search-forward eshell-prompt-regexp nil t n))
(eshell-skip-prompt))
(defun eshell-previous-prompt (n)
"Move to end of Nth previous prompt in the buffer.
See `eshell-prompt-regexp'."
(interactive "p")
(eshell-next-prompt (- (1+ n))))
(beginning-of-line) ; Don't count prompt on current line.
(eshell-next-prompt (- n)))
(defun eshell-skip-prompt ()
"Skip past the text matching regexp `eshell-prompt-regexp'.