branch: master
commit 7376a0c6115addcafe35084181547af105ce060a
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
avy.el (avy--overlay-at-full): Fixup (for overlays-in)
* avy.el (avy--overlay-at-full): Account for `overlays-in' not being
returned in the buffer order sometimes: it seems to be random order.
Instead, look at the minimum of all overlay starts that are on the
current line.
Fixes #52.
---
avy.el | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/avy.el b/avy.el
index 01acb2c..0caeb8a 100644
--- a/avy.el
+++ b/avy.el
@@ -596,12 +596,16 @@ LEAF is normally ((BEG . END) . WND)."
(with-selected-window wnd
(save-excursion
(goto-char beg)
- (when (setq oov (cl-find-if (lambda (o)
- (and (eq (overlay-get o 'category) 'avy)
- (eq (overlay-get o 'window) wnd)))
- (overlays-in (point) (min (+ (point) len)
-
(line-end-position)))))
- (setq len (- (overlay-start oov) beg))
+ (when (setq oov
+ (delq nil
+ (mapcar
+ (lambda (o)
+ (and (eq (overlay-get o 'category) 'avy)
+ (eq (overlay-get o 'window) wnd)
+ (overlay-start o)))
+ (overlays-in (point) (min (+ (point) len)
+ (line-end-position))))))
+ (setq len (- (apply #'min oov) beg))
(setq str (substring str 0 len)))
(let ((other-ov (cl-find-if
(lambda (o)