summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chat.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/chat.c b/chat.c
index 4955b4b..cea0f11 100644
--- a/chat.c
+++ b/chat.c
@@ -126,6 +126,9 @@ static void clientFmt(const char *format, ...) {
typedef void (*Handler)(char *prefix, char *params);
+static char *prift(char **prefix) {
+ return strsep(prefix, "!@");
+}
static char *shift(char **params) {
char *rest = *params;
if (!rest) errx(EX_PROTOCOL, "expected param");
@@ -147,20 +150,20 @@ static void handlePing(char *prefix, char *params) {
}
static void handleJoin(char *prefix, char *params) {
- char *nick = strsep(&prefix, "!");
+ char *nick = prift(&prefix);
char *chan = shift(&params);
uiFmt("--> %s arrived in %s", nick, chan);
}
static void handlePart(char *prefix, char *params) {
- char *nick = strsep(&prefix, "!");
+ char *nick = prift(&prefix);
char *chan = shift(&params);
- char *reason = shift(&params);
- uiFmt("<-- %s left %s, \"%s\"", nick, chan, reason);
+ char *mesg = shift(&params);
+ uiFmt("<-- %s left %s, \"%s\"", nick, chan, mesg);
}
static void handleQuit(char *prefix, char *params) {
- char *nick = strsep(&prefix, "!");
- char *reason = shift(&params);
- uiFmt("<-- %s left, \"%s\"", nick, reason);
+ char *nick = prift(&prefix);
+ char *mesg = shift(&params);
+ uiFmt("<-- %s left, \"%s\"", nick, mesg);
}
static void handle332(char *prefix, char *params) {
@@ -168,15 +171,15 @@ static void handle332(char *prefix, char *params) {
shift(&params);
char *chan = shift(&params);
char *topic = shift(&params);
- uiTopic(topic);
uiFmt("--- The sign in %s reads, \"%s\"", chan, topic);
+ uiTopic(topic);
}
static void handleTopic(char *prefix, char *params) {
- char *nick = strsep(&prefix, "!");
+ char *nick = prift(&prefix);
char *chan = shift(&params);
char *topic = shift(&params);
- uiTopic(topic);
uiFmt("--- %s placed a new sign in %s, \"%s\"", nick, chan, topic);
+ uiTopic(topic);
}
static void handle353(char *prefix, char *params) {
@@ -190,13 +193,13 @@ static void handle353(char *prefix, char *params) {
}
static void handlePrivmsg(char *prefix, char *params) {
- char *nick = strsep(&prefix, "!");
+ char *nick = prift(&prefix);
shift(&params);
char *message = shift(&params);
uiFmt("<%s> %s", nick, message);
}
static void handleNotice(char *prefix, char *params) {
- char *nick = strsep(&prefix, "!");
+ char *nick = prift(&prefix);
shift(&params);
char *message = shift(&params);
uiFmt("-%s- %s", nick, message);