GNU bug report logs -
#79368
31.0.50; exiting a recursive isearch through an error keeps isearch map active
Previous Next
To reply to this bug, email your comments to 79368 AT debbugs.gnu.org.
There is no need to reopen the bug first.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
juri <at> linkov.net, bug-gnu-emacs <at> gnu.org
:
bug#79368
; Package
emacs
.
(Tue, 02 Sep 2025 11:31:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Jens Schmidt <jschmidt4gnu <at> vodafonemail.de>
:
New bug report received and forwarded. Copy sent to
juri <at> linkov.net, bug-gnu-emacs <at> gnu.org
.
(Tue, 02 Sep 2025 11:31:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
X-Debbugs-Cc: Juri Linkov <juri <at> linkov.net>
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))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#79368
; Package
emacs
.
(Wed, 03 Sep 2025 06:53:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 79368 <at> debbugs.gnu.org (full text, mbox):
close 79368 31.0.50
thanks
> 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.
Thanks for the bug report. The problem is that when
'read-from-minibuffer' in 'isearch-edit-string'
raises an error because of recursive minibuffers,
then in 'with-isearch-suspended' the unwind form is
called twice in a row, and 'isearch-mode' is called twice.
But 'isearch-mode' overrides the original
'overriding-terminal-local-map' on the second call.
So after
(progn (isearch-mode t) (isearch-mode t) (isearch-done))
'isearch-done' restored a wrong map.
Now 'isearch-mode' is fixed to protect from multiple calls.
bug marked as fixed in version 31.0.50, send any further explanations to
79368 <at> debbugs.gnu.org and Jens Schmidt <jschmidt4gnu <at> vodafonemail.de>
Request was from
Juri Linkov <juri <at> linkov.net>
to
control <at> debbugs.gnu.org
.
(Wed, 03 Sep 2025 06:53:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 10 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.