* replace.el (replace-highlight): Bind isearch-forward and
isearch-error, ensuring that highlighting is updated if the user
switches the search direction (Bug#6808).
* isearch.el (isearch-lazy-highlight-forward): New var.
(isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
(isearch-lazy-highlight-update): Use it.
* window.c: Add Qscroll_command.
Remove Vscroll_preserve_screen_position_commands.
(window_scroll_pixel_based, window_scroll_line_based): Check the
`scroll-command' property on the last command instead of searching
the last command in Vscroll_preserve_screen_position_commands.
(syms_of_window): Initialize and staticpro `Qscroll_command'.
Put Qscroll_command property on Qscroll_up and Qscroll_down.
(scroll-preserve-screen-position): Doc fix.
(Vscroll_preserve_screen_position_commands): Remove variable.
* simple.el (scroll-up-command, scroll-down-command)
(scroll-up-line, scroll-down-line): Put `scroll-command'
property on the these symbols. Remove them from
`scroll-preserve-screen-position-commands'.
* mwheel.el (mwheel-scroll): Put `scroll-command' and
`isearch-scroll' properties on the `mwheel-scroll' symbol.
Remove it from `scroll-preserve-screen-position-commands'.
* isearch.el (isearch-allow-scroll): Doc fix.
* isearch.el (isearch-mode): Move `isearch-push-state' after
`(run-hooks 'isearch-mode-hook)'.
(isearch-cancel): When `isearch-push-state-function' is defined,
let-bind `isearch-cmds' to the first state (the last element of
`isearch-cmds') and call `isearch-top-state' (it calls pop-state
function and restores the original point). Otherwise, move point
to `isearch-opoint'.
* isearch.el (isearch-help-for-help-internal): Purecopy the second arg.
* help-macro.el (make-help-screen): Avoid using an ambiguous function
definition where the docstring could be taken for the return value.
`isearch-edit-string-set-word'.
(isearch-edit-string-set-word): Remove.
(isearch-occur): Imitate the C function `wordify' by replacing
non-word character with the \\W+ regexp.
(isearch-search-fun): Add `isearch-nonincremental' to the
condition of using a non-lax version of `word-search-forward'.
`isearch-success-function'. Rename default value from
`isearch-success-function-default' to
`isearch-filter-invisible'. Doc fix.
(isearch-filter-invisible): Rename from
`isearch-success-function-default'. Doc fix.
(isearch-search, isearch-lazy-highlight-search): Rename
`isearch-success-function' to `isearch-filter-predicate'.
(isearch-message-suffix-add): New variables.
(isearch-message-prefix): Show additional text from
`isearch-message-prefix-add' before "I-search".
(isearch-message-suffix): Show additional text from
`isearch-message-suffix-add' at the end.
`isearch-search'. Call isearch-success-function to skip matches
outside the current isearch scope. Let-bind search-invisible to
nil to not match invisible text.
Bind `isearch-recursive-edit' to nil to prevent calling
`exit-recursive-edit' in `isearch-done' that terminates the
execution of these commands when it is non-nil. Call
`exit-recursive-edit' explicitly at the end.
(isearch-occur): For word search construct the correct regexp
with word boundaries to proceed with occur.
current search string with the length of the string from the
previous search state to detect the situation when the user
adds or removes characters in the search string.
Use word-search-forward-lax and word-search-backward-lax in this
case, and otherwise word-search-forward and word-search-backward.
Add arg `delimited' as in `query-replace' for the case when
isearch-allow-scroll=t and the user types C-u M-%. Doc fix.
Add more indicators to the prompt ("word" and "in region").
(isearch-backward, isearch-backward-regexp): Doc fix - make a link
to the command `isearch-forward' instead of displaying "See C-s".
(isearch-highlight-regexp): Remove arguments `regexp' and `face'
with their interactive specifictions. Move reading the face name to
the main body after calls to isearch-done and isearch-clean-overlays.
(minibuffer-local-isearch-map): Bind "\C-w" to
isearch-edit-string-set-word.
(isearch-new-word): Temporary internal variable.
(isearch-edit-string): Remove special case of reading the
first character and checking it for C-w.
and `M-s w' to `isearch-toggle-word'.
(search-map): Bind `M-s w' to `isearch-forward-word' globally
in the global map `search-map'.
(isearch-forward): Doc fix.
(isearch-forward-word, isearch-toggle-case-fold): New commands.
`multi-isearch-next-buffer-current-function' is non-nil.
(isearch-search-string): Replace `isearch-buffers-next-buffer-function'
with `multi-isearch-next-buffer-current-function', and
`isearch-buffers-current-buffer' with `multi-isearch-current-buffer'.