[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/backports-25.2-strict 6234012 4/4: Don't require i
From: |
Noam Postavsky |
Subject: |
[Emacs-diffs] scratch/backports-25.2-strict 6234012 4/4: Don't require isearch-update before isearch-done |
Date: |
Sun, 2 Oct 2016 16:33:13 +0000 (UTC) |
branch: scratch/backports-25.2-strict
commit 623401267a66929a1c13c264e0dc40ba2599500f
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>
Don't require isearch-update before isearch-done
It is useful to be able to call `isearch-done' unconditionally to
ensure a non-isearching state.
* lisp/isearch.el (isearch-done): Check that `isearch--current-buffer'
is a live buffer before using it (Bug #21091).
* test/lisp/isearch-tests.el (isearch--test-done): Test it.
(cherry picked from commit 68f4b5292781bc331b040105c4079902b993835c)
---
lisp/isearch.el | 7 ++++---
test/automated/isearch-tests.el | 8 ++++++++
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/lisp/isearch.el b/lisp/isearch.el
index a972476..9df7627 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1049,9 +1049,10 @@ NOPUSH is t and EDIT is t."
(remove-hook 'mouse-leave-buffer-hook 'isearch-done)
(remove-hook 'kbd-macro-termination-hook 'isearch-done)
(setq isearch-lazy-highlight-start nil)
- (with-current-buffer isearch--current-buffer
- (setq isearch--current-buffer nil)
- (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit)))
+ (when (buffer-live-p isearch--current-buffer)
+ (with-current-buffer isearch--current-buffer
+ (setq isearch--current-buffer nil)
+ (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit))))
;; Called by all commands that terminate isearch-mode.
;; If NOPUSH is non-nil, we don't push the string on the search ring.
diff --git a/test/automated/isearch-tests.el b/test/automated/isearch-tests.el
index 48c3424..52f312d 100644
--- a/test/automated/isearch-tests.el
+++ b/test/automated/isearch-tests.el
@@ -28,5 +28,13 @@
(isearch-update)
(should (equal isearch--current-buffer (current-buffer)))))
+(ert-deftest isearch--test-done ()
+ ;; Normal operation.
+ (isearch-update)
+ (isearch-done)
+ (should-not isearch--current-buffer)
+ ;; Bug #21091: let `isearch-done' work without `isearch-update'.
+ (isearch-done))
+
(provide 'isearch-tests)
;;; isearch-tests.el ends here