From c383f9f3a7c7f712b9183b49e4c554e5b9a6ad46 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Fri, 3 Aug 2018 14:12:49 -0400 Subject: [PATCH] Add prift function for "prefix shift" Forgive me. --- chat.c | 27 +++++++++++++++------------ 1 file 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(¶ms); 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(¶ms); - char *reason = shift(¶ms); - uiFmt("<-- %s left %s, \"%s\"", nick, chan, reason); + char *mesg = shift(¶ms); + uiFmt("<-- %s left %s, \"%s\"", nick, chan, mesg); } static void handleQuit(char *prefix, char *params) { - char *nick = strsep(&prefix, "!"); - char *reason = shift(¶ms); - uiFmt("<-- %s left, \"%s\"", nick, reason); + char *nick = prift(&prefix); + char *mesg = shift(¶ms); + 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(¶ms); char *chan = shift(¶ms); char *topic = shift(¶ms); - 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(¶ms); char *topic = shift(¶ms); - 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(¶ms); char *message = shift(¶ms); uiFmt("<%s> %s", nick, message); } static void handleNotice(char *prefix, char *params) { - char *nick = strsep(&prefix, "!"); + char *nick = prift(&prefix); shift(¶ms); char *message = shift(¶ms); uiFmt("-%s- %s", nick, message);