diff options
author | F. Jason Park <jp@neverwas.me> | 2024-04-25 05:16:23 -0700 |
---|---|---|
committer | F. Jason Park <jp@neverwas.me> | 2024-05-27 16:39:18 -0700 |
commit | 5f84213c9802181b4d800615915e3c8dded7b94f (patch) | |
tree | 97bb5c8c58ad64cf5252aa53e33d8fa4cdcc5ff8 /lisp/emacs-lisp/inline.el | |
parent | 04477cf97be9eb2bb5ae09eff114252864461f05 (diff) | |
download | emacs-5f84213c9802181b4d800615915e3c8dded7b94f.tar.gz emacs-5f84213c9802181b4d800615915e3c8dded7b94f.tar.bz2 emacs-5f84213c9802181b4d800615915e3c8dded7b94f.zip |
Retain client's own user in erc-server-users
* lisp/erc/erc-backend.el (erc-server-KICK, erc-server-PART): Use new
function `erc--remove-channel-user-but' instead of
`erc-remove-channel-users'. In `erc-server-KICK', remove sender's
channel membership data after displaying the message so that nicks are
buttonized. Return nil. In `erc-server-PART', don't run
`erc-remove-channel-member' when the client itself has parted.
* lisp/erc/erc-common.el (erc--remove-user-from-targets): New
function.
* lisp/erc/erc.el (erc-remove-server-user): Redo doc string.
(erc--forget-server-user-function): New variable.
(erc--forget-server-user): New function.
(erc--forget-server-user-ignoring-queries): New function, the default
value of `erc--forget-server-user-function'.
(erc-remove-channel-user): Defer to `erc--forget-server-user-function'
to do the actual removal.
(erc-remove-user): Defer to `erc--remove-user-from-targets'.
(erc-remove-channel-users): Redo doc
(erc--remove-channel-users-but): New function. The only use case thus
far is for protecting the client's own `erc-server-users' entry from
removal when draining `erc-channel-members' tables after the client
leaves a target buffer or quits.
(erc-kill-buffer-function): Don't remove own user from
`erc-server-users'.
* test/lisp/erc/erc-scenarios-base-renick.el
(erc-scenarios-base-renick-queries-solo): Assert own client parting
its only channel doesn't remove own user from server. Also assert
that another user parting their only channel removes them from all
queries. (Bug#70928)
Diffstat (limited to 'lisp/emacs-lisp/inline.el')
0 files changed, 0 insertions, 0 deletions