Martin Kletzander čálii: > When auto-joining channel with the same name on > multiple channels the auto-join will go over the > list of channels and for each one it checks if > there is a buffer and alive server process. > However it does not check if the server process > matches the server being currently processed for > auto-joining. > > This happens since commit "Don't join erc channels > doubly" > > Fix it by checking if the currently processed > server matches the erc process name of the already > joined channel. That's not always going to match though. The car's of erc-autojoin-channels contain the values of erc-server-announced-name or erc-session-server, not the process-name of erc-server-process. E.g. when I join my weechat relay, erc-session-server is "example.com" and erc-server-announced-name is "weechat.relay.irc" while (process-name erc-server-process) is "erc-example.com-9001<1>". Also, the check is against the current erc-server-process (for the server being joined). Isn't the intention of the patch to check against the candidate buffer's server-process? I would expect something like (when (or (not buffer) ;; If the same channel is joined on another ;; server the best-effort is to just join (not (with-current-buffer buffer (or (string-match-p (car l) erc-session-server) (string-match-p (car l) erc-session-announced-name)))) (not (with-current-buffer buffer (erc-server-process-alive)))) (erc-server-join-channel server chan))