Subject: Re: bug#40121: 27.0.90; ERC incorrectly reuses single buffer for channels of same name on multiple networks

From: Kevin Brubeck Unhammer <[email-masked]>
Date: Wed, 05 Aug 2020 11:00:25 +0200

Lars Ingebrigtsen <[email-masked]> čálii:

> Kevin Brubeck Unhammer <[email-masked]> writes:
>
>> I have bisected. The regression seems to have been introduced in commit
>> cdefc045893a7fed57856ac385ab41c71f61c09f
>> "Fix problem with erc buffer renames after reconnect"
>> which was supposed to solve
>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=30639
>
> This should now be fixed in Emacs 28.1.

There's still a bug when there's two networks on the same server:port.

But the fix is simple, just an `(and target …)` around the "Channel
buffer" case, like

                   ;; Channel buffer; check that it's from the right server.
                   (and target
                        (with-current-buffer (get-buffer candidate)
                          (and (string= erc-session-server server)
                               (erc-port-equal erc-session-port port))))

I connect to several networks on the same server:port (my weechat
instance). Without the `and target` check it'll reuse the server buffer
from network1 when connecting to network2.