GNU bug report logs - #76404
31.0.50; ERC 5.6.1-git: new erc query buffer becomes sole window on RET

Previous Next

Package: emacs;

Reported by: Trevor Arjeski <tmarjeski <at> gmail.com>

Date: Tue, 18 Feb 2025 20:29:02 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 76404 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#76404; Package emacs. (Tue, 18 Feb 2025 20:29:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Trevor Arjeski <tmarjeski <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 18 Feb 2025 20:29:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Trevor Arjeski <tmarjeski <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; ERC 5.6.1-git: new erc query buffer becomes sole window on
 RET 
Date: Tue, 18 Feb 2025 23:27:58 +0300
Using a few new emacs 31 window configurations, upon creating a new erc
query buffer with `/query yournick`, hitting RET or sending a message
makes the window the sole window in the frame as if C-x 1 was entered.

Minimal reproduction:

(use-package window
  :custom
  (kill-buffer-quit-windows t)
  (quit-restore-window-no-switch 'skip-first))

1. Start erc
2. Open a query from the server buffer with `/query trev`
3. Hit enter
4. Notice that the query buffer that was created as a split becomes the
only window in the frame.

This seems to trigger in `erc--split-line` in erc-backend.el, where a
temp buffer is created and then subsequently killed.



In GNU Emacs 31.0.50 (build 10, x86_64-pc-linux-gnu, GTK+ Version
 3.24.48, cairo version 1.18.2) of 2025-02-14 built on trevarch
Repository revision: 4d6f40dfc9075d64275da97dc35a2becc9eca4a2
Repository branch: makepkg
System Description: Arch Linux

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --with-modules --without-m17n-flt --without-gconf
 --with-native-compilation=yes --with-xinput2 --with-pgtk
 --without-xaw3d --with-sound=no --with-tree-sitter --without-gpm
 --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer
 -mno-omit-leaf-frame-pointer -Wno-implicit-function-declaration -g
 -ffile-prefix-map=/home/trev/Workspace/emacs-git/src=/usr/src/debug/emacs-git
 -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed
 -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM GTK3 ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-spelling-mode: t
  erc-ring-mode: t
  erc-netsplit-mode: t
  erc-menu-mode: t
  erc-match-mode: t
  erc-list-mode: t
  erc-irccontrols-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-scrolltobottom-mode: t
  erc-imenu-mode: t
  erc-pcomplete-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-autojoin-mode: t
  erc-networks-mode: t
  diff-hl-flydiff-mode: t
  global-diff-hl-mode: t
  diff-hl-mode: t
  paredit-mode: t
  display-line-numbers-mode: t
  ligature-mode: t
  rainbow-delimiters-mode: t
  format-all-mode: t
  global-auto-revert-mode: t
  repeat-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  global-treesit-auto-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  marginalia-mode: t
  savehist-mode: t
  vertico-mode: t
  auto-insert-mode: t
  undo-fu-session-global-mode: t
  undo-fu-session-mode: t
  which-key-mode: t
  electric-pair-mode: t
  desktop-save-mode: t
  recentf-mode: t
  save-place-mode: t
  override-global-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  window-divider-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t

Load-path shadows:
~/.emacs.d//lisp/aoc hides /home/trev/.emacs.d/elpa/aoc-1.0.0/aoc
~/.emacs.d//lisp/launch-program hides /home/trev/.emacs.d/elpa/launch-program-1.0.0/launch-program
~/.emacs.d//lisp/my-secrets hides /home/trev/.emacs.d/elpa/my-secrets-1.0.0/my-secrets

Features:
(shadow sort mail-extr emacsbug pulse bug-reference eglot
external-completion jsonrpc flymake ert pcase c++-ts-mode c-ts-mode
c-ts-common xref project cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine comp comp-cstr warnings thingatpt helpful
cc-langs cc-vars cc-defs trace cl-print edebug debug backtrace info-look
find-func f help-fns radix-tree elisp-refs s comp-run comp-common novice
misearch multi-isearch mule-util orderless cape-char cape network-stream
nsm erc-track erc-spelling flyspell ispell erc-ring erc-nicks
erc-netsplit erc-menu erc-match erc-list erc-goodies erc-imenu imenu
erc-pcomplete pcomplete erc-button erc-fill erc-stamp erc-join
my-secrets cus-start epa-file erc format-spec erc-backend erc-networks
erc-common erc-compat erc-loaddefs diff-hl-flydiff diff diff-hl log-view
log-edit message sendmail yank-media puny dired dired-loaddefs rfc822
mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader add-log pcvs-util vc-dir ewoc vc vc-git diff-mode
track-changes files-x vc-dispatcher jka-compr paredit
display-line-numbers rx ligature rainbow-delimiters format-all
language-id inheritenv autorevert filenotify repeat init gnus nnheader
gnus-util time-date mail-utils range mm-util mail-prsvr cus-edit pp
ws-butler treesit-auto treesit corfu-popupinfo corfu marginalia savehist
vertico compat autoinsert grep compile text-property-search comint
ansi-osc ansi-color ring cus-load undo-fu-session which-key diminish
finder-inf edmacro kmacro elec-pair desktop frameset recentf tree-widget
wid-edit saveplace nord-theme autothemer color lisp-mnt dash use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode package browse-url xdg url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source eieio eieio-core icons password-cache json subr-x map
byte-opt url-vars cl-macs gv cl-extra help-mode cl-seq use-package-core
cl-loaddefs cl-lib bytecomp byte-compile info 2048-game-autoloads
ace-window-autoloads aio-autoloads aoc-autoloads autothemer-autoloads
avy-autoloads benchmark-init-autoloads cape-autoloads corfu-autoloads
debbugs-autoloads diff-hl-autoloads diminish-autoloads elfeed-autoloads
emacsql-autoloads envrc-autoloads format-all-autoloads
geiser-guile-autoloads geiser-autoloads git-modes-autoloads
heap-autoloads helpful-autoloads elisp-refs-autoloads f-autoloads
ht-autoloads inheritenv-autoloads language-id-autoloads
launch-program-autoloads ligature-autoloads log4e-autoloads
magit-autoloads magit-section-autoloads dash-autoloads
marginalia-autoloads markdown-mode-autoloads my-secrets-autoloads
orderless-autoloads paredit-autoloads rainbow-delimiters-autoloads
rainbow-mode-autoloads request-autoloads rust-mode-autoloads s-autoloads
sly-autoloads treesit-auto-autoloads undo-fu-autoloads
undo-fu-session-autoloads vertico-autoloads vterm-autoloads
with-editor-autoloads ws-butler-autoloads early-init rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win
touch-screen pgtk-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 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 dynamic-setting system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar
make-network-process tty-child-frames native-compile emacs)

Memory information:
((conses 16 753787 456549) (symbols 48 29546 38) (strings 32 122308 34583)
 (string-bytes 1 4464676) (vectors 16 60371) (vector-slots 8 1478094 442007)
 (floats 8 389 931) (intervals 56 35024 2770) (buffers 992 38))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76404; Package emacs. (Wed, 19 Feb 2025 03:39:02 GMT) Full text and rfc822 format available.

Message #8 received at 76404 <at> debbugs.gnu.org (full text, mbox):

From: "J.P." <jp <at> neverwas.me>
To: Trevor Arjeski <tmarjeski <at> gmail.com>
Cc: emacs-erc <at> gnu.org, 76404 <at> debbugs.gnu.org
Subject: Re: bug#76404: 31.0.50; ERC 5.6.1-git: new erc query buffer becomes
 sole window on RET
Date: Tue, 18 Feb 2025 19:38:23 -0800
[Message part 1 (text/plain, inline)]
Trevor Arjeski <tmarjeski <at> gmail.com> writes:

> Using a few new emacs 31 window configurations, upon creating a new erc
> query buffer with `/query yournick`, hitting RET or sending a message
> makes the window the sole window in the frame as if C-x 1 was entered.
>
> Minimal reproduction:
>
> (use-package window
>   :custom
>   (kill-buffer-quit-windows t)
>   (quit-restore-window-no-switch 'skip-first))
>
> 1. Start erc
> 2. Open a query from the server buffer with `/query trev`
> 3. Hit enter
> 4. Notice that the query buffer that was created as a split becomes the
> only window in the frame.
>
> This seems to trigger in `erc--split-line` in erc-backend.el, where a
> temp buffer is created and then subsequently killed.

Thanks for investigating. Does the attached patch improve the situation?

[0001-5.6.1-Don-t-kill-window-buffer-in-erc-split-line.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76404; Package emacs. (Wed, 19 Feb 2025 04:40:02 GMT) Full text and rfc822 format available.

Message #11 received at 76404 <at> debbugs.gnu.org (full text, mbox):

From: Trevor Arjeski <tmarjeski <at> gmail.com>
To: "J.P." <jp <at> neverwas.me>
Cc: emacs-erc <at> gnu.org, 76404 <at> debbugs.gnu.org
Subject: Re: bug#76404: 31.0.50; ERC 5.6.1-git: new erc query buffer becomes
 sole window on RET
Date: Wed, 19 Feb 2025 07:38:53 +0300
"J.P." <jp <at> neverwas.me> writes:

> Trevor Arjeski <tmarjeski <at> gmail.com> writes:
>
>> Using a few new emacs 31 window configurations, upon creating a new erc
>> query buffer with `/query yournick`, hitting RET or sending a message
>> makes the window the sole window in the frame as if C-x 1 was entered.
>>
>> Minimal reproduction:
>>
>> (use-package window
>>   :custom
>>   (kill-buffer-quit-windows t)
>>   (quit-restore-window-no-switch 'skip-first))
>>
>> 1. Start erc
>> 2. Open a query from the server buffer with `/query trev`
>> 3. Hit enter
>> 4. Notice that the query buffer that was created as a split becomes the
>> only window in the frame.
>>
>> This seems to trigger in `erc--split-line` in erc-backend.el, where a
>> temp buffer is created and then subsequently killed.
>
> Thanks for investigating. Does the attached patch improve the situation?

Thanks, this works!

Trevor




This bug report was last modified 2 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.