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.
master
C. McEnroe 2021-02-04 21:25:59 -05:00
parent 7807848bda
commit 180287164c
1 changed files with 5 additions and 7 deletions

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]++;
}
}
}