From: Juri Linkov Date: Tue, 5 Oct 2004 04:22:41 +0000 (+0000) Subject: (isearch-done): Set mark after running hook. X-Git-Tag: ttn-vms-21-2-B4~4720 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=071fdd66922f288844c3aa52edfdbd375179d866;p=emacs.git (isearch-done): Set mark after running hook. Suggested by Drew Adams . --- diff --git a/lisp/isearch.el b/lisp/isearch.el index 117d1bfdc13..96a3e0e0ac2 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -680,16 +680,7 @@ is treated as a regexp. See \\[isearch-forward] for more info." (if isearch-small-window (goto-char found-point) ;; Exiting the save-window-excursion clobbers window-start; restore it. - (set-window-start (selected-window) found-start t)) - - ;; If there was movement, mark the starting position. - ;; Maybe should test difference between and set mark iff > threshold. - (if (/= (point) isearch-opoint) - (or (and transient-mark-mode mark-active) - (progn - (push-mark isearch-opoint t) - (or executing-kbd-macro (> (minibuffer-depth) 0) - (message "Mark saved where search started")))))) + (set-window-start (selected-window) found-start t))) (setq isearch-mode nil) (if isearch-input-method-local-p @@ -714,6 +705,16 @@ is treated as a regexp. See \\[isearch-forward] for more info." (isearch-update-ring isearch-string isearch-regexp)) (run-hooks 'isearch-mode-end-hook) + + ;; If there was movement, mark the starting position. + ;; Maybe should test difference between and set mark iff > threshold. + (if (/= (point) isearch-opoint) + (or (and transient-mark-mode mark-active) + (progn + (push-mark isearch-opoint t) + (or executing-kbd-macro (> (minibuffer-depth) 0) + (message "Mark saved where search started"))))) + (and (not edit) isearch-recursive-edit (exit-recursive-edit))) (defun isearch-update-ring (string &optional regexp)