From 402385393a3a211c421d6e414d7d1b1f7fdda06c Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Tue, 27 Jul 2021 17:30:22 +0200 Subject: [PATCH] Update rcirc-buffer-alist after receiving NICK * rcirc.el (rcirc-handler-NICK): Remove old nick and add new nick --- lisp/net/rcirc.el | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index 60751c14e2b..2c8bf431db6 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -3143,13 +3143,16 @@ PROCESS is the process object for the current connection." ;; print message to nick's channels (dolist (target channels) (rcirc-print process sender "NICK" target new-nick)) - ;; update private chat buffer, if it exists - (let ((chat-buffer (rcirc-get-buffer process old-nick))) - (when chat-buffer - (with-current-buffer chat-buffer - (rcirc-print process sender "NICK" old-nick new-nick) - (setq rcirc-target new-nick) - (rename-buffer (rcirc-generate-new-buffer-name process new-nick))))) + ;; update chat buffer, if it exists + (when-let ((chat-buffer (rcirc-get-buffer process old-nick))) + (with-current-buffer chat-buffer + (rcirc-print process sender "NICK" old-nick new-nick) + (setq rcirc-target new-nick) + (rename-buffer (rcirc-generate-new-buffer-name process new-nick))) + (setf rcirc-buffer-alist + (cons (cons new-nick chat-buffer) + (delq (assoc-string old-nick rcirc-buffer-alist t) + rcirc-buffer-alist)))) ;; remove old nick and add new one (with-rcirc-process-buffer process (let ((v (gethash old-nick rcirc-nick-table))) -- 2.39.5