Skip to content

Commit

Permalink
avy.el (avy--overlay-at-full): Work-around 20607
Browse files Browse the repository at this point in the history
* avy.el (avy--overlay-at-full): There's a problem when there are two
  overlays at the same point in the same buffer, but in different
  windows, *only if* they are of different length. Make them the same
  length to work-around this bug.

See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20607

Fixes #47
  • Loading branch information
abo-abo committed May 18, 2015
1 parent a4f4015 commit be74714
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions avy.el
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,21 @@ LEAF is normally ((BEG . END) . WND)."
(line-end-position))))
(setq str (substring str 0 1))
(setq len 1))
(let ((other-ov (cl-find-if
(lambda (o)
(and (eq (overlay-get o 'category) 'avy)
(eq (overlay-start o) beg)
(not (eq (overlay-get o 'window) wnd))))
(overlays-in (point) (min (+ (point) len)
(line-end-position))))))
(when (and other-ov
(> (overlay-end other-ov)
(+ beg len)))
(setq str (concat str (buffer-substring
(+ beg len)
(overlay-end other-ov))))
(setq len (- (overlay-end other-ov)
beg))))
(let* ((end (if (= beg (line-end-position))
(1+ beg)
(min (+ beg
Expand Down

0 comments on commit be74714

Please sign in to comment.