Subject: bug#21663: Subject: 25.0.50; isearch-edit-string dont resume multi isearches

From: Tino Calancha <[email-masked]>
Date: Sun, 11 Oct 2015 13:57:51 +0900 (JST)

Start fresh session:
emacs -Q

C-x C-b
M-x multi-isearch-buffer RET *scratch* RET *Buffer List* RET RET s
(Using C-s several times will search "s" on the two buffers).

M-s e
(Now C-s should keep searching the same string "s" in the two buffers,
  but the string is searched just in the current buffer).
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 4fc9b38..5440be7 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1086,7 +1086,10 @@ isearch-done
       ;; Update the ring data.
       (isearch-update-ring isearch-string isearch-regexp))
 
-  (let ((isearch-mode-end-hook-quit (and nopush (not edit))))
+  (let ((isearch-mode-end-hook-quit (and nopush (not edit)))
+        (isearch-mode-end-hook      (if (and nopush edit multi-isearch-buffer-list)
+                                        (delq 'multi-isearch-end isearch-mode-end-hook)
+                                      isearch-mode-end-hook)))
     (run-hooks 'isearch-mode-end-hook))
 
   ;; If there was movement, mark the starting position.