Mercurial > emacs
changeset 1826:6ca05c5f8979
(next-complete-history-element): Restore point after replacing the
buffer text with the appropriate history element.
author | Roland McGrath <roland@gnu.org> |
---|---|
date | Thu, 28 Jan 1993 20:22:03 +0000 |
parents | ba2fcbf5d6a1 |
children | e31051f17b9d |
files | lisp/simple.el |
diffstat | 1 files changed, 13 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Thu Jan 28 06:17:47 1993 +0000 +++ b/lisp/simple.el Thu Jan 28 20:22:03 1993 +0000 @@ -438,7 +438,10 @@ (car key-and-command) (let ((command (cdr key-and-command))) (if (consp command) - (if (cdr keymap-and-completionp) + ;; (and ... nil) => ... turns back on the completion-oriented + ;; history commands which rms turned off since they seem to + ;; do things he doesn't like. + (if (and (cdr keymap-and-completionp) nil) ;XXX turned off (cdr command) (car command)) command)))) @@ -447,11 +450,8 @@ (minibuffer-local-completion-map . t) (minibuffer-local-must-match-map . t) (read-expression-map . nil)))) - ;;; This was once set up to use the completion-oriented history commands - ;;; but I turned that off since they seem to do things I don't like. - ;;; - rms - '(("\en" . (next-history-element . next-history-element)) - ([next] . (next-history-element . next-history-element)) + '(("\en" . (next-history-element . next-complete-history-element)) + ([next] . (next-history-element . next-complete-history-element)) ("\ep" . (previous-history-element . previous-history-element)) ([prior] . (previous-history-element . previous-history-element)) ("\er" . previous-matching-history-element) @@ -541,8 +541,13 @@ "\ Get previous element of history which is a completion of minibuffer contents." (interactive "p") - (next-matching-history-element - (concat "^" (regexp-quote (buffer-substring (point-min) (point)))) n)) + (let ((point-at-start (point))) + (next-matching-history-element + (concat "^" (regexp-quote (buffer-substring (point-min) (point)))) n) + ;; next-matching-history-element always puts us at (point-min). + ;; Move to the position we were at before changing the buffer contents. + ;; This is still sensical, because the text before point has not changed. + (goto-char point-at-start))) (defun previous-complete-history-element (n) "Get next element of history which is a completion of minibuffer contents."