diff options
| -rw-r--r-- | chat.h | 1 | ||||
| -rw-r--r-- | command.c | 2 | ||||
| -rw-r--r-- | handle.c | 6 | 
3 files changed, 9 insertions, 0 deletions
@@ -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++;  		}  	}  } @@ -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) {  | 
