Only treat a single -j join as explicit

In other words, only automatically switch to an automatically joined
channel window if there's only one. Otherwise, stay on the <network>
window and avoid touching the channel windows with their automatic
topic and names replies.

This fixes unintentionally clearing saved window unread counts when
rejoining channels automatically by switching to them as they are
joined.
This commit is contained in:
C. McEnroe 2021-02-04 21:25:59 -05:00
parent 7807848bda
commit 180287164c

View File

@ -239,14 +239,12 @@ static void handleReplyWelcome(struct Message *msg) {
set(&self.nick, msg->params[0]);
completeTouch(Network, self.nick, Default);
if (self.join) {
uint count = 1;
for (const char *ch = self.join; *ch && *ch != ' '; ++ch) {
if (*ch == ',') count++;
}
ircFormat("JOIN %s\r\n", self.join);
replies[ReplyJoin] += count;
replies[ReplyTopic] += count;
replies[ReplyNames] += count;
if (!strchr(self.join, ',')) {
replies[ReplyJoin]++;
replies[ReplyTopic]++;
replies[ReplyNames]++;
}
}
}