mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-05 19:31:02 -08:00
(isearch-edit-string): Remove one call to
`isearch-push-state' not to push an inconsistent state, but keep another correct call to `isearch-push-state'. (isearch-ring-adjust): Call `isearch-push-state' only when `search-ring-update' is non-nil since `isearch-edit-string' already pushes its state. (isearch-message): Improve matching the failed part by checking if the original message starts with the last successful message.
This commit is contained in:
parent
0199e76544
commit
a71a98cf83
2 changed files with 38 additions and 9 deletions
|
|
@ -1096,12 +1096,15 @@ If first char entered is \\[isearch-yank-word-or-char], then do word search inst
|
|||
;; Only the string actually used should be saved.
|
||||
))
|
||||
|
||||
;; Push the state as of before this C-s.
|
||||
(isearch-push-state)
|
||||
;; This used to push the state as of before this C-s, but it adds
|
||||
;; an inconsistent state where part of variables are from the
|
||||
;; previous search (e.g. `isearch-success'), and part of variables
|
||||
;; are just entered from the minibuffer (e.g. `isearch-string').
|
||||
;; (isearch-push-state)
|
||||
|
||||
;; Reinvoke the pending search.
|
||||
(isearch-search)
|
||||
(isearch-push-state)
|
||||
(isearch-push-state) ; this pushes the correct state
|
||||
(isearch-update)
|
||||
(if isearch-nonincremental
|
||||
(progn
|
||||
|
|
@ -1895,10 +1898,12 @@ Isearch mode."
|
|||
(if search-ring-update
|
||||
(progn
|
||||
(isearch-search)
|
||||
(isearch-push-state)
|
||||
(isearch-update))
|
||||
(isearch-edit-string)
|
||||
)
|
||||
(isearch-push-state))
|
||||
;; Otherwise, edit the search string instead. Note that there is
|
||||
;; no need to push the search state after isearch-edit-string here
|
||||
;; since isearch-edit-string already pushes its state
|
||||
(isearch-edit-string)))
|
||||
|
||||
(defun isearch-ring-advance ()
|
||||
"Advance to the next search string in the ring."
|
||||
|
|
@ -1975,9 +1980,13 @@ If there is no completion possible, say so and continue searching."
|
|||
(pop cmds))
|
||||
(setq succ-msg (and cmds (isearch-message-state (car cmds)))
|
||||
m (copy-sequence m))
|
||||
(when (and (stringp succ-msg) (< (length succ-msg) (length m)))
|
||||
(add-text-properties (length succ-msg) (length m)
|
||||
'(face isearch-fail) m))
|
||||
(add-text-properties
|
||||
(if (and (stringp succ-msg)
|
||||
(< (length succ-msg) (length m))
|
||||
(equal succ-msg (substring m 0 (length succ-msg))))
|
||||
(length succ-msg)
|
||||
0)
|
||||
(length m) '(face isearch-fail) m)
|
||||
;; Highlight failed trailing whitespace
|
||||
(when (string-match " +$" m)
|
||||
(add-text-properties (match-beginning 0) (match-end 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue