emacs/lisp/erc
F. Jason Park 04477cf97b Tether query rolls to channel membership in ERC
* lisp/erc/erc-backend.el (erc-server-JOIN): Update query membership
via `erc--ensure-query-member' when someone else joins a channel.
(erc-server-NICK): Update query membership via
`erc--ensure-query-member' after someone else changes their nick.
(erc-server-PRIVMSG): After printing a query message from some other
person, remove their nick's data from the query buffer's user table if
they're "untracked," i.e., not a member of a channel.
(erc-server-263, erc-server-263-functions): New function and variable,
a default response handler and hook for "RPL_TRYAGAIN", which servers
send for things like rejecting "WHO" and "WHOX" responses due to rate
limiting.
(erc-server-311): Fix call to `erc-update-user-nick' so the userhost
login component is no longer supplied as the `info' parameter but
rather, correctly, as the `login'.
(erc--extract-352-full-name): Factor out trailing hop-count and GECOS
parsing for use by overriding handlers or those for adjacent numerics.
(erc-server-352): Refactor to handle asterisk as `channel' parameter,
which indicates a nick rather than a channel target.
(erc-server-366): Update membership in all query buffers via
`erc--ensure-query-members' after all names have been received.
(erc-server-401): Forget a known user completely when the server
reports them as nonexistent.
* lisp/erc/erc-common.el (erc--get-server-user): New function, a thin
wrapper around `erc-get-server-user' for cases were inlining would
require declaring symbols not defined in erc-common.
* lisp/erc/erc.el (erc-channel-members): Mention that instances are
used for query-participant tables as well.
(erc--decouple-query-and-channel-membership-p): New variable, a
compatibility flag to access pre-5.6 query bookkeeping behavior.
(erc--ensure-query-member, erc--ensure-query-members): New functions.
(erc-cmd-QUERY): Ensure parties are present in the query buffer's
membership table if they're known to be on the server by simple virtue
of being present in some joined channel.
(erc-message-english-s352-you): New variable.
* test/lisp/erc/erc-scenarios-base-query-participants.el
(erc-scenarios-base-query-participants)
(erc-scenarios-base-query-participants/legacy): Rename former to
latter.  Enable compat flag to activate legacy query behavior in which
channel membership does not impact query membership.
(erc-scenarios-base-query-participants/coupled): New test asserting
new behavior in which channel membership dictates query
membership.  (Bug#70928)
2024-05-27 16:39:18 -07:00
..
ChangeLog.1 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.2 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-autoaway.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-backend.el Tether query rolls to channel membership in ERC 2024-05-27 16:39:18 -07:00
erc-button.el Reconcile erc-stamp--date-stamps when merging buffers 2024-05-18 15:48:05 -07:00
erc-capab.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-common.el Tether query rolls to channel membership in ERC 2024-05-27 16:39:18 -07:00
erc-compat.el Remove "erc-" prefixed Compat definitions 2024-02-16 19:58:35 -08:00
erc-dcc.el ; Simplify (with-current-buffer (get-buffer ...) ...) 2024-03-14 12:40:26 +02:00
erc-desktop-notifications.el Port more notification senders to non-XDG systems 2024-03-13 11:01:39 +08:00
erc-ezbounce.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-fill.el Don't nest date stamp insertions in erc-stamp 2024-04-19 13:54:52 -07:00
erc-goodies.el Reuse command-indicator code for script lines in ERC 2024-03-23 15:10:32 -07:00
erc-ibuffer.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-identd.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-imenu.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-join.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-lang.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-list.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
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 Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-menu.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-netsplit.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
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 Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-page.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-pcomplete.el Clarify purpose of module aliases in ERC 2024-01-07 15:11:26 -08:00
erc-replace.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-ring.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
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 Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-speedbar.el Delete original speedbar frame in erc-nickbar-mode 2024-05-27 16:39:18 -07:00
erc-spelling.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-stamp.el Reconcile erc-stamp--date-stamps when merging buffers 2024-05-18 15:48:05 -07:00
erc-status-sidebar.el Fix invisible erc-speedbar cursor in text terminals 2024-04-07 12:59:21 -07:00
erc-track.el Prefer erc--skip property to erc-track--skipped-msgs 2024-05-08 17:14:02 -07:00
erc-truncate.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-xdcc.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc.el Tether query rolls to channel membership in ERC 2024-05-27 16:39:18 -07:00