# HG changeset patch # User Roland McGrath # Date 728252523 0 # Node ID 6ca05c5f89793b869beeca2e1fdae2807df1b5fd # Parent ba2fcbf5d6a1823bc10b67279b52921e6886664e (next-complete-history-element): Restore point after replacing the buffer text with the appropriate history element. diff -r ba2fcbf5d6a1 -r 6ca05c5f8979 lisp/simple.el --- 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."