GNU bug report logs - #72736
31.0.50; ERC 5.6.1: Keep ban lists in sync

Previous Next

Package: emacs;

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

Date: Tue, 20 Aug 2024 20:12:01 UTC

Severity: normal

Tags: patch

Found in version 31.0.50

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

Bug is archived. No further changes may be made.

Full log


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

From: "J.P." <jp <at> neverwas.me>
To: 72736 <at> debbugs.gnu.org
Cc: emacs-erc <at> gnu.org
Subject: Re: bug#72736: 31.0.50; ERC 5.6.1: Keep ban lists in sync
Date: Sat, 24 Aug 2024 11:03:45 -0700
"J.P." <jp <at> neverwas.me> writes:

> +(cl-defmethod erc--handle-channel-mode (_ (_ (eql ?b)) state arg)
> +  ;; Add or remove a ban from `erc-channel-banlist'.
> +  (erc--banlist-update state arg))

Both for clarity and compatibility with the current behavior, I think we
should instead keep `erc-channel-banlist' empty (and locally unbound)
until formally initialized for a given channel within an ERC session. An
easy way to do that would be to guard the above like so:

  (when erc--channel-banlist-synchronized-p
    (erc--banlist-update state arg))

> +
>  ;; We could specialize on type C, but that may be too brittle.
>  (cl-defmethod erc--handle-channel-mode (_ (_ (eql ?l)) state arg)
>    "Update channel user limit, remembering ARG when STATE is non-nil."

As far as re-syncing on reconnect, that's probably better handled by an
actual module (if anyone feels like writing one). We could move all the
ban-list stuff to a new file and maybe offer an alternate display style
for interactive use, perhaps one based on `tabular-list-mode' or
similar.




This bug report was last modified 229 days ago.

Previous Next


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