unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
@ 2023-08-06 17:18 Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-08-07 15:57 ` Eli Zaretskii
  2024-01-12 15:37 ` Alan Mackenzie
  0 siblings, 2 replies; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-08-06 17:18 UTC (permalink / raw)
  To: 65116


With detached minibuf, query-replace doesn't work because
query-replace-read-args doesn't shift focus to minibuf for the replacement
string. Possibly related to Bug 64152. This worked in 28.1.

To reproduce, create init.el with these two lines:

(add-to-list 'initial-frame-alist '(minibuffer . nil))
(add-to-list 'minibuffer-frame-alist '(minibuffer . only))

Now run emacs:
emacs-29.1 -Q --load init.el

Run query-replace, usually bound to M-%. Focus will shift to the minibuf.
Enter a string and hit <return>. The minibuf will now prompt for a
replacement string, but focus will now be in the scratch buffer instead of
the minibuf, and it will be impossible to enter the replacement string
without re-focusing.


In GNU Emacs 28.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.36, cairo version 1.17.6)
 of 2023-01-15 built on motul
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: Arch Linux

Configured using:
 'configure --disable-silent-rules --prefix=/usr/local --sysconfdir=/etc
 --libexecdir=/usr/local/lib --localstatedir=/var
 --mandir=/usr/local/man --with-x --with-x-toolkit=gtk3
 --without-toolkit-scroll-bars --without-xaw3d --with-cairo
 --without-imagemagick --without-sound --without-gif
 --without-libsystemd --without-dbus --without-gconf --without-gsettings
 --without-selinux CFLAGS=-Os'

Configured features:
ACL CAIRO FREETYPE GLIB GMP GNUTLS GPM HARFBUZZ JPEG JSON LCMS2 LIBOTF
LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP THREADS
TIFF X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
  value of $LC_COLLATE: C
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/rees/lib/lisp/cmuscheme hides /usr/local/share/emacs/28.1/lisp/cmuscheme
/home/rees/lib/lisp/tempo hides /usr/local/share/emacs/28.1/lisp/tempo
/home/rees/lib/lisp/rng-nxml hides /usr/local/share/emacs/28.1/lisp/nxml/rng-nxml
/home/rees/lib/lisp/syntax hides /usr/local/share/emacs/28.1/lisp/emacs-lisp/syntax

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core eieio-loaddefs
password-cache json map text-property-search mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date
subr-x tabify imenu man ansi-color pp seq byte-opt bytecomp byte-compile
cconv zoom-frm frame-cmds cl-macs gv frame-fns avoid server ps-ccrypt
html-mode dtrt-indent advice easy-mmode whitespace plain-mode edmacro
kmacro cl-loaddefs cl-lib fit-frame iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd 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 cl-generic 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 simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads inotify lcms2 dynamic-setting
font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 74590 6483)
 (symbols 48 8146 1)
 (strings 32 22376 2052)
 (string-bytes 1 771015)
 (vectors 16 15645)
 (vector-slots 8 222601 10111)
 (floats 8 64 30)
 (intervals 56 254 244)
 (buffers 992 13))





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2023-08-06 17:18 bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-08-07 15:57 ` Eli Zaretskii
  2024-01-12  6:26   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-12 15:37 ` Alan Mackenzie
  1 sibling, 1 reply; 38+ messages in thread
From: Eli Zaretskii @ 2023-08-07 15:57 UTC (permalink / raw)
  To: Jim Rees; +Cc: 65116

> Date: Sun, 6 Aug 2023 11:18:34 -0600
> From:  Jim Rees via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> 
> With detached minibuf, query-replace doesn't work because
> query-replace-read-args doesn't shift focus to minibuf for the replacement
> string. Possibly related to Bug 64152. This worked in 28.1.
> 
> To reproduce, create init.el with these two lines:
> 
> (add-to-list 'initial-frame-alist '(minibuffer . nil))
> (add-to-list 'minibuffer-frame-alist '(minibuffer . only))
> 
> Now run emacs:
> emacs-29.1 -Q --load init.el
> 
> Run query-replace, usually bound to M-%. Focus will shift to the minibuf.
> Enter a string and hit <return>. The minibuf will now prompt for a
> replacement string, but focus will now be in the scratch buffer instead of
> the minibuf, and it will be impossible to enter the replacement string
> without re-focusing.

What I see here is that the frame where *scratch* is shown becomes the
selected frame, but input focus stays in the minibuffer frame, so if I
type the replacement string (without any refocusing), the command
accepts the replacement and starts replacing after I type RET.

YMMV, depending on your WM, I think.

> In GNU Emacs 28.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.36, cairo version 1.17.6)
>  of 2023-01-15 built on motul

The Subject says "Emacs 29.1", but this report is from Emacs 28.1.  So
which one is the version where you see the problem?





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2023-08-07 15:57 ` Eli Zaretskii
@ 2024-01-12  6:26   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-12 12:00     ` Eli Zaretskii
  0 siblings, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-12  6:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65116

The problem is in 29.1. I think report-emacs-bug just appends the info for
whatever version of emacs you are running at the time you report a bug.

I have tried two different window managers, twm and openbox, and get the bug
in both of them. However, it only happens if I am running with focus follows
mouse. It does not happen if I have set click to focus. The settings of
focus-follows-mouse and minibuffer-follows-selected-frame make no
difference.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12  6:26   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-12 12:00     ` Eli Zaretskii
  2024-01-12 14:38       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-12 15:25       ` Alan Mackenzie
  0 siblings, 2 replies; 38+ messages in thread
From: Eli Zaretskii @ 2024-01-12 12:00 UTC (permalink / raw)
  To: Jim Rees, Alan Mackenzie, Juri Linkov; +Cc: 65116

> Date: Fri, 12 Jan 2024 00:26:10 -0600
> From: Jim Rees <jim@rees.org>
> Cc: 65116@debbugs.gnu.org
> 
> The problem is in 29.1. I think report-emacs-bug just appends the info for
> whatever version of emacs you are running at the time you report a bug.

So Emacs 28 behaves correctly on your system in this scenario?

> I have tried two different window managers, twm and openbox, and get the bug
> in both of them. However, it only happens if I am running with focus follows
> mouse. It does not happen if I have set click to focus. The settings of
> focus-follows-mouse and minibuffer-follows-selected-frame make no
> difference.

Alan and Juri, could you please look into this issue?





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12 12:00     ` Eli Zaretskii
@ 2024-01-12 14:38       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-12 15:25       ` Alan Mackenzie
  1 sibling, 0 replies; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-12 14:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Alan Mackenzie, 65116, Juri Linkov

28.1 works correctly. I am unable to test 28.2 right now but it had a
different problem. I think I was unable to enter the 'from' arg. If it's
important I can re-install 28.2 and test it.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12 12:00     ` Eli Zaretskii
  2024-01-12 14:38       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-12 15:25       ` Alan Mackenzie
  1 sibling, 0 replies; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-12 15:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Jim Rees, 65116, Juri Linkov

Hello, Eli.

On Fri, Jan 12, 2024 at 14:00:29 +0200, Eli Zaretskii wrote:
> > Date: Fri, 12 Jan 2024 00:26:10 -0600
> > From: Jim Rees <jim@rees.org>
> > Cc: 65116@debbugs.gnu.org

> > The problem is in 29.1. I think report-emacs-bug just appends the info for
> > whatever version of emacs you are running at the time you report a bug.

> So Emacs 28 behaves correctly on your system in this scenario?

> > I have tried two different window managers, twm and openbox, and get the bug
> > in both of them. However, it only happens if I am running with focus follows
> > mouse. It does not happen if I have set click to focus. The settings of
> > focus-follows-mouse and minibuffer-follows-selected-frame make no
> > difference.

> Alan and Juri, could you please look into this issue?

I'm looking into it now.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2023-08-06 17:18 bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-08-07 15:57 ` Eli Zaretskii
@ 2024-01-12 15:37 ` Alan Mackenzie
  2024-01-12 15:59   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-12 15:37 UTC (permalink / raw)
  To: Jim Rees; +Cc: acm, Eli Zaretskii, 65116

Hello, Jim.

On Sun, Aug 06, 2023 at 11:18:34 -0600, Jim Rees wrote:

> With detached minibuf, query-replace doesn't work because
> query-replace-read-args doesn't shift focus to minibuf for the replacement
> string. Possibly related to Bug 64152. This worked in 28.1.

> To reproduce, create init.el with these two lines:

> (add-to-list 'initial-frame-alist '(minibuffer . nil))
> (add-to-list 'minibuffer-frame-alist '(minibuffer . only))

> Now run emacs:
> emacs-29.1 -Q --load init.el

> Run query-replace, usually bound to M-%. Focus will shift to the minibuf.
> Enter a string and hit <return>. The minibuf will now prompt for a
> replacement string, but focus will now be in the scratch buffer instead of
> the minibuf, and it will be impossible to enter the replacement string
> without re-focusing.


> In GNU Emacs 28.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.36, cairo version 1.17.6)
>  of 2023-01-15 built on motul
> Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
> System Description: Arch Linux

.... and in a more recent post:

> The problem is in 29.1. I think report-emacs-bug just appends the info
> for whatever version of emacs you are running at the time you report a
> bug.

> I have tried two different window managers, twm and openbox, and get
> the bug in both of them. However, it only happens if I am running with
> focus follows mouse. It does not happen if I have set click to focus.
> The settings of focus-follows-mouse and
> minibuffer-follows-selected-frame make no difference.

I can't reproduce the bug on my setup, GNU/Linux with an XFCE window
manager with "focus follows mouse" set.  I've tried both with Emacs
29.1, and a fairly recent version from our git master branch.

Seeing as how "focus follows mouse" is set, does it make any difference
where on the screen the mouse is when you perform the various steps of
the bug recipe?  Where was your mouse when entering the original string
and then attempting to enter the replacement string?

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12 15:37 ` Alan Mackenzie
@ 2024-01-12 15:59   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-12 17:28     ` Alan Mackenzie
  0 siblings, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-12 15:59 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: Eli Zaretskii, 65116

Normally this happens when I'm trying to edit text in a buffer. I only
mention the scratch buffer in the bug report because that's the easiest way
to reproduce the problem.

The mouse starts out somewhere in the window displaying the text I'm trying
to edit. I type M-%, enter the 'from' text, and when I hit <enter> the mouse
warps to the upper right corner of the window. I get the 'to' prompt but
then I can't type anything because the focus is on the edit window, not on
the minibuf.

I don't think it matters where in the text window the mouse starts out, but
it's hard to tell. About 10% of the time M-% works correctly but I can't
figure out why. I'll try to see if it has something to do with mouse
position.

Can you try with twm? It is lightweight and should run with no
configuration. I'm at a loss as to why I'm seeing this bug and no one else
is.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12 15:59   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-12 17:28     ` Alan Mackenzie
  2024-01-12 18:57       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-12 17:28 UTC (permalink / raw)
  To: Jim Rees; +Cc: acm, Eli Zaretskii, 65116

Hello, Jim.

On Fri, Jan 12, 2024 at 09:59:10 -0600, Jim Rees wrote:
> Normally this happens when I'm trying to edit text in a buffer. I only
> mention the scratch buffer in the bug report because that's the easiest way
> to reproduce the problem.

> The mouse starts out somewhere in the window displaying the text I'm trying
> to edit. I type M-%, enter the 'from' text, and when I hit <enter> the mouse
> warps to the upper right corner of the window. I get the 'to' prompt but
> then I can't type anything because the focus is on the edit window, not on
> the minibuf.

> I don't think it matters where in the text window the mouse starts out, but
> it's hard to tell. About 10% of the time M-% works correctly but I can't
> figure out why. I'll try to see if it has something to do with mouse
> position.

> Can you try with twm? It is lightweight and should run with no
> configuration. I'm at a loss as to why I'm seeing this bug and no one else
> is.

I've installed twm which, as you say, is lightweight (~250 kB) but it
pulled in a ~750 kB font with it.  ;-)  No big deal (like it would have
been 30 years ago).

I can reproduce the bug with this set up.  With the mouse starting in
the text frame, the bug as you describe it happens, and the mouse must
be moved to the minibuffer frame to be able to type in the replacement
text.

If the mouse starts in the MB frame, typing M-% allows one to enter
original and replacement texts without moving the mouse, but this is
useless, since it then attempts to substitute in the mini-window.

I'll have a closer look at this to see if I can fix it.  But things with
detached minibuffers and focus are complicated and have given rise to
quite a few bugs over the years.  Add in focus follows mouse, and it
gets more complicated still.  ;-(

Reading between the lines, it would appear you're still on Emacs 28
because of this bug.  That's a pity, and it would be good to fix things.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12 17:28     ` Alan Mackenzie
@ 2024-01-12 18:57       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-12 21:44         ` Alan Mackenzie
  0 siblings, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-12 18:57 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: Eli Zaretskii, 65116

Well that's a relief. I do have an unusual setup with detached minibuf and
focus follows mouse. There has been a lot of churn in replace.el and frame.c
lately and I keep hoping the bug will go away on its own. I don't really
understand all the focus changes in the code but I do see why they are
necessary.

I have a workaround, I have bound this to a key and use it to re-focus to
the minibuf so I can enter the 'to' text:

(select-frame-set-input-focus (window-frame (minibuffer-window)))

But that requires manual intervention so for now I'm sticking with 28.1.

(Focus follows mouse was common years ago, but with the relentless quest to
make X work just like MS Windows it has become less popular)





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12 18:57       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-12 21:44         ` Alan Mackenzie
  2024-01-13  6:34           ` Eli Zaretskii
  0 siblings, 1 reply; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-12 21:44 UTC (permalink / raw)
  To: Jim Rees; +Cc: acm, Eli Zaretskii, 65116

Hello, Jim.

On Fri, Jan 12, 2024 at 12:57:42 -0600, Jim Rees wrote:
> Well that's a relief. I do have an unusual setup with detached minibuf and
> focus follows mouse. There has been a lot of churn in replace.el and frame.c
> lately and I keep hoping the bug will go away on its own. I don't really
> understand all the focus changes in the code but I do see why they are
> necessary.

> I have a workaround, I have bound this to a key and use it to re-focus to
> the minibuf so I can enter the 'to' text:

> (select-frame-set-input-focus (window-frame (minibuffer-window)))

> But that requires manual intervention so for now I'm sticking with 28.1.

I've been playing with the setup for an hour or two.  It seems that
performing some action in the minibuffer (say, M-x auto-revert-mode, but
anything will do) causes M-% to work properly.  But then, the moment the
mouse leaves the active frame or window (I'm not sure which), M-% no
longer works properly, until the next minibuffer action.

I know this isn't much help to you, but it should be a help to us,
tracking down what's going wrong.

> (Focus follows mouse was common years ago, but with the relentless quest to
> make X work just like MS Windows it has become less popular)

Yes.  I've never liked it, because it involves moving the hand
repeatedly between mouse and keyboard.  But I can understand it being
quite popular, even if some time in the past.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-12 21:44         ` Alan Mackenzie
@ 2024-01-13  6:34           ` Eli Zaretskii
  2024-01-13  9:23             ` Alan Mackenzie
  2024-01-14  0:27             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 38+ messages in thread
From: Eli Zaretskii @ 2024-01-13  6:34 UTC (permalink / raw)
  To: Alan Mackenzie, Po Lu; +Cc: jim, 65116

> Date: Fri, 12 Jan 2024 21:44:11 +0000
> Cc: 65116@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>, acm@muc.de
> From: Alan Mackenzie <acm@muc.de>
> 
> Hello, Jim.
> 
> On Fri, Jan 12, 2024 at 12:57:42 -0600, Jim Rees wrote:
> > Well that's a relief. I do have an unusual setup with detached minibuf and
> > focus follows mouse. There has been a lot of churn in replace.el and frame.c
> > lately and I keep hoping the bug will go away on its own. I don't really
> > understand all the focus changes in the code but I do see why they are
> > necessary.
> 
> > I have a workaround, I have bound this to a key and use it to re-focus to
> > the minibuf so I can enter the 'to' text:
> 
> > (select-frame-set-input-focus (window-frame (minibuffer-window)))
> 
> > But that requires manual intervention so for now I'm sticking with 28.1.
> 
> I've been playing with the setup for an hour or two.  It seems that
> performing some action in the minibuffer (say, M-x auto-revert-mode, but
> anything will do) causes M-% to work properly.  But then, the moment the
> mouse leaves the active frame or window (I'm not sure which), M-% no
> longer works properly, until the next minibuffer action.
> 
> I know this isn't much help to you, but it should be a help to us,
> tracking down what's going wrong.

If this is WM-specific, maybe Po Lu (CC'ed) could help us understand
what happens here?  Perhaps some message we expect from X is not being
received in this scenario?





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13  6:34           ` Eli Zaretskii
@ 2024-01-13  9:23             ` Alan Mackenzie
  2024-01-13 13:47               ` Alan Mackenzie
  2024-01-14  0:27             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-13  9:23 UTC (permalink / raw)
  To: Eli Zaretskii, Po Lu; +Cc: acm, jim, 65116

Hello, Eli and Po.

On Sat, Jan 13, 2024 at 08:34:28 +0200, Eli Zaretskii wrote:
> > Date: Fri, 12 Jan 2024 21:44:11 +0000
> > Cc: 65116@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>, acm@muc.de
> > From: Alan Mackenzie <acm@muc.de>

> > On Fri, Jan 12, 2024 at 12:57:42 -0600, Jim Rees wrote:
> > > Well that's a relief. I do have an unusual setup with detached minibuf and
> > > focus follows mouse. There has been a lot of churn in replace.el and frame.c
> > > lately and I keep hoping the bug will go away on its own. I don't really
> > > understand all the focus changes in the code but I do see why they are
> > > necessary.

> > > I have a workaround, I have bound this to a key and use it to re-focus to
> > > the minibuf so I can enter the 'to' text:

> > > (select-frame-set-input-focus (window-frame (minibuffer-window)))

> > > But that requires manual intervention so for now I'm sticking with 28.1.

> > I've been playing with the setup for an hour or two.  It seems that
> > performing some action in the minibuffer (say, M-x auto-revert-mode, but
> > anything will do) causes M-% to work properly.  But then, the moment the
> > mouse leaves the active frame or window (I'm not sure which), M-% no
> > longer works properly, until the next minibuffer action.

> > I know this isn't much help to you, but it should be a help to us,
> > tracking down what's going wrong.

> If this is WM-specific, maybe Po Lu (CC'ed) could help us understand
> what happens here?  Perhaps some message we expect from X is not being
> received in this scenario?

I've got some more info which might be useful.  There are two calls to
read_minibuf (the lowest level of minibuffer access in src/minibuf.c)
during the query-replace processing.

during the first access, the focus gets redirected to the minibuffer at
L812 of minibuf.c, with

  if (!EQ (mini_frame, selected_frame))
      Fredirect_frame_focus (selected_frame, mini_frame);

..  [I don't know what undoes this focus redirection later.]  After the
recursive edit, provided it wasn't aborted with C-g, the code moves the
focus back to the main frame with, at L963,

    call2 (Qselect_frame_set_input_focus, calling_frame, Qnil);

..  In the bug scenario, if this statement at L963 is commented out, the
bug symptoms are no longer evident.

So it seems something in the second read_minibuf call is preventing the
Fredirect_frame_focus at L812 from working.

We can hardly avoid needing to use GDB, here.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13  9:23             ` Alan Mackenzie
@ 2024-01-13 13:47               ` Alan Mackenzie
  2024-01-13 17:00                 ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-13 13:47 UTC (permalink / raw)
  To: Eli Zaretskii, Po Lu; +Cc: jim, 65116

Hello again, Eli and Po.

On Sat, Jan 13, 2024 at 09:23:26 +0000, Alan Mackenzie wrote:
> On Sat, Jan 13, 2024 at 08:34:28 +0200, Eli Zaretskii wrote:
> > > Date: Fri, 12 Jan 2024 21:44:11 +0000
> > > Cc: 65116@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>, acm@muc.de
> > > From: Alan Mackenzie <acm@muc.de>

> > > On Fri, Jan 12, 2024 at 12:57:42 -0600, Jim Rees wrote:
> > > > Well that's a relief. I do have an unusual setup with detached minibuf and
> > > > focus follows mouse. There has been a lot of churn in replace.el and frame.c
> > > > lately and I keep hoping the bug will go away on its own. I don't really
> > > > understand all the focus changes in the code but I do see why they are
> > > > necessary.

> > > > I have a workaround, I have bound this to a key and use it to re-focus to
> > > > the minibuf so I can enter the 'to' text:

> > > > (select-frame-set-input-focus (window-frame (minibuffer-window)))

> > > > But that requires manual intervention so for now I'm sticking with 28.1.

> > > I've been playing with the setup for an hour or two.  It seems that
> > > performing some action in the minibuffer (say, M-x auto-revert-mode, but
> > > anything will do) causes M-% to work properly.  But then, the moment the
> > > mouse leaves the active frame or window (I'm not sure which), M-% no
> > > longer works properly, until the next minibuffer action.

> > > I know this isn't much help to you, but it should be a help to us,
> > > tracking down what's going wrong.

> > If this is WM-specific, maybe Po Lu (CC'ed) could help us understand
> > what happens here?  Perhaps some message we expect from X is not being
> > received in this scenario?

> I've got some more info which might be useful.  There are two calls to
> read_minibuf (the lowest level of minibuffer access in src/minibuf.c)
> during the query-replace processing.

> during the first access, the focus gets redirected to the minibuffer at
> L812 of minibuf.c, with

>   if (!EQ (mini_frame, selected_frame))
>       Fredirect_frame_focus (selected_frame, mini_frame);

> ..  [I don't know what undoes this focus redirection later.]  After the
> recursive edit, provided it wasn't aborted with C-g, the code moves the
> focus back to the main frame with, at L963,

>     call2 (Qselect_frame_set_input_focus, calling_frame, Qnil);

> ..  In the bug scenario, if this statement at L963 is commented out, the
> bug symptoms are no longer evident.

> So it seems something in the second read_minibuf call is preventing the
> Fredirect_frame_focus at L812 from working.

No, that is not the case.

> We can hardly avoid needing to use GDB, here.

I've done some GDBing, and what is happening in the bug case is that the
window manager, twm, is sending a focus-in event to Emacs when we start
trying to read characters.  This focus-in event switches the current
frame away from the minibuffer's frame to the main frame.

I don't know why this is happening, or why omitting the
select-frame-set-input-focus at the end of the first read_minibuf call
causes us to be spared this focus-in event on the second read_minibuf
call.

It is not clear whether the bug is in the Emacs master (with which I've
been testing) or twm.

Help from somebody more experienced with X-Windows would be welcome.

-- 
Alan Mackenzie (Nuremberg, Germany).


> -- 
> Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 13:47               ` Alan Mackenzie
@ 2024-01-13 17:00                 ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-13 17:47                   ` Alan Mackenzie
                                     ` (2 more replies)
  0 siblings, 3 replies; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-13 17:00 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: Po Lu, Eli Zaretskii, 65116

Could it have something to do with the mouse warping? Why is the mouse
warping at all? I would prefer it stay right where it is. I'm pretty sure it
did at some recent time in the past, maybe emacs 26.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 17:00                 ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-13 17:47                   ` Alan Mackenzie
  2024-01-13 19:15                   ` Drew Adams
  2024-01-13 20:06                   ` Alan Mackenzie
  2 siblings, 0 replies; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-13 17:47 UTC (permalink / raw)
  To: Jim Rees; +Cc: Po Lu, acm, Eli Zaretskii, 65116

Hello, Jim.

On Sat, Jan 13, 2024 at 11:00:50 -0600, Jim Rees wrote:
> Could it have something to do with the mouse warping? Why is the mouse
> warping at all? I would prefer it stay right where it is. I'm pretty
> sure it did at some recent time in the past, maybe emacs 26.

If so, what is causing the mouse to warp at all?  Emacs shifts the focus
from the main frame to the minibuffer frame, so presumably that causes a
mouse warp.  Or does it?

Something is remembering state.  Performing a minibuffer action sets this
state, namely to something which allows M-% to work.  Moving the mouse
out of the main frame changes this state to something where M-% no longer
works, even after moving it back into the frame.

Maybe the minibuffer action causes some variable to "remember" it's "in
the minibuffer", so it doesn't try later to shift the focus to the main
frame, whereas when the mouse has been moved out and in again, this
variable "remembers" it's "in the main frame".  Or something like that.

But the problem only occurs during the second minibuffer use in M-%, not
the first one.

Is this state store in Emacs, in twm, or in X-Windows?  I'm inclined to
suspect twm, since the bug only seems to occur with twm and one other
window manager.  But my previous paragraph implies there's some relevant
state stored in Emacs, too.

I wish I knew more about X-Windows and window managers.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 17:00                 ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-13 17:47                   ` Alan Mackenzie
@ 2024-01-13 19:15                   ` Drew Adams
  2024-01-13 20:18                     ` Alan Mackenzie
  2024-01-13 20:06                   ` Alan Mackenzie
  2 siblings, 1 reply; 38+ messages in thread
From: Drew Adams @ 2024-01-13 19:15 UTC (permalink / raw)
  To: Jim Rees, Alan Mackenzie; +Cc: Po Lu, Eli Zaretskii, 65116@debbugs.gnu.org

> Could it have something to do with the mouse warping? Why is the mouse
> warping at all? I would prefer it stay right where it is. I'm pretty sure
> it did at some recent time in the past, maybe emacs 26.

...Yes, I hear a distant bell ringing...

(Stuck on Emacs 26...)






^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 17:00                 ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-13 17:47                   ` Alan Mackenzie
  2024-01-13 19:15                   ` Drew Adams
@ 2024-01-13 20:06                   ` Alan Mackenzie
  2024-01-13 23:53                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2 siblings, 1 reply; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-13 20:06 UTC (permalink / raw)
  To: Jim Rees; +Cc: Po Lu, acm, Eli Zaretskii, 65116

Hello again, Jim.

On Sat, Jan 13, 2024 at 11:00:50 -0600, Jim Rees wrote:
> Could it have something to do with the mouse warping? Why is the mouse
> warping at all? I would prefer it stay right where it is. I'm pretty sure it
> did at some recent time in the past, maybe emacs 26.

I think I've got it.  The problem was which frame has X-Windows's
focus.  Most of the time, that's the minibuffer's/echo-area's frame,
because at the end of most commands, something gets written to the
echo-area.

In the current bug situation, after the first read-minibuffer of M-%,
nothing is output to the echo-area, but the GUI focus is switched to the
main frame.  It stays there for the second read-minibuffer, and that's
what you saw on your terminal.

The solution would appear to be explicitly to switch the focus to the
minibuffer frame before attempting to read from it.  The following patch
does this, and appears to work for me.



diff --git a/src/minibuf.c b/src/minibuf.c
index f4f9da9c3f9..d940c0d717f 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -825,6 +825,11 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt,
   /* Use set_window_buffer instead of Fset_window_buffer (see
      discussion of bug#11984, bug#12025, bug#12026).  */
   set_window_buffer (minibuf_window, Fcurrent_buffer (), 0, 0);
+  /* Make sure the minibuffer's frame has the input focus.  This is
+     particularly for the twm window manager with detached minibuffer.
+     (See Bug#65116.)  */
+  if (!EQ (mini_frame, selected_frame))
+    call2 (Qselect_frame_set_input_focus, mini_frame, Qt);
   Fselect_window (minibuf_window, Qnil);
   XWINDOW (minibuf_window)->hscroll = 0;
   XWINDOW (minibuf_window)->suspend_auto_hscroll = 0;


Would you please apply the patch, rebuild your Emacs, and see if the
problem really is solved.  The patch should apply cleanly to either the
Emacs master, or the 29.x sources.  (I'm assuming you have no troubles
with patching and building, but if so, feel free to send me private
email.)  Then please confirm things are OK so that I can close the bug,
or tell me what's still not working properly.

Thanks!

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply related	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 19:15                   ` Drew Adams
@ 2024-01-13 20:18                     ` Alan Mackenzie
  2024-01-13 21:19                       ` Drew Adams
  0 siblings, 1 reply; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-13 20:18 UTC (permalink / raw)
  To: Drew Adams; +Cc: Po Lu, acm, Eli Zaretskii, Jim Rees, 65116@debbugs.gnu.org

Hello, Drew.

On Sat, Jan 13, 2024 at 19:15:33 +0000, Drew Adams wrote:
> > Could it have something to do with the mouse warping? Why is the mouse
> > warping at all? I would prefer it stay right where it is. I'm pretty sure
> > it did at some recent time in the past, maybe emacs 26.

> ...Yes, I hear a distant bell ringing...

> (Stuck on Emacs 26...)

Could you possibly try my patch for this bug on an Emacs more recent
than 26, and see if it helps at all with the things that have not been
right w.r.t. minibuffers and the like?

Thanks!

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 20:18                     ` Alan Mackenzie
@ 2024-01-13 21:19                       ` Drew Adams
  2024-01-13 21:35                         ` Alan Mackenzie
  0 siblings, 1 reply; 38+ messages in thread
From: Drew Adams @ 2024-01-13 21:19 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: Po Lu, Eli Zaretskii, Jim Rees, 65116@debbugs.gnu.org

> > > Could it have something to do with the mouse warping? Why is the mouse
> > > warping at all? I would prefer it stay right where it is. I'm pretty
> sure
> > > it did at some recent time in the past, maybe emacs 26.
> 
> > ...Yes, I hear a distant bell ringing...
> > (Stuck on Emacs 26...)
> 
> Could you possibly try my patch for this bug on an Emacs more recent
> than 26, and see if it helps at all with the things that have not been
> right w.r.t. minibuffers and the like?

No; sorry Alan, I can't.  I don't build Emacs,
I'm on MS Windows.  And too many things have
changed since Emacs 26.  I've given up trying
 to figure out focus problems etc.

Maybe someone at some point will report a
problem, giving a specific, operational recipe,
and maybe that'll get fixed, and maybe that
fix will help me with the problems I encounter.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 21:19                       ` Drew Adams
@ 2024-01-13 21:35                         ` Alan Mackenzie
  0 siblings, 0 replies; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-13 21:35 UTC (permalink / raw)
  To: Drew Adams; +Cc: Po Lu, acm, Eli Zaretskii, Jim Rees, 65116@debbugs.gnu.org

Hello, Drew.

On Sat, Jan 13, 2024 at 21:19:36 +0000, Drew Adams wrote:
> > > > Could it have something to do with the mouse warping? Why is the mouse
> > > > warping at all? I would prefer it stay right where it is. I'm pretty
> > sure
> > > > it did at some recent time in the past, maybe emacs 26.

> > > ...Yes, I hear a distant bell ringing...
> > > (Stuck on Emacs 26...)

> > Could you possibly try my patch for this bug on an Emacs more recent
> > than 26, and see if it helps at all with the things that have not been
> > right w.r.t. minibuffers and the like?

> No; sorry Alan, I can't.  I don't build Emacs,
> I'm on MS Windows.  And too many things have
> changed since Emacs 26.  I've given up trying
>  to figure out focus problems etc.

I've not.

> Maybe someone at some point will report a
> problem, giving a specific, operational recipe,
> and maybe that'll get fixed, .....

That's precisely what's just happened, or will have happened if the OP's
testing shows the expected OK.

> ..... and maybe that fix will help me with the problems I encounter.

Maybe.  Who knows?

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 20:06                   ` Alan Mackenzie
@ 2024-01-13 23:53                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-14  6:21                       ` Eli Zaretskii
  0 siblings, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-13 23:53 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: Po Lu, Eli Zaretskii, 65116

Yes that fixed it. Thanks.

The focus logic did change some time around emacs 26 or 27. Before that time
the X focus stayed with the edit frame, but input was directed (by emacs I
guess) to the minibuf. Now the X focus shifts to the minibuf and back, which
is why my mouse warps to the upper corner of the edit frame. It's annoying
and I'll be looking for a fix, but I can't honestly say it's an emacs bug.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13  6:34           ` Eli Zaretskii
  2024-01-13  9:23             ` Alan Mackenzie
@ 2024-01-14  0:27             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-14 14:14               ` Alan Mackenzie
  1 sibling, 1 reply; 38+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-14  0:27 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Alan Mackenzie, jim, 65116

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Fri, 12 Jan 2024 21:44:11 +0000
>> Cc: 65116@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>, acm@muc.de
>> From: Alan Mackenzie <acm@muc.de>
>> 
>> Hello, Jim.
>> 
>> On Fri, Jan 12, 2024 at 12:57:42 -0600, Jim Rees wrote:
>> > Well that's a relief. I do have an unusual setup with detached minibuf and
>> > focus follows mouse. There has been a lot of churn in replace.el and frame.c
>> > lately and I keep hoping the bug will go away on its own. I don't really
>> > understand all the focus changes in the code but I do see why they are
>> > necessary.
>> 
>> > I have a workaround, I have bound this to a key and use it to re-focus to
>> > the minibuf so I can enter the 'to' text:
>> 
>> > (select-frame-set-input-focus (window-frame (minibuffer-window)))
>> 
>> > But that requires manual intervention so for now I'm sticking with 28.1.
>> 
>> I've been playing with the setup for an hour or two.  It seems that
>> performing some action in the minibuffer (say, M-x auto-revert-mode, but
>> anything will do) causes M-% to work properly.  But then, the moment the
>> mouse leaves the active frame or window (I'm not sure which), M-% no
>> longer works properly, until the next minibuffer action.
>> 
>> I know this isn't much help to you, but it should be a help to us,
>> tracking down what's going wrong.
>
> If this is WM-specific, maybe Po Lu (CC'ed) could help us understand
> what happens here?  Perhaps some message we expect from X is not being
> received in this scenario?

This is GTK3-specific.  I've installed a fix on master, please test.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-13 23:53                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-14  6:21                       ` Eli Zaretskii
  2024-01-14 14:33                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-14 16:59                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 38+ messages in thread
From: Eli Zaretskii @ 2024-01-14  6:21 UTC (permalink / raw)
  To: Jim Rees; +Cc: luangruo, acm, 65116

> Date: Sat, 13 Jan 2024 17:53:17 -0600
> From: Jim Rees <jim@rees.org>
> Cc: Eli Zaretskii <eliz@gnu.org>, Po Lu <luangruo@yahoo.com>,
> 	65116@debbugs.gnu.org
> 
> Yes that fixed it. Thanks.

Can you please revert that change, and instead test the patch below?
It was recently installed on the master branch of Emacs.

diff --git a/src/xterm.c b/src/xterm.c
index 77d6550..fe39817 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -13370,13 +13370,12 @@ xi_focus_handle_for_device (struct x_display_info *dpyinfo,
 	 frame's user time.  */
       x_display_set_last_user_time (dpyinfo, event->time,
 				    event->send_event, false);
-
       device->focus_frame = NULL;
 
       /* So, unfortunately, the X Input Extension is implemented such
-	 that means XI_Leave events will not have their focus field
-	 set if the core focus is transferred to another window after
-	 an entry event that pretends to (or really does) set the
+	 that XI_Leave events will not have their focus field set if
+	 the core focus is transferred to another window after an
+	 entry event that pretends to (or really does) set the
 	 implicit focus.  In addition, if the core focus is set, but
 	 the extension focus on the client pointer is not, all
 	 XI_Enter events will have their focus fields set, despite not
@@ -28805,6 +28804,33 @@ x_focus_frame (struct frame *f, bool noactivate)
      friends being set.  */
   block_input ();
 
+#ifdef HAVE_GTK3
+  /* read_minibuf assumes that calling Fx_focus_frame on a frame that
+     is already selected won't move the focus elsewhere, and thereby
+     disrupt any focus redirection to e.g. a minibuffer frame that
+     might be activated between that call being made and the
+     consequent XI_FocusIn/Out events arriving.  This is true whether
+     the focus is ultimately transferred back to the frame it was
+     initially on or not.
+
+     GTK 3 moves the keyboard focus to the edit widget's window
+     whenever it receives a FocusIn event targeting the outer window.
+     This operation gives rise to a FocusOut event that clears
+     device->focus_frame, which in turn prompts xi_handle_focus_change
+     to clear the display's focus frame.  The next FocusIn event
+     destined for the same frame registers as a new focus, which
+     cancels any focus redirection from that frame.
+
+     To prevent this chain of events from disrupting focus redirection
+     when the minibuffer is activated twice in rapid succession while
+     configured to redirect focus to a minibuffer frame, ignore frames
+     which hold the input focus and are connected to a minibuffer
+     window.  (bug#65116)*/
+
+  if (f == dpyinfo->x_focus_frame && !FRAME_HAS_MINIBUF_P (f))
+    return;
+#endif /* HAVE_GTK3 */
+
   if (FRAME_X_EMBEDDED_P (f))
     /* For Xembedded frames, normally the embedder forwards key
        events.  See XEmbed Protocol Specification at





^ permalink raw reply related	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14  0:27             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-14 14:14               ` Alan Mackenzie
  0 siblings, 0 replies; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-14 14:14 UTC (permalink / raw)
  To: Po Lu; +Cc: acm, Eli Zaretskii, jim, 65116

Hello, Po.

On Sun, Jan 14, 2024 at 08:27:16 +0800, Po Lu wrote:
> Eli Zaretskii <eliz@gnu.org> writes:

> >> Date: Fri, 12 Jan 2024 21:44:11 +0000
> >> Cc: 65116@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>, acm@muc.de
> >> From: Alan Mackenzie <acm@muc.de>

> >> Hello, Jim.

> >> On Fri, Jan 12, 2024 at 12:57:42 -0600, Jim Rees wrote:
> >> > Well that's a relief. I do have an unusual setup with detached minibuf and
> >> > focus follows mouse. There has been a lot of churn in replace.el and frame.c
> >> > lately and I keep hoping the bug will go away on its own. I don't really
> >> > understand all the focus changes in the code but I do see why they are
> >> > necessary.

> >> > I have a workaround, I have bound this to a key and use it to re-focus to
> >> > the minibuf so I can enter the 'to' text:

> >> > (select-frame-set-input-focus (window-frame (minibuffer-window)))

> >> > But that requires manual intervention so for now I'm sticking with 28.1.

> >> I've been playing with the setup for an hour or two.  It seems that
> >> performing some action in the minibuffer (say, M-x auto-revert-mode, but
> >> anything will do) causes M-% to work properly.  But then, the moment the
> >> mouse leaves the active frame or window (I'm not sure which), M-% no
> >> longer works properly, until the next minibuffer action.

> >> I know this isn't much help to you, but it should be a help to us,
> >> tracking down what's going wrong.

> > If this is WM-specific, maybe Po Lu (CC'ed) could help us understand
> > what happens here?  Perhaps some message we expect from X is not being
> > received in this scenario?

> This is GTK3-specific.  I've installed a fix on master, please test.

Thanks for this.  Thanks also for the detailed comment explaining the
fix.  I now understand where and why the redirected focus carefully
installed on the main frame was being removed.

I've tested it, with Jim's test case, and it works for me.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14  6:21                       ` Eli Zaretskii
@ 2024-01-14 14:33                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-14 15:03                           ` Alan Mackenzie
  2024-01-14 16:59                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-14 14:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, acm, 65116

Yes that also fixes it.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14 14:33                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-14 15:03                           ` Alan Mackenzie
  0 siblings, 0 replies; 38+ messages in thread
From: Alan Mackenzie @ 2024-01-14 15:03 UTC (permalink / raw)
  To: Jim Rees; +Cc: luangruo, acm, Eli Zaretskii, 65116-done

Hello, Jim.

On Sun, Jan 14, 2024 at 08:33:03 -0600, Jim Rees wrote:
> Yes that also fixes it.

Thanks for the testing!

I'm closing the bug with this post, now.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14  6:21                       ` Eli Zaretskii
  2024-01-14 14:33                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-14 16:59                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-14 17:17                           ` Eli Zaretskii
  1 sibling, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-14 16:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, acm, 65116

While Po's patch fixes the read-args focus bug, I now have a new bug. It
happens irregularly and I can't say for sure yet that it's caused by Po's
patch. I don't know what triggers it but it seems I need to have at least
two edit frames open.

What happens first is the mouse pointer disappears, but I can still edit.
After a while emacs hangs and ignores all input. A bit later it won't even
redisplay frames on X exposure.

Here is the stack when it hangs:

% sudo gdb -batch -ex bt -p 174496
[New LWP 174497]
[New LWP 174498]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
0x00007f7f6ee3e9d8 in pthread_sigmask () from /usr/lib/libc.so.6
#0  0x00007f7f6ee3e9d8 in pthread_sigmask () at /usr/lib/libc.so.6
#1  0x000055e30363ed64 in block_interrupt_signal ()
#2  0x000055e3036d3a2a in really_call_select ()
#3  0x000055e3036d3ee9 in thread_select ()
#4  0x000055e3036ec3e4 in xg_select ()
#5  0x000055e3036baaa2 in wait_reading_process_output ()
#6  0x000055e303634352 in read_char ()
#7  0x000055e303635b0d in read_key_sequence ()
#8  0x000055e303636999 in command_loop_1 ()
#9  0x000055e3036870a9 in internal_condition_case ()
#10 0x000055e30362a3d2 in command_loop_2 ()
#11 0x000055e303687027 in internal_catch ()
#12 0x000055e30362a374 in command_loop ()
#13 0x000055e30362d1c3 in recursive_edit_1 ()
#14 0x000055e30362d418 in Frecursive_edit ()
#15 0x000055e30356b311 in main ()
[Inferior 1 (process 174496) detached]

Note this is Po's patch on top of stock 29.1. If I get ambitious I'll try
building from master.

I would not normally report a bug with such sketchy information but I
thought you should know. If I figure out anything more I will make a proper
bug report.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14 16:59                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-14 17:17                           ` Eli Zaretskii
  2024-01-14 17:33                             ` Eli Zaretskii
  0 siblings, 1 reply; 38+ messages in thread
From: Eli Zaretskii @ 2024-01-14 17:17 UTC (permalink / raw)
  To: Jim Rees; +Cc: luangruo, acm, 65116

> Date: Sun, 14 Jan 2024 10:59:16 -0600
> From: Jim Rees <jim@rees.org>
> Cc: acm@muc.de, luangruo@yahoo.com, 65116@debbugs.gnu.org
> 
> What happens first is the mouse pointer disappears, but I can still edit.
> After a while emacs hangs and ignores all input. A bit later it won't even
> redisplay frames on X exposure.
> 
> Here is the stack when it hangs:
> 
> % sudo gdb -batch -ex bt -p 174496
> [New LWP 174497]
> [New LWP 174498]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/usr/lib/libthread_db.so.1".
> 0x00007f7f6ee3e9d8 in pthread_sigmask () from /usr/lib/libc.so.6
> #0  0x00007f7f6ee3e9d8 in pthread_sigmask () at /usr/lib/libc.so.6
> #1  0x000055e30363ed64 in block_interrupt_signal ()
> #2  0x000055e3036d3a2a in really_call_select ()
> #3  0x000055e3036d3ee9 in thread_select ()
> #4  0x000055e3036ec3e4 in xg_select ()
> #5  0x000055e3036baaa2 in wait_reading_process_output ()
> #6  0x000055e303634352 in read_char ()
> #7  0x000055e303635b0d in read_key_sequence ()
> #8  0x000055e303636999 in command_loop_1 ()
> #9  0x000055e3036870a9 in internal_condition_case ()
> #10 0x000055e30362a3d2 in command_loop_2 ()
> #11 0x000055e303687027 in internal_catch ()
> #12 0x000055e30362a374 in command_loop ()
> #13 0x000055e30362d1c3 in recursive_edit_1 ()
> #14 0x000055e30362d418 in Frecursive_edit ()
> #15 0x000055e30356b311 in main ()
> [Inferior 1 (process 174496) detached]

AFAIU, this backtrace just says that Emacs waits for some input, so it
isn't very informative.  The question is why it doesn't _get_ any
input?





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14 17:17                           ` Eli Zaretskii
@ 2024-01-14 17:33                             ` Eli Zaretskii
  2024-01-14 19:10                               ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Eli Zaretskii @ 2024-01-14 17:33 UTC (permalink / raw)
  To: jim; +Cc: luangruo, acm, 65116

> Cc: luangruo@yahoo.com, acm@muc.de, 65116@debbugs.gnu.org
> Date: Sun, 14 Jan 2024 19:17:13 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > % sudo gdb -batch -ex bt -p 174496
> > [New LWP 174497]
> > [New LWP 174498]
> > [Thread debugging using libthread_db enabled]
> > Using host libthread_db library "/usr/lib/libthread_db.so.1".
> > 0x00007f7f6ee3e9d8 in pthread_sigmask () from /usr/lib/libc.so.6
> > #0  0x00007f7f6ee3e9d8 in pthread_sigmask () at /usr/lib/libc.so.6
> > #1  0x000055e30363ed64 in block_interrupt_signal ()
> > #2  0x000055e3036d3a2a in really_call_select ()
> > #3  0x000055e3036d3ee9 in thread_select ()
> > #4  0x000055e3036ec3e4 in xg_select ()
> > #5  0x000055e3036baaa2 in wait_reading_process_output ()
> > #6  0x000055e303634352 in read_char ()
> > #7  0x000055e303635b0d in read_key_sequence ()
> > #8  0x000055e303636999 in command_loop_1 ()
> > #9  0x000055e3036870a9 in internal_condition_case ()
> > #10 0x000055e30362a3d2 in command_loop_2 ()
> > #11 0x000055e303687027 in internal_catch ()
> > #12 0x000055e30362a374 in command_loop ()
> > #13 0x000055e30362d1c3 in recursive_edit_1 ()
> > #14 0x000055e30362d418 in Frecursive_edit ()
> > #15 0x000055e30356b311 in main ()
> > [Inferior 1 (process 174496) detached]
> 
> AFAIU, this backtrace just says that Emacs waits for some input, so it
> isn't very informative.  The question is why it doesn't _get_ any
> input?

Btw, I think you should submit a separate bug report about this, as
this issue is probably unrelated.  Unless you are saying that before
applying Po's patch this never happened to you.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14 17:33                             ` Eli Zaretskii
@ 2024-01-14 19:10                               ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-14 19:42                                 ` Eli Zaretskii
  0 siblings, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-14 19:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, acm, 65116

This only happens with Po's patch, not with unpatched 29.1 or with Alan's
patch. That's the only reason I mention it. I don't feel I have enough
information to make a separate bug report at this time.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14 19:10                               ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-14 19:42                                 ` Eli Zaretskii
  2024-01-15  0:27                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Eli Zaretskii @ 2024-01-14 19:42 UTC (permalink / raw)
  To: Jim Rees; +Cc: luangruo, acm, 65116

> Date: Sun, 14 Jan 2024 13:10:47 -0600
> From: Jim Rees <jim@rees.org>
> Cc: luangruo@yahoo.com, acm@muc.de, 65116@debbugs.gnu.org
> 
> This only happens with Po's patch, not with unpatched 29.1 or with Alan's
> patch. That's the only reason I mention it. I don't feel I have enough
> information to make a separate bug report at this time.

Po Lu, does your patch assume something that exists only on the master
branch?  If not, maybe there's some problem with your solution?





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-14 19:42                                 ` Eli Zaretskii
@ 2024-01-15  0:27                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-15  1:29                                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-15  0:27 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: acm, Jim Rees, 65116

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Sun, 14 Jan 2024 13:10:47 -0600
>> From: Jim Rees <jim@rees.org>
>> Cc: luangruo@yahoo.com, acm@muc.de, 65116@debbugs.gnu.org
>> 
>> This only happens with Po's patch, not with unpatched 29.1 or with Alan's
>> patch. That's the only reason I mention it. I don't feel I have enough
>> information to make a separate bug report at this time.
>
> Po Lu, does your patch assume something that exists only on the master
> branch?  If not, maybe there's some problem with your solution?

No, it should be compatible with 29.1.  Jim, does your window manager
indicate whether the frame is focused in its window decorations, and if
so, are such indications active when Emacs appears to hang?





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-15  0:27                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-15  1:29                                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-15  3:38                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-15  1:29 UTC (permalink / raw)
  To: Po Lu; +Cc: acm, Eli Zaretskii, 65116

Po Lu wrote:

  No, it should be compatible with 29.1.  Jim, does your window manager
  indicate whether the frame is focused in its window decorations, and if
  so, are such indications active when Emacs appears to hang?

Yes it does, and yes they are.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-15  1:29                                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-15  3:38                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-15  4:52                                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-15  3:38 UTC (permalink / raw)
  To: Jim Rees; +Cc: acm, Eli Zaretskii, 65116

Jim Rees <jim@rees.org> writes:

> Po Lu wrote:
>
>   No, it should be compatible with 29.1.  Jim, does your window manager
>   indicate whether the frame is focused in its window decorations, and if
>   so, are such indications active when Emacs appears to hang?
>
> Yes it does, and yes they are.

diff --git a/src/gtkutil.c b/src/gtkutil.c
index 6cfb4034ed9..a7c547afd39 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1593,6 +1593,9 @@ xg_create_frame_widgets (struct frame *f)
 
   /* Use same names as the Xt port does.  I.e. Emacs.pane.emacs by default */
   gtk_widget_set_name (wtop, EMACS_CLASS);
+#if defined HAVE_XINPUT2 && defined HAVE_GTK3
+  gtk_widget_add_events (wtop, GDK_ALL_EVENTS_MASK);
+#endif /* HAVE_XINPUT2 && HAVE_GTK3 */
   gtk_widget_set_name (wvbox, "pane");
   gtk_widget_set_name (wfixed, SSDATA (Vx_resource_name));
 
Does this solve the problem?

Thanks for testing.





^ permalink raw reply related	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-15  3:38                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-15  4:52                                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-15  6:31                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-15  4:52 UTC (permalink / raw)
  To: Po Lu; +Cc: acm, Eli Zaretskii, 65116

No, that does not solve the problem.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-15  4:52                                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-15  6:31                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-15 16:47                                             ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 38+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-15  6:31 UTC (permalink / raw)
  To: Jim Rees; +Cc: acm, Eli Zaretskii, 65116

Jim Rees <jim@rees.org> writes:

> No, that does not solve the problem.

Nevermind, I set aside some time to debug this.  A missing unblock_input
was the culprit, which has now been fixed on master:

diff --git a/src/xterm.c b/src/xterm.c
index fe398171754..c8a43785564 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -28828,7 +28828,10 @@ x_focus_frame (struct frame *f, bool noactivate)
      window.  (bug#65116)*/
 
   if (f == dpyinfo->x_focus_frame && !FRAME_HAS_MINIBUF_P (f))
-    return;
+    {
+      unblock_input ();
+      return;
+    }
 #endif /* HAVE_GTK3 */
 
   if (FRAME_X_EMBEDDED_P (f))





^ permalink raw reply related	[flat|nested] 38+ messages in thread

* bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf
  2024-01-15  6:31                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-15 16:47                                             ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 38+ messages in thread
From: Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-15 16:47 UTC (permalink / raw)
  To: Po Lu; +Cc: acm, Eli Zaretskii, 65116

So far so good. If you don't hear from me in the next couple of days
consider it fixed. Thanks.





^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2024-01-15 16:47 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-06 17:18 bug#65116: 29.1; query-replace-read-args fails reading second arg in detached minibuf Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-07 15:57 ` Eli Zaretskii
2024-01-12  6:26   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-12 12:00     ` Eli Zaretskii
2024-01-12 14:38       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-12 15:25       ` Alan Mackenzie
2024-01-12 15:37 ` Alan Mackenzie
2024-01-12 15:59   ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-12 17:28     ` Alan Mackenzie
2024-01-12 18:57       ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-12 21:44         ` Alan Mackenzie
2024-01-13  6:34           ` Eli Zaretskii
2024-01-13  9:23             ` Alan Mackenzie
2024-01-13 13:47               ` Alan Mackenzie
2024-01-13 17:00                 ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-13 17:47                   ` Alan Mackenzie
2024-01-13 19:15                   ` Drew Adams
2024-01-13 20:18                     ` Alan Mackenzie
2024-01-13 21:19                       ` Drew Adams
2024-01-13 21:35                         ` Alan Mackenzie
2024-01-13 20:06                   ` Alan Mackenzie
2024-01-13 23:53                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-14  6:21                       ` Eli Zaretskii
2024-01-14 14:33                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-14 15:03                           ` Alan Mackenzie
2024-01-14 16:59                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-14 17:17                           ` Eli Zaretskii
2024-01-14 17:33                             ` Eli Zaretskii
2024-01-14 19:10                               ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-14 19:42                                 ` Eli Zaretskii
2024-01-15  0:27                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-15  1:29                                     ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-15  3:38                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-15  4:52                                         ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-15  6:31                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-15 16:47                                             ` Jim Rees via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-14  0:27             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-14 14:14               ` Alan Mackenzie

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).