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.
(isearch-lazy-highlight-regexp): New variables.
(isearch-lazy-highlight-cleanup): Update lazy highlight if
case-fold search or regexp search has been toggled.
1 here rather than each time through
isearch-lazy-highlight-new-loop.
(isearch-lazy-highlight-max): Variable deleted.
(isearch-lazy-highlight-max-at-a-time): New user variable, like
isearch-lazy-highlight-max but controls a single invocation of
isearch-lazy-highlight-update.
(isearch-lazy-highlight-wrapped): Variable recreated.
(isearch-lazy-highlight-window-start): New variable.
(isearch-lazy-highlight-cleanup): Restored to behavior of
before 2-Jan.
(isearch-lazy-highlight-remove-overlays): Function deleted;
behavior folded into isearch-lazy-highlight-cleanup. "Keep"
behavior removed.
(isearch-lazy-highlight-new-loop): Restore old behavior of calling
isearch-lazy-highlight-update in a loop rather than just once.
Test isearch-invalid-regexp here and decide not to start a new
loop, rather than testing it each time through
isearch-lazy-highlight-update.
(isearch-lazy-highlight-search): Function restored.
(isearch-lazy-highlight-update): Get called in a timer loop again,
but this time highlight more than one match each time through.
Only highlight matches in the visible part of the window. Start
at point, move in the direction of the search, and wrap around at
the edge of the window. Use sit-for to force redisplay and ensure
window-start is credible. "Face suppressing" behavior removed;
overlay priorities should make it unnecessary, right?
(isearch-highlight): Face suppressing behavior removed.
(isearch-dehighlight): Face suppressing behavior removed.
(isearch-set-lazy-highlight-faces-at): Removed.
Don't look for more potential matches once maximum is exceeded.
Use overlays-in to check correctly for overlap with current match.
Ignore empty matches.
(isearch-mode): Add isearch-done to kbd-macro-termination-hook
instead of setting signal-hook-function.
(isearch-done): Remove isearch-done from kbd-macro-termination-hook.
but only do it in the text that's visible in the selected window.
(isearch-lazy-highlight-cleanup): Arg now says
to remove all the current alternative-match highlighting.
If nil, remove only what's outside the current window.
(isearch-lazy-highlight-remove-overlays): Take optional
region within which NOT to remove them.
(isearch-lazy-highlight-new-loop): Greatly simplified.
(isearch-lazy-highlight-update): Find all the other occurrences
visible in the window, in just one call.
(isearch-lazy-highlight-start): Now holds start of region to scan.
(isearch-lazy-highlight-end): Now holds end of region to scan.
(isearch-lazy-highlight-wrapped): Variable deleted.
(isearch-lazy-highlight-search): Function deleted.
(isearch-mode): Set `minibuffer-message-timeout' to nil, after
stashing away its original value.
(isearch-edit-string): Temporarily restore `minibuffer-message-timeout'
in the recursive edit.
Bind `isearch-original-minibuffer-message-timeout' to protect it.
(isearch-done): Restore `minibuffer-message-timeout'.
(minibuffer-local-isearch-map): Init in defvar. Use inheritance.
(isearch-clean-overlays, isearch-range-invisible, isearch-unread):
Use mapc rather than map.
(isearch-highlight): Restore lazy-isearch face properties at old
position, and suppress them at new position.
(isearch-dehighlight): Restore lazy-isearch face properties.
(isearch-lazy-highlight-update): Add lazy-isearch overlays even
over the real isearch overlay, but in that case, don't give it a
face property. Use `push'.
highlighting overlay with a different face over the overlay
isearch uses to highlight the current match because that can lead
to bad face combinations.
(isearch): New defface; was already tested for in the code.
(isearch-lazy-highlight-face): Changed to defface from defcustom.
(isearch-highlight): Always use face `isearch'.
(isearch-done): Add something to command-history to resume
the search.
(isearch-yank-line, isearch-yank-word): Use
buffer-substring-no-properties instead of buffer-substring.
to prevent the point moving to the end of a composition when a
part of a composition is searched.
(isearch-other-meta-char): If the key invoking this command can be
mapped by function-key-map to a printing char, call
isearch-process-search-char directly.
(isearch-mode-map): Bind mouse-2 to isearch-mouse-yank.
(isearch-switch-frame-handler): Comment out (unused).
(isearch-yank-x-selection, isearch-ring-advance-edit): Doc fix.
(isearch-ring-retreat-edit): Doc fix.
(isearch-mouse-yank): New command.
(isearch-last-command-char): Removed. Callers changed to use
last-command-char.
(isearch-char-to-string): Removed. Callers changed to use
char-to-string.
(isearch-input-method-local-p): New variable.
(isearch-mode): Setup the above two variable. Set
input-method-function to nil locally.
(isearch-done): Restore the previous value of
input-method-function.
(isearch-mode): Do not bind isearch-multibyte-characters-flag and
isearch-input-method.
(isearch-printing-char): Use current-input-method instead of
isearch-input-method.
(isearch-message-prefix): Likewise.
(isearch-search): Bind inhibit-point-motion-hooks because we might
have to search inside invisible and intangible text.
(isearch-open-overlay-temporary): Delete forgoten debug message.
(isearch-range-invisible): Fix typo in doc-string.
(isearch-close-unecessary-overlays): New function.
(isearch-range-invisible): Use them.
(search-invisible): Changed the semantics,
the default value and updated the doc string.
(isearch-opened-overlays): New variable.
(isearch-mode): Initialize it.
(isearch-switch-frame-handler): Call isearch-clean-overlays.
(isearch-exit, isearch-cancel, isearch-abort): Likewise.
(isearch-other-meta-char, isearch-search):
Support the new meaning for search-invisible.
(isearch-open-necessary-overlays, isearch-open-overlay-temporary)
(isearch-clean-overlays): New functions.
(isearch-range-invisible): If we are inside overlays that can be
opened, open them, add them to isearch-opened-overlays and say
that the range is visible.
isearch-toggle-input-method and
isearch-toggle-specified-input-method in the map.
(isearch-multibyte-characters-flag): New variable.
(isearch-mode): Initialize it to nil.
(isearch-printing-char): Handle multibyte characters.
(isearch-message-prefix): Include title of input method if
necessary in the prefix of message.
(isearch-just-started): New variable.
(isearch-mode): Set it.
(isearch-search): Clear it.
(isearch-repeat): If isearch-just-started, don't test for empty match.
(isearch-unread): Use store-kbd-macro-event.
(isearch-search-and-update): Use isearch-case-fold-search
around the looking-at call.
(isearch-update): Always test unread-command-events.
(isearch-event-data-type): Variable deleted.
(isearch-pre-command-hook-exists): Variable deleted.
(isearch-last-command-char): Only use last-command-char.
is like t except that mixed case in search string is ignored.
(isearch-toggle-case-fold): New function.
(isearch-search): Don't undo the work of isearch-toggle-case-fold.
Don't set isearch-old-local-map and don't call use-local-map.
(isearch-done): Set overriding-local-map to nil.
Don't call use-local-map.
(isearch-old-local-map): Variable deleted.
(isearch-within-brackets): New variable.
(isearch-mode): Set that.
(isearch-edit-string): Bind that.
(isearch-search-and-update): Set that.
(isearch-top-state): Set that.
(isearch-push-state): Use that.
(isearch-search): Set that.