summaryrefslogtreecommitdiff
path: root/lisp/erc/erc-backend.el
diff options
context:
space:
mode:
authorF. Jason Park <jp@neverwas.me>2022-11-13 01:52:48 -0800
committerAmin Bandali <bandali@gnu.org>2022-11-23 19:54:40 -0500
commitda30a4908ec1482c6d86150a197655fb99f8d68a (patch)
treeade6099c8745c3cfe55e9f74cb8069240dedc820 /lisp/erc/erc-backend.el
parent71397175aaa51571ba89a2ebf147ae833da5decf (diff)
downloademacs-da30a4908ec1482c6d86150a197655fb99f8d68a.tar.gz
emacs-da30a4908ec1482c6d86150a197655fb99f8d68a.tar.bz2
emacs-da30a4908ec1482c6d86150a197655fb99f8d68a.zip
Don't set erc-networks--id until network is known
* lisp/erc/erc-networks.el (erc-networks--id-given): Accept a null argument. (erc-networks--id-on-connect): Remove unused function. (erc-networks--id-equal-p): Add method for comparing initialized and unset IDs. (erc-networks--update-server-identity): Ensure `erc-networks--id' is set before continuing search. (erc-networks--init-identity): Don't assume `erc-networks--id' is non-nil. Add branch condition to reload ID on non-nil case. (erc-networks-on-MOTD-end): Let init-ID function handle renaming of server buffer. * lisp/erc/erc.el (erc-open): For continued sessions, try copying over the last network ID. (erc--auth-source-determine-params-default): Don't expect a network ID to have been initialized. (erc-set-current-nick): When connected, reload network ID. Leave comment warning that it may be unneeded. * lisp/erc/erc-backend.el (erc-server-NICK, erc-server-433): Unless already connected, schedule ID reload when server rejects or mandates a nick change. * test/lisp/erc/erc-scenarios-base-association-nick.el (erc-scenarios-base-association-nick-bumped, erc-scenarios-base-association-nick-bumped-mandated-renick): Update to reflect more liberal association behavior when renamed by IRCd.
Diffstat (limited to 'lisp/erc/erc-backend.el')
-rw-r--r--lisp/erc/erc-backend.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 15fd6ac50f5..f899b866f04 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -1619,7 +1619,7 @@ add things to `%s' instead."
(cl-pushnew (erc-server-buffer) bufs)
(erc-set-current-nick nn)
;; Rename session, possibly rename server buf and all targets
- (when (erc-network)
+ (when erc-server-connected
(erc-networks--id-reload erc-networks--id proc parsed))
(erc-update-mode-line)
(setq erc-nick-change-attempt-count 0)
@@ -1629,6 +1629,8 @@ add things to `%s' instead."
'NICK-you ?n nick ?N nn)
(run-hook-with-args 'erc-nick-changed-functions nn nick))
(t
+ (when erc-server-connected
+ (erc-networks--id-reload erc-networks--id proc parsed))
(erc-handle-user-status-change 'nick (list nick login host) (list nn))
(erc-display-message parsed 'notice bufs 'NICK ?n nick
?u login ?h host ?N nn))))))
@@ -2255,6 +2257,8 @@ See `erc-display-server-message'." nil
(define-erc-response-handler (433)
"Login-time \"nick in use\"." nil
+ (when erc-server-connected
+ (erc-networks--id-reload erc-networks--id proc parsed))
(erc-nickname-in-use (cadr (erc-response.command-args parsed))
"already in use"))