Subject: bug#79368: 31.0.50; exiting a recursive isearch through an error keeps isearch map active

From: Jens Schmidt <[email-masked]>
Date: Tue, 2 Sep 2025 13:30:10 +0200

X-Debbugs-Cc: Juri Linkov <[email-masked]>

Start off an "emacs -Q" with the following sequence:

#+begin_example
  C-s			;; isearch-forward
  M-e			;; isearch-edit-string
  C-x o			;; other-window
  C-s			;; isearch-forward
  M-e			;; isearch-edit-string
#+end_example

That results in an error

#+begin_example
  isearch-edit-string: Command attempted to use minibuffer while in minibuffer
#+end_example

which is expected.

However, any self-inserting key presses after that reactivate
isearch mode.  C-g or ESC ESC ESC do not help to escape that
state.  The minibuffer window cannot be selected with C-x o,
either, to get back to the isearch prompt.

A C-h b in that state reveals that the isearch mode bindings
are still active.  I remember having seen a report on
emacs-devel about a similar issue, IIRC it was related to
isearch during an edebug sesssion.  Might be related or not.

Emacs 28 does not seem to be affected by this issue, or at
least not that gravely: It somehow seems to get rid of the
recursive isearches in a more graceful manner.  Other Emacs
versions I haven't tried.

Backing out commit 6760cedc5e0e8dc2a49d3d13e54f5f153df5a3d0
seems to "fix" this issue as well.

In GNU Emacs 31.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.16.0) of 2025-09-02 built on sappc2
Repository revision: 66ef930ebea4618c1dac71a09495766476ced1d6
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12201009
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure --with-native-compilation --with-mailutils'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINERAMA XINPUT2 XPM XRANDR GTK3
ZLIB

Important settings:
  value of $LC_COLLATE: POSIX
  value of $LC_TIME: POSIX
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr compile comint ansi-osc ansi-color ring comp-run
bytecomp byte-compile comp-common rx emacsbug lisp-mnt message mailcap
yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache
epa derived epg rfc6068 epg-config gnus-util text-property-search
time-date subr-x mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process tty-child-frames native-compile emacs)

Memory information:
((conses 16 65894 9755) (symbols 48 6839 0) (strings 32 17084 1981)
 (string-bytes 1 541088) (vectors 16 11097)
 (vector-slots 8 152107 3492) (floats 8 22 13) (intervals 56 250 0)
 (buffers 984 11))