branch: master
commit f341c2f18f33a37f83e70d4f4bfc9a39a55ac0a4
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
avy.el (avy--find-visible-regions): Add bounds safety
Re abo-abo/lispy#139
---
avy.el | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/avy.el b/avy.el
index 82a20e4..f42cd42 100644
--- a/avy.el
+++ b/avy.el
@@ -567,16 +567,19 @@ Use OVERLAY-FN to visualize the decision overlay."
(defun avy--find-visible-regions (rbeg rend)
"Return a list of all visible regions between RBEG and REND."
- (let (visibles beg)
- (save-excursion
- (save-restriction
- (narrow-to-region rbeg rend)
- (setq beg (goto-char (point-min)))
- (while (not (= (point) (point-max)))
- (goto-char (avy--next-invisible-point))
- (push (cons beg (point)) visibles)
- (setq beg (goto-char (avy--next-visible-point))))
- (nreverse visibles)))))
+ (setq rbeg (max rbeg (point-min)))
+ (setq rend (min rend (point-max)))
+ (when (< rbeg rend)
+ (let (visibles beg)
+ (save-excursion
+ (save-restriction
+ (narrow-to-region rbeg rend)
+ (setq beg (goto-char (point-min)))
+ (while (not (= (point) (point-max)))
+ (goto-char (avy--next-invisible-point))
+ (push (cons beg (point)) visibles)
+ (setq beg (goto-char (avy--next-visible-point))))
+ (nreverse visibles))))))
(defun avy--regex-candidates (regex &optional beg end pred group)
"Return all elements that match REGEX.