emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/el-search a4004b3 167/332: Make `el-search-reset-search


From: Stefan Monnier
Subject: [elpa] externals/el-search a4004b3 167/332: Make `el-search-reset-search' modify its argument
Date: Tue, 1 Dec 2020 15:48:36 -0500 (EST)

branch: externals/el-search
commit a4004b3e2a9996079abd8c0ca7546a96853276da
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>

    Make `el-search-reset-search' modify its argument
    
    Make `el-search-reset-search' modify its argument instead of returning
    a reset copy.
    
    This fixes `el-search-from-beginning' when called with prefix arg
    which had the first search buffer instantly being killed because the
    new search had not been taken into consideration when killing
    temporarily opened file buffers.
---
 el-search.el | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/el-search.el b/el-search.el
index c73e28d..e30d106 100644
--- a/el-search.el
+++ b/el-search.el
@@ -1166,7 +1166,7 @@ The elements of the returned stream will have the form
 where BUFFER or FILE is the buffer or file where a match has been
 found (exactly one of the two will be nil), and MATCH-BEG is the
 position of the beginning of the match."
-  (let* ((search (el-search-reset-search search))
+  (let* ((search (el-search-reset-search (copy-el-search-object search)))
          (head (el-search-object-head search)))
     (seq-filter
      #'identity ;we use `nil' as a "skip" tag
@@ -1235,17 +1235,16 @@ in, in order, when called with no arguments."
     search))
 
 (defun el-search-reset-search (search)
-  "Return a reset copy of SEARCH."
-  (let* ((copy (copy-el-search-object search))
-         (head (el-search-object-head copy)))
+  "Reset SEARCH."
+  (let ((head (el-search-object-head search)))
     (setf (el-search-head-buffers head)
           (funcall (el-search-head-get-buffer-stream head)))
     (setf (el-search-head-buffer head)   nil)
     (setf (el-search-head-file head)     nil)
     (setf (el-search-head-position head) nil)
-    (setf (el-search-object-last-match copy) nil)
-    (el-search-compile-pattern-in-search copy)
-    copy))
+    (setf (el-search-object-last-match search) nil)
+    (el-search-compile-pattern-in-search search)
+    search))
 
 (defun el-search-setup-search-1 (pattern get-buffer-stream  &optional 
from-here setup-function)
   (setq el-search--success nil)
@@ -1771,7 +1770,7 @@ that the current search."
             (el-search-hl-other-matches (el-search--current-matcher)))))
     (el-search--message-no-log "[Search completed - restarting]")
     (sit-for 1.5)
-    (cl-callf el-search-reset-search el-search--current-search)
+    (el-search-reset-search el-search--current-search)
     (el-search-continue-search)))
 
 (defun el-search-continue-search (&optional from-here)
@@ -1932,7 +1931,7 @@ With prefix arg, restart the current search."
   (if (not restart-search)
       (setf (el-search-head-position (el-search-object-head 
el-search--current-search))
             (point-min))
-    (cl-callf el-search-reset-search el-search--current-search)
+    (el-search-reset-search el-search--current-search)
     (setq el-search--success nil))
   (el-search-continue-search))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]