if(msg[0] == 0)
return;
- if(msg[0] != '/') {
+ if(msg[0] != ':') {
privmsg(channel, msg);
return;
}
if(!strncmp(msg + 1, "j ", 2) && (msg[3] == '#'))
snprintf(bufout, sizeof bufout, "JOIN %s\r\n", &msg[3]);
else if(!strncmp(msg + 1, "l ", 2))
- snprintf(bufout, sizeof bufout, "PART %s :sic\r\n", &msg[3]);
+ snprintf(bufout, sizeof bufout, "PART %s :sic - 300 LOC are too much!\r\n", &msg[3]);
else if(!strncmp(msg + 1, "m ", 2)) {
if((p = strchr(&msg[3], ' ')))
*(p++) = 0;
if(!msg || !(*msg))
return;
-
for(i = 0; i < Tlast; i++)
argv[i] = NULL;
-
/* <bufout> ::= [':' <prefix> <SPACE> ] <command> <params> <crlf>
* <prefix> ::= <servername> | <nick> [ '!' <user> ] [ '@' <server> ]
* <command> ::= <letter> { <letter> } | <number> <number> <number>
* <crlf> ::= CR LF
*/
if(msg[0] == ':') { /* check prefix */
- p = strchr(msg, ' ');
+ if (!(p = strchr(msg, ' ')))
+ return;
*p = 0;
for(++p; *p == ' '; p++);
cmd = p;
argv[Ttext] = ++p;
}
tokenize(&argv[Tcmd], Tlast - Tcmd, cmd, ' ');
- if(!strncmp("PONG", argv[Tcmd], 5))
+ if(!argv[Tcmd] || !strncmp("PONG", argv[Tcmd], 5))
return;
else if(!strncmp("PING", argv[Tcmd], 5)) {
snprintf(bufout, sizeof bufout, "PONG %s\r\n", argv[Ttext]);
}
else if(!strncmp("MODE", argv[Tcmd], 5))
snprintf(bufout, sizeof bufout, "-!- %s changed mode/%s -> %s %s",
- argv[Tnick], argv[Tcmd + 1],
- argv[Tcmd + 2], argv[Tcmd + 3]);
+ argv[Tnick], argv[Tcmd + 1] ? argv[Tcmd + 1] : "",
+ argv[Tcmd + 2] ? argv[Tcmd + 2] : "",
+ argv[Tcmd + 3] ? argv[Tcmd + 3] : "");
else if(!strncmp("QUIT", argv[Tcmd], 5))
snprintf(bufout, sizeof bufout, "-!- %s(%s) has quit \"%s\"",
argv[Tnick], argv[Tuser],