Fix wrapping of 'previous-completion' at the beginning of buffer
* lisp/simple.el (next-completion): Prevent an error of 'previous-completion' at the beginning of completions buffer. Also fix 'previous-completion' to wrap to the last completion. (bug#54374)
This commit is contained in:
parent
71aec1d044
commit
392d66f6f5
1 changed files with 8 additions and 1 deletions
|
@ -9168,6 +9168,13 @@ forward)."
|
|||
With prefix argument N, move N items (negative N means move
|
||||
backward)."
|
||||
(interactive "p")
|
||||
(let ((prev (previous-single-property-change (point) 'mouse-face)))
|
||||
(goto-char (cond
|
||||
((not prev)
|
||||
(1- (next-single-property-change (point) 'mouse-face)))
|
||||
((/= prev (point))
|
||||
(point))
|
||||
(t prev))))
|
||||
(let ((beg (point-min)) (end (point-max)))
|
||||
(catch 'bound
|
||||
(while (> n 0)
|
||||
|
@ -9185,7 +9192,7 @@ backward)."
|
|||
(unless (get-text-property (point) 'mouse-face)
|
||||
(goto-char (next-single-property-change (point) 'mouse-face nil end)))
|
||||
(setq n (1- n)))
|
||||
(while (< n 0)
|
||||
(while (and (< n 0) (not (bobp)))
|
||||
(let ((prop (get-text-property (1- (point)) 'mouse-face)))
|
||||
;; If in a completion, move to the start of it.
|
||||
(when (and prop (eq prop (get-text-property (point) 'mouse-face)))
|
||||
|
|
Loading…
Add table
Reference in a new issue