]> git.eshelyaron.com Git - emacs.git/commitdiff
Subject: Fix problem with erc buffer renames after reconnect
authorJohn Goerzen <jgoerzen@complete.org>
Sat, 14 Apr 2018 18:10:53 +0000 (20:10 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 14 Apr 2018 18:10:53 +0000 (20:10 +0200)
* lisp/erc/erc.el (erc-generate-new-buffer-name): Solve problem
with renamed buffers on different servers after reconnect (bug#30639).

Copyright-paperwork-exempt: yes

lisp/erc/erc.el

index 550800c57f2a09908ac203e3095efcd5d4d1aecb..63228516be71b726a9791cef13c6f5217ae547c4 100644 (file)
@@ -1608,18 +1608,18 @@ symbol, it may have these values:
     (dolist (candidate (list buf-name (concat buf-name "/" server)))
       (if (and (not buffer-name)
                erc-reuse-buffers
-               (get-buffer candidate)
-               (or target
+               (or (not (get-buffer candidate))
+                   (or target
+                       (with-current-buffer (get-buffer candidate)
+                         (and (erc-server-buffer-p)
+                              (not (erc-server-process-alive)))))
                    (with-current-buffer (get-buffer candidate)
-                     (and (erc-server-buffer-p)
-                          (not (erc-server-process-alive)))))
-               (with-current-buffer (get-buffer candidate)
-                 (and (string= erc-session-server server)
-                      (erc-port-equal erc-session-port port))))
+                     (and (string= erc-session-server server)
+                          (erc-port-equal erc-session-port port)))))
           (setq buffer-name candidate)))
     ;; if buffer-name is unset, neither candidate worked out for us,
     ;; fallback to the old <N> uniquification method:
-    (or buffer-name (generate-new-buffer-name buf-name)) ))
+    (or buffer-name (generate-new-buffer-name (concat buf-name "/" server)))))
 
 (defun erc-get-buffer-create (server port target)
   "Create a new buffer based on the arguments."