summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC. McEnroe2020-02-10 20:24:07 -0500
committerC. McEnroe2020-02-10 20:24:07 -0500
commit80a79467efca8f17e440cb63009c60dd8e78cc63 (patch)
tree96c3e7e1bb3c3f1fad88976fc359307688f75f13
parent00f0f94fc80ebecff531388e38d0fb121e3f4e74 (diff)
Only automatically switch to expected joins
-rw-r--r--chat.h1
-rw-r--r--command.c1
-rw-r--r--handle.c6
3 files changed, 7 insertions, 1 deletions
diff --git a/chat.h b/chat.h
index 03a0a50..f47b244 100644
--- a/chat.h
+++ b/chat.h
@@ -120,6 +120,7 @@ void ircFormat(const char *format, ...)
__attribute__((format(printf, 1, 2)));
extern struct Replies {
+ size_t join;
size_t topic;
size_t names;
size_t whois;
diff --git a/command.c b/command.c
index cab1d26..5cb43cf 100644
--- a/command.c
+++ b/command.c
@@ -86,6 +86,7 @@ static void commandJoin(size_t id, char *params) {
}
}
ircFormat("JOIN %s\r\n", (params ? params : idNames[id]));
+ replies.join += count;
replies.topic += count;
replies.names += count;
}
diff --git a/handle.c b/handle.c
index fd2a67f..0db7fd9 100644
--- a/handle.c
+++ b/handle.c
@@ -164,6 +164,7 @@ static void handleReplyWelcome(struct Message *msg) {
if (*ch == ',') count++;
}
ircFormat("JOIN %s\r\n", self.join);
+ replies.join += count;
replies.topic += count;
replies.names += count;
}
@@ -211,7 +212,10 @@ static void handleJoin(struct Message *msg) {
}
idColors[id] = hash(msg->params[0]);
completeTouch(None, msg->params[0], idColors[id]);
- uiShowID(id);
+ if (replies.join) {
+ uiShowID(id);
+ replies.join--;
+ }
}
completeTouch(id, msg->nick, hash(msg->user));
if (msg->params[2] && !strcasecmp(msg->params[2], msg->nick)) {