Wrap around the search on typing a letter (bug#56535)

* doc/emacs/search.texi (Repeat Isearch): Improve values no/no-ding.

* lisp/isearch.el (isearch-search-and-update): Try to repeat the search
on an error when isearch-wrap-pause is no/no-ding.
This commit is contained in:
Juri Linkov 2022-08-01 22:19:01 +03:00
parent 9d8a6c8283
commit 7320a812e9
3 changed files with 11 additions and 3 deletions

View file

@ -228,8 +228,9 @@ customizing the @code{isearch-wrap-pause} user option. If it is
@code{t} (the default), signal an error. (Repeating the search will
wrap around.) If @code{no}, issue a @code{ding} and wrap immediately
after reaching the last match. If @code{no-ding}, wrap immediately,
but don't @code{ding}. Finally, if @code{nil}, never wrap, but just
stop at the last match.
but don't @code{ding}. With the values @code{no} and @code{no-ding}
the search will try to wrap around also on typing a character.
Finally, if @code{nil}, never wrap, but just stop at the last match.
@cindex search ring
@findex isearch-ring-advance

View file

@ -1457,6 +1457,11 @@ outside the echo area, Emacs will, by default, end the Isearch and
yank the text at mouse cursor. But if 'mouse-yank-at-point' is
non-nil, the text will now be added to the Isearch instead.
+++
*** Changes for values 'no' and 'no-ding' of 'isearch-wrap-pause'.
Now with these values the search will wrap around not only on repeating
with 'C-s C-s', but also after typing a character.
+++
*** New user option 'char-fold-override'.
Non-nil means that the default definitions of equivalent characters

View file

@ -2838,7 +2838,9 @@ The command accepts Unicode names like \"smiling face\" or
isearch-barrier
(1+ isearch-other-end)))))
(isearch-search)
))
(when (and (memq isearch-wrap-pause '(no no-ding))
(not isearch-success))
(isearch-repeat (if isearch-forward 'forward 'backward)))))
(isearch-push-state)
(if isearch-op-fun (funcall isearch-op-fun))
(isearch-update))