some changes - sic - simple irc client | |
git clone git://git.suckless.org/sic | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 1edd94af86c032d4a83e5e2778526e567c1c4715 | |
parent a3abf3b3ef581c415e4a29845453e49258faaada | |
Author: Anselm R. Garbe <[email protected]> | |
Date: Fri, 9 Feb 2007 14:40:11 +0100 | |
some changes | |
Diffstat: | |
M sic.c | 50 +++++++++++++++--------------… | |
1 file changed, 24 insertions(+), 26 deletions(-) | |
--- | |
diff --git a/sic.c b/sic.c | |
@@ -102,45 +102,43 @@ parsesrv(char *msg) { | |
if(!msg || !(*msg)) | |
return; | |
pout("debug", msg); | |
- if(msg[0] == ':') { /* check prefix */ | |
- if(!(p = strchr(msg, ' '))) | |
- return; | |
+ if(msg[0] != ':') | |
+ return; /* don't handle prefix-less server commands */ | |
+ if(!(p = strchr(msg, ' '))) | |
+ return; | |
+ usr = &msg[1]; | |
+ *p = 0; | |
+ cmd = ++p; | |
+ if((p = strchr(usr, '!'))) | |
*p = 0; | |
- usr = &msg[1]; | |
- cmd = ++p; | |
- if((p = strchr(usr, '!'))) | |
- *p = 0; | |
- } else | |
- cmd = msg; | |
/* remove CRLFs */ | |
- for(p = cmd; *p; p++) | |
+ if(!(p = strchr(cmd, ':'))) | |
+ return; | |
+ *p = 0; | |
+ txt = ++p; | |
+ for(p = txt; *p; p++) | |
if(*p == '\r' || *p == '\n') | |
*p = 0; | |
if(!strncmp("PONG", cmd, 4)) | |
return; | |
- if(!strncmp("PRIVMSG", cmd, 7) || !strncmp("PING", cmd, 4)) { | |
+ if(!strncmp("PRIVMSG", cmd, 7)) { | |
if(!(p = strchr(cmd, ' '))) | |
return; | |
*p = 0; | |
chan = ++p; | |
for(; *p && *p != ' '; p++); | |
*p = 0; | |
- if(!(p = strchr(++p, ':'))) | |
- return; | |
- *p = 0; | |
- txt = ++p; | |
- if(!strncmp("PRIVMSG", cmd, 8) && chan && txt) { | |
- snprintf(bufout, sizeof bufout, "<%s> %s", usr, txt); | |
- pout(chan, bufout); | |
- } | |
- else if(!strncmp("PING", cmd, 5) && txt) { | |
- snprintf(bufout, sizeof bufout, "PONG %s\r\n", txt); | |
- write(srv, bufout, strlen(bufout)); | |
- } | |
- return; | |
+ snprintf(bufout, sizeof bufout, "<%s> %s", usr, txt); | |
+ pout(chan, bufout); | |
+ } | |
+ else if(!strncmp("PING", cmd, 4) && txt) { | |
+ snprintf(bufout, sizeof bufout, "PONG %s\r\n", txt); | |
+ write(srv, bufout, strlen(bufout)); | |
+ } | |
+ else { | |
+ snprintf(bufout, sizeof bufout, "-!- %s", cmd); | |
+ pout(usr, bufout); | |
} | |
- snprintf(bufout, sizeof bufout, "-!- %s", cmd); | |
- pout(host, bufout); | |
} | |
int |