From 180287164cec8cfec02c564e67a9bfa5cd5a58e9 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Thu, 4 Feb 2021 21:25:59 -0500 Subject: [PATCH] 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 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. --- handle.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/handle.c b/handle.c index c3faa05..44001bb 100644 --- a/handle.c +++ b/handle.c @@ -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]++; + } } }