Subject: bug#68158: isearch-wrap-pause 'no or 'no-ding breaks isearch-delete-char

From: Eli Zaretskii <[email-masked]>
Date: Thu, 04 Jan 2024 13:10:31 +0200

> Date: Sat, 30 Dec 2023 14:56:13 -0800
> From:  Joseph Turner via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> With emacs -Q, in the buffer which pops open after...
> 
> (progn
>   (setopt isearch-wrap-pause 'no)
>   ;; (setopt isearch-wrap-pause 'no-ding)  ; this causes the same problem
>   (with-current-buffer (generate-new-buffer "isearch-wrap-pause-test")
>     (insert "bar")
>     (goto-char (point-min))
>     (pop-to-buffer (current-buffer))))
> 
> ...run isearch for "baz" with...
> 
> C-s b a z
> 
> ...then attempt to delete the non-matching "z" character with DEL.
> 
> Expected contents of minibuffer:
> 
> "Isearch: ba"
> 
> Actual contents of minibuffer:
> 
> "Failing overwrapped I-search: baz"
> 
> Pressing DEL a second time actually deletes the "z".
> 
> Thanks for your help!!
> 
> Joseph
> 
> GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.37,
> cairo version 1.16.0)

Juri, could you please look into this?  It seems to be a regression in
Emacs 29.1 due to your changes in commit 7320a812e, to solve
bug#56535.  I guess we need to distinguish between self-inserting
characters and DEL?