diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2019-10-28 12:11:46 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-10-28 12:12:00 +0100 |
commit | 3478f2f3d6ccd8c9921b03870261b13d5b6c8ba2 (patch) | |
tree | 8f55a79e8953b1822f549d8ad8c486404be076b1 /lisp/simple.el | |
parent | 098873b4f25922cd79850e0a985d30ba4c0f780a (diff) | |
download | emacs-3478f2f3d6ccd8c9921b03870261b13d5b6c8ba2.tar.gz |
Make <up> work in read-char-with-history
* lisp/simple.el (read-char-with-history): Tweak to make
<up>/<down> also traverse the history (bug#10477).
Diffstat (limited to 'lisp/simple.el')
-rw-r--r-- | lisp/simple.el | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lisp/simple.el b/lisp/simple.el index 5502cd49aa4..184d4eccdb9 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5197,10 +5197,10 @@ a character from history." (t (error "Invalid history: %s" history))) (while (not result) - (setq result (read-char prompt inherit-input-method seconds)) + (setq result (read-event prompt inherit-input-method seconds)) ;; Go back in history. (cond - ((eq result ?\M-p) + ((memq result '(?\M-p up)) (if (>= index (length (symbol-value histvar))) (progn (message "Beginning of history; no preceding item") @@ -5211,7 +5211,7 @@ a character from history." (elt (symbol-value histvar) (1- index))))) (setq result nil)) ;; Go forward in history. - ((eq result ?\M-n) + ((memq result '(?\M-n down)) (if (zerop index) (progn (message "End of history; no next item") @@ -5225,9 +5225,13 @@ a character from history." (setq result nil)) ;; The user hits RET to either select a history item or to ;; return RET. - ((eq result ?\r) - (unless (zerop index) - (setq result (elt (symbol-value histvar) (1- index))))))) + ((eq result 'return) + (if (zerop index) + (setq result ?\r) + (setq result (elt (symbol-value histvar) (1- index))))) + ;; The user has entered some non-character event. + ((not (characterp result)) + (user-error "Non-character input event")))) ;; Record the chosen key. (set histvar (cons result (symbol-value histvar))) result)) |