Track MODE in replies
parent
35ae4121cb
commit
4f40ace9d4
1
chat.h
1
chat.h
|
@ -187,6 +187,7 @@ extern struct Replies {
|
|||
uint invex;
|
||||
uint join;
|
||||
uint list;
|
||||
uint mode;
|
||||
uint names;
|
||||
uint topic;
|
||||
uint whois;
|
||||
|
|
|
@ -185,12 +185,14 @@ static void commandMode(uint id, char *params) {
|
|||
ircFormat("MODE %s %s\r\n", self.nick, params);
|
||||
} else {
|
||||
ircFormat("MODE %s\r\n", self.nick);
|
||||
replies.mode++;
|
||||
}
|
||||
} else {
|
||||
if (params) {
|
||||
ircFormat("MODE %s %s\r\n", idNames[id], params);
|
||||
} else {
|
||||
ircFormat("MODE %s\r\n", idNames[id]);
|
||||
replies.mode++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
6
handle.c
6
handle.c
|
@ -527,6 +527,9 @@ static const char *UserModes[256] = {
|
|||
|
||||
static void handleReplyUserModeIs(struct Message *msg) {
|
||||
require(msg, false, 2);
|
||||
if (!replies.mode) return;
|
||||
replies.mode--;
|
||||
|
||||
char buf[1024] = "";
|
||||
for (char *ch = msg->params[1]; *ch; ++ch) {
|
||||
if (*ch == '+') continue;
|
||||
|
@ -560,6 +563,9 @@ static const char *ChanModes[256] = {
|
|||
|
||||
static void handleReplyChannelModeIs(struct Message *msg) {
|
||||
require(msg, false, 3);
|
||||
if (!replies.mode) return;
|
||||
replies.mode--;
|
||||
|
||||
uint param = 3;
|
||||
char buf[1024] = "";
|
||||
for (char *ch = msg->params[2]; *ch; ++ch) {
|
||||
|
|
Loading…
Reference in New Issue