[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master f341c2f 59/78: avy.el (avy--find-visible-regions): Add bou
From: |
Oleh Krehel |
Subject: |
[elpa] master f341c2f 59/78: avy.el (avy--find-visible-regions): Add bounds safety |
Date: |
Sat, 23 Jan 2016 14:00:16 +0000 |
branch: master
commit f341c2f18f33a37f83e70d4f4bfc9a39a55ac0a4
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
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.
- [elpa] master cf36a59 48/78: avy.el (avy--old-str): New defun., (continued)
- [elpa] master cf36a59 48/78: avy.el (avy--old-str): New defun., Oleh Krehel, 2016/01/23
- [elpa] master 3257d81 49/78: Add avy-candidate-* helper functions, Oleh Krehel, 2016/01/23
- [elpa] master 13377d9 51/78: avy.el (avy--update-offset-and-str): Split from avy--overlay-at-full, Oleh Krehel, 2016/01/23
- [elpa] master d4b693f 52/78: avy.el (avy--overlay): Take BEG END, instead of only BEG, Oleh Krehel, 2016/01/23
- [elpa] master 567570a 54/78: Fix 'at-full moving text when visual-line-mode is on, Oleh Krehel, 2016/01/23
- [elpa] master 0756c0b 53/78: avy.el (avy--overlay-at-full): Use avy--overlay, Oleh Krehel, 2016/01/23
- [elpa] master 1b78fb0 57/78: Improve the faces for the last change, Oleh Krehel, 2016/01/23
- [elpa] master dddce37 55/78: Fix 'at-full moving text for chars near end of visual line, Oleh Krehel, 2016/01/23
- [elpa] master edf1259 58/78: avy.el (avy--read-candidates): Use avy-dowindows, Oleh Krehel, 2016/01/23
- [elpa] master 9ae4413 56/78: Fix overlays at end-of-line with visual-line-mode, Oleh Krehel, 2016/01/23
- [elpa] master f341c2f 59/78: avy.el (avy--find-visible-regions): Add bounds safety,
Oleh Krehel <=
- [elpa] master a041429 62/78: avy.el (avy-copy-region): Obey avy-line-insert-style, Oleh Krehel, 2016/01/23
- [elpa] master 54074c7 65/78: avy.el (avy-all-windows-alt): New defcustom, Oleh Krehel, 2016/01/23
- [elpa] master 54fb4d6 61/78: avy.el (avy-line-insert-style): Customize avy-copy-line, avy-move-line, Oleh Krehel, 2016/01/23
- [elpa] master 4a23a0d 60/78: Fix De Bruijn "No catch for tag" error, Oleh Krehel, 2016/01/23
- [elpa] master 4132dd6 63/78: avy.el (avy-goto-line-above): Work in a single window, Oleh Krehel, 2016/01/23
- [elpa] master a45159a 64/78: avy.el (avy-goto-line-above): Exclude the current line, Oleh Krehel, 2016/01/23
- [elpa] master fa6d1e1 66/78: avy.el (avy-copy-region): Fix for multi-buffer use, Oleh Krehel, 2016/01/23
- [elpa] master b1a1953 67/78: Customize extra chars for avy-goto-subword-1, Oleh Krehel, 2016/01/23
- [elpa] master bae6fb1 71/78: avy.el (avy-copy-region): Keep same selectors for the second pass, Oleh Krehel, 2016/01/23
- [elpa] master 72ecbfa 68/78: avy.el (avy-goto-line): fix for narrowed regions, Oleh Krehel, 2016/01/23