From c26054bbfed6c72ec18675166f2316d9dc2bfdd6 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Wed, 4 Apr 2018 23:49:45 +0300 Subject: [PATCH] * lisp/isearch.el (isearch-pre-command-hook): Default to shift-translated move commands that can be enabled by the `isearch-move' property `enabled', and disabled by `disabled'. (search-exit-option): Doc fix. (isearch-post-command-hook): Check for isearch-forward. https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00438.html --- lisp/isearch.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index aa6acfd0c82..15a15436f7c 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -72,7 +72,9 @@ If t, random control and meta characters terminate the search and are then executed normally. If `edit', edit the search string instead of exiting. If `move', extend the search string by motion commands -that have the `isearch-move' property on their symbols. +that have the `isearch-move' property on their symbols +equal to `enabled', or the shift-translated command is +not disabled by the value `disabled' of the same property. If `shift-move', extend the search string by motion commands while holding down the shift key. Both `move' and `shift-move' extend the search string by yanking text @@ -2434,7 +2436,10 @@ See more for options in `search-exit-option'." ;; Don't terminate the search for motion commands. ((or (and (eq search-exit-option 'move) (symbolp this-command) - (eq (get this-command 'isearch-move) t)) + (or (eq (get this-command 'isearch-move) 'enabled) + (and (not (eq (get this-command 'isearch-move) 'disabled)) + (stringp (nth 1 (interactive-form this-command))) + (string-match-p "^^" (nth 1 (interactive-form this-command)))))) (and (eq search-exit-option 'shift-move) this-command-keys-shift-translated)) (setq this-command-keys-shift-translated nil) @@ -2469,7 +2474,8 @@ See more for options in `search-exit-option'." string "")) (setq isearch-yank-flag t) (setq isearch-forward (<= (or isearch-other-end isearch-opoint) (point))) - (goto-char isearch-pre-move-point) + (when isearch-forward + (goto-char isearch-pre-move-point)) (isearch-search-and-update))) (setq isearch-pre-move-point nil)))) -- 2.39.2