1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00
emacs/lisp/erc
F. Jason Park 054602533c Improve inconsistent handling of ban lists in ERC
* etc/ERC-NEWS: Mention new function `erc-sync-banlist' in new section
for ERC 5.6.1.
* lisp/erc/erc-backend.el (erc-server-MODE): Don't call
`erc-banlist-update'.
* lisp/erc/erc-fill.el (erc--determine-fill-column-function): New
method for `fill' and `fill-wrap' modules.
* lisp/erc/erc-pcomplete.el (pcomplete/erc-mode/BANLIST)
(pcomplete/erc-mode/BL)
(pcomplete/erc-mode/MASSUNBAN, pcomplete/erc-mode/MUB):
New functions.
* lisp/erc/erc.el: Map ERC 5.6.1 to Emacs 31.1 in
`customize-package-emacs-version-alist'.
(erc-channel-banlist): Deprecate practice of using the symbol property
`received-from-server' of as a state flag because it's error-prone and
bleeds into other connections.
(erc--channel-banlist-synchronized-p): New variable to indicate
whether the ban list has been initialized.  The presence of a local
binding for `erc-channel-banlist' could probably be used for the same
purpose but would surely require rewriting `erc-cmd-BANLIST' and
`erc-cmd-MASSUNBAN'.
(erc-sync-banlist): New function, announced in ERC-NEWS.
(erc--wrap-banlist-cmd): New function.
(erc-banlist-fill-padding): New variable.
(erc--determine-fill-column-function): New generic function.
(erc-cmd-BANLIST): Move forward declaration of `erc-fill-column' from
top level into function body.  Always reset `received-from-server' to
nil.  Improve column calculations.
(erc-cmd-MASSUNBAN): Always reset `received-from-server' to nil.
(erc-banlist-finished): Deprecate function unused since 2003.
(erc--banlist-update): New function.
(erc-banlist-update): Deprecate function because its logic is faulty
and it doesn't handle mixed mode letters, like "MODE #foobar
+mb *@127.0.0.1".  See https://modern.ircdocs.horse/#mode-message.  It
also depends on an obsolete convention regarding the symbol property
`received-from-server' of `erc-channel-banlist'.  Basically, this
function used to run upon receipt of any "MODE" command from the
server.  However, actual updates to the variable `erc-channel-banlist'
only happened if `received-from-server' was t, which could only be the
case after the user issued a /MASSUNBAN.  And that behavior was
determined to be a bug.  This mode framework stuff was introduced as
part of bug#67220 for ERC 5.6.
(erc--handle-channel-mode): New function, a method for standard
channel-mode letter "b".
* test/lisp/erc/erc-tests.el (erc--channel-modes)
(erc--channel-modes/graphic-p): Assert contents of
`erc-channel-banlist' updated on "MODE".  (Bug#72736)
2024-09-29 16:43:30 -07:00
..
ChangeLog.1 ; Fix typos 2024-06-16 22:38:26 +02:00
ChangeLog.2
erc-autoaway.el
erc-backend.el Improve inconsistent handling of ban lists in ERC 2024-09-29 16:43:30 -07:00
erc-button.el Checkdoc fixes in erc/*.el 2024-07-08 16:41:02 +02:00
erc-capab.el
erc-common.el ; Fix typos in symbols 2024-06-29 17:29:38 +02:00
erc-compat.el
erc-dcc.el Checkdoc fixes in erc/*.el 2024-07-08 16:41:02 +02:00
erc-desktop-notifications.el
erc-ezbounce.el
erc-fill.el Improve inconsistent handling of ban lists in ERC 2024-09-29 16:43:30 -07:00
erc-goodies.el Add ERC module querypoll as monitor placeholder 2024-05-27 16:46:40 -07:00
erc-ibuffer.el
erc-identd.el
erc-imenu.el
erc-join.el
erc-lang.el
erc-list.el
erc-log.el Don't kill server buffer with erc-kill-buffer-on-part 2024-05-18 15:48:05 -07:00
erc-match.el
erc-menu.el
erc-netsplit.el
erc-networks.el Reconcile erc-stamp--date-stamps when merging buffers 2024-05-18 15:48:05 -07:00
erc-nicks.el ; * lisp/erc/erc-nicks.el: Fix typo in Commentary. 2024-04-07 12:59:21 -07:00
erc-notify.el
erc-page.el
erc-pcomplete.el Improve inconsistent handling of ban lists in ERC 2024-09-29 16:43:30 -07:00
erc-replace.el
erc-ring.el
erc-sasl.el Return nil from more ERC response handlers 2024-05-27 16:39:18 -07:00
erc-services.el ; Improve erc-services and upgrade documentation 2024-04-19 13:54:52 -07:00
erc-sound.el
erc-speedbar.el Checkdoc fixes in erc/*.el 2024-07-08 16:41:02 +02:00
erc-spelling.el
erc-stamp.el Checkdoc fixes in erc/*.el 2024-07-08 16:41:02 +02:00
erc-status-sidebar.el Fix invisible erc-speedbar cursor in text terminals 2024-04-07 12:59:21 -07:00
erc-track.el Checkdoc fixes in erc/*.el 2024-07-08 16:41:02 +02:00
erc-truncate.el ; Rename internal variable in erc-fill 2024-09-29 16:13:01 -07:00
erc-xdcc.el
erc.el Improve inconsistent handling of ban lists in ERC 2024-09-29 16:43:30 -07:00