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.