(isearch-push-state-function): New defvars.
(isearch-pop-fun-state): New defsubst.
(isearch-top-state): Call function saved in `isearch-pop-fun-state'.
(isearch-push-state): Set the result of calling
`isearch-push-state-function' to the `isearch-pop-fun-state' field.
(isearch-cancel): Call function saved in `isearch-pop-fun-state' to
restore the mode-specific starting point of terminated search.
(isearch-abort): Call `isearch-cancel' instead of its duplicated code.
(isearch-repeat): Call `isearch-wrap-function' if defined.
(isearch-message-prefix): Don't add prefix "over" to the message
for wrapped search if `isearch-wrap-function' is defined.
(isearch-search): Call function saved in `isearch-pop-fun-state' to
restore the mode-specific starting point of failed search.
(isearch-string, isearch-message-string, isearch-point)
(isearch-success, isearch-forward-flag, isearch-other-end)
(isearch-word, isearch-invalid-regexp, isearch-wrapped)
(isearch-barrier, isearch-within-brackets)
(isearch-case-fold-search): Add suffix `-state' to state-related
defsubsts to avoid name clashes with other function names.
up when a regexp isearch is made more general. Use symbolic
accessor functions for isearch stack frames to make usage clearer.
(search-whitespace-regexp): Made groups in documentation shy (as
is the group in the default value).
(isearch-fallback): New function, addresses problems with regexps
liberalized by `\|', adds support for liberalization by `\}' (the
general repetition construct), and incorporates behavior for
`*'/`?'.
(isearch-}-char): New command, calls `isearch-fallback' with
arguments appropriate to a typed `}'.
(isearch-*-char, isearch-|-char): Now just call `isearch-fallback'
appropriately.
(isearch-mode-map): Bind `}' to `isearch-}-char'.
(isearch-string, isearch-message,string, isearch-point,
isearch-success, isearch-forward-flag, isearch-other-end,
isearch-word, isearch-invalid-regexp, isearch-wrapped,
isearch-barrier, isearch-within-brackets,
isearch-case-fold-search):
New inline functions to read fields of a stack frame.
C-M-y to isearch-yank-char. Bind M-% to isearch-query-replace,
C-M-% to isearch-query-replace-regexp.
(minibuffer-local-isearch-map): Add arrow key bindings.
Bind C-f to isearch-yank-char-in-minibuffer.
(isearch-forward): Doc fix.
(isearch-edit-string): Doc fix.
(isearch-query-replace, isearch-query-replace-regexp): New funs.
(isearch-del-char): Add optional arg. Set isearch-yank-flag to t.
(isearch-yank-char): Add optional arg.
(isearch-yank-char-in-minibuffer): New fun.
Add new key bindings for isearch-yank-char to \C-f, and isearch-del-char to \C-b.
(isearch-del-char): New fun.
(isearch-forward, isearch-edit-string): Update docstring.
(isearch-yank-char): Doc fix.
(isearch-other-meta-char): Restore point after scrolling.
isearch-other-meta-char.
(top level): (put 'foo 'isearch-scroll) on all Emacs's
"scrollable" standard functions.
(isearch-allow-scroll): New customizable variable.
(isearch-string-out-of-window, isearch-back-into-window)
(isearch-reread-key-sequence-naturally)
(isearch-lookup-scroll-key): New functions.
(isearch-other-meta-char): Doc string and functionality enhanced.
Now accepts a prefix argument.
(isearch-lazy-highlight-window-end): New variable.
(isearch-lazy-highlight-new-loop): Pay attention to the window's
end (thru isearch-lazy-highlight-window-end), not only its start.
(isearch-mouse-2): Lookup binding in the proper buffer.
Use call-interactively and remove the now useless `arg'.
(isearch-search-fun-function): New var.
(isearch-search-fun): New fun.
(isearch-search, isearch-lazy-highlight-search): Use it.
strings mention keybinding for `isearch-yank-word-or-char',
rather than `isearch-yank-word', since the former is bound now
and the latter is not.
(isearch-yank-word-or-char): Fix formatting.
(isearch-mode): Remember value of isearch-case-fold-search
in isearch-last-case-fold-search.
(isearch-done): Quote value of isearch-case-fold-search.
(isearch-repeat): When resuming a search, restore
isearch-case-fold-search from isearch-last-case-fold-search.
similar events for which fake prefix keys are generated. It's no
longer necessary since read_key_sequence doesn't modify these
events for internal purposes anymore.