GNU bug report logs - #60784
29.0.60; ERC 5.5: Don't interfere with non-module minor modes in erc-open

Previous Next

Package: emacs;

Reported by: "J.P." <jp <at> neverwas.me>

Date: Fri, 13 Jan 2023 14:19:01 UTC

Severity: normal

Tags: patch

Found in version 29.0.60

Done: "J.P." <jp <at> neverwas.me>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 60784 in the body.
You can then email your comments to 60784 AT debbugs.gnu.org in the normal way.

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

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


Report forwarded to emacs-erc <at> gnu.org, bug-gnu-emacs <at> gnu.org:
bug#60784; Package emacs. (Fri, 13 Jan 2023 14:19:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to "J.P." <jp <at> neverwas.me>:
New bug report received and forwarded. Copy sent to emacs-erc <at> gnu.org, bug-gnu-emacs <at> gnu.org. (Fri, 13 Jan 2023 14:19:01 GMT) Full text and rfc822 format available.

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

From: "J.P." <jp <at> neverwas.me>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.60; ERC 5.5: Don't interfere with non-module minor modes in
 erc-open
Date: Fri, 13 Jan 2023 06:18:17 -0800
[Message part 1 (text/plain, inline)]
Tags: patch

ERC currently takes ownership of any minor mode it encounters whose name
happens to be prefixed with "erc-" as long as its mode variable is set
locally in an ERC buffer. That is, it propagates the enabled/disabled
state to new `erc-mode' buffers, possibly by calling the namesake
minor-mode function. This makes sense for modes defined by "local"
modules, whether built-in or third-party. But other, non-module minor
modes that just happen to use the same top-level library namespace
should be left alone.


In GNU Emacs 29.0.60 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.35, cairo version 1.17.6) of 2023-01-13 built on localhost
Repository revision: c6bbf9cc270dedb8adcafdd0c7ff902611176993
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 36 (Workstation Edition)

Configured using:
 'configure --enable-check-lisp-object-type --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3'
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

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

Important settings:
  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
  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 emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util 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 erc iso8601 time-date
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map thingatpt pp format-spec cl-loaddefs cl-lib erc-backend erc-goodies
erc-networks byte-opt gv bytecomp byte-compile erc-common erc-compat
erc-loaddefs 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 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 move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 64566 5968)
 (symbols 48 8614 0)
 (strings 32 23664 2035)
 (string-bytes 1 685847)
 (vectors 16 15236)
 (vector-slots 8 209710 8268)
 (floats 8 24 33)
 (intervals 56 236 0)
 (buffers 976 11))

[0001-Avoid-plist-get-as-generalized-var-in-erc-compat.patch (text/x-patch, attachment)]
[0002-Don-t-preserve-non-module-minor-modes-in-erc-open.patch (text/x-patch, attachment)]

Reply sent to "J.P." <jp <at> neverwas.me>:
You have taken responsibility. (Tue, 17 Jan 2023 14:35:01 GMT) Full text and rfc822 format available.

Notification sent to "J.P." <jp <at> neverwas.me>:
bug acknowledged by developer. (Tue, 17 Jan 2023 14:35:02 GMT) Full text and rfc822 format available.

Message #10 received at 60784-done <at> debbugs.gnu.org (full text, mbox):

From: "J.P." <jp <at> neverwas.me>
To: 60784-done <at> debbugs.gnu.org
Cc: emacs-erc <at> gnu.org
Subject: Re: bug#60784: 29.0.60; ERC 5.5: Don't interfere with non-module
 minor modes in erc-open
Date: Tue, 17 Jan 2023 06:33:53 -0800
"J.P." <jp <at> neverwas.me> writes:

> ERC currently takes ownership of any minor mode it encounters whose name
> happens to be prefixed with "erc-" as long as its mode variable is set
> locally in an ERC buffer. That is, it propagates the enabled/disabled
> state to new `erc-mode' buffers, possibly by calling the namesake
> minor-mode function. This makes sense for modes defined by "local"
> modules, whether built-in or third-party. But other, non-module minor
> modes that just happen to use the same top-level library namespace
> should be left alone.

I've addressed this in a slightly more reliable way that doesn't depend
on heuristics. Instead of banking on the unlikelihood of a non-module
minor mode also defining a function suffixed with "-enable," I've opted
for tagging a module's minor-mode symbol with the property `erc-module',
to be paired with its canonical symbol as a value.

It happens that while addressing this, I stumbled upon another, closely
related (and arguably more important) bug stemming from the "local
modules" change set (bug#57955), which was installed last November to
support the SASL module. Basically, a local module's activation state
(i.e., that of its minor-mode variable) wouldn't survive reconnections,
as vociferously claimed. My oversight here owes its inception, in part,
to the SASL module's lack of interest in target buffers, which its test
cases came to reflect. And while the (vital) matter of reinstating a
local module's associated data falls beyond the scope of this change, it
ranks highly among the improvements I'd like to see in ERC's next major
release.

Thanks (and closing).




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 15 Feb 2023 12:24:12 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 43 days ago.

Previous Next


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