branch: master
commit 7c40f5e3811716b05d87a06096b190f7cf7bdc45
Author: Oleh Krehel <ohwoeo...@gmail.com>
Commit: Oleh Krehel <ohwoeo...@gmail.com>

    avy.el (avy--process): Fix the candidates list being modified when 
restarting
    
    For example, with multiple windows, `avy-goto-char' followed by "x"
    would change the overlays to a subset of the overlays in the current window.
---
 avy.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/avy.el b/avy.el
index 38ca4f8..420bd1d 100644
--- a/avy.el
+++ b/avy.el
@@ -756,13 +756,14 @@ Use OVERLAY-FN to visualize the decision overlay."
     (setq candidates
           (mapcar (lambda (x) (cons x (selected-window)))
                   candidates)))
-  (let ((res (avy--process-1 candidates overlay-fn)))
+  (let ((original-cands (copy-sequence candidates))
+        (res (avy--process-1 candidates overlay-fn)))
     (cond
       ((null res)
        (message "zero candidates")
        t)
       ((eq res 'restart)
-       (avy--process candidates overlay-fn))
+       (avy--process original-cands overlay-fn))
       ;; ignore exit from `avy-handler-function'
       ((eq res 'exit))
       (t

Reply via email to