summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--handle.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/handle.c b/handle.c
index 7fba7f2..9350e7f 100644
--- a/handle.c
+++ b/handle.c
@@ -91,22 +91,33 @@ static void handlePart(char *prefix, char *params) {
char *nick = prift(&prefix);
char *user = prift(&prefix);
char *chan = shift(&params);
- char *mesg = shift(&params);
- uiFmt(
- L"\3%d%s\3 leaves \3%d%s\3, \"%s\"",
- color(user), nick, color(chan), chan, mesg
- );
+ if (params) {
+ char *mesg = shift(&params);
+ uiFmt(
+ L"\3%d%s\3 leaves \3%d%s\3, \"%s\"",
+ color(user), nick, color(chan), chan, mesg
+ );
+ } else {
+ uiFmt(
+ L"\3%d%s\3 leaves \3%d%s\3",
+ color(user), nick, color(chan), chan
+ );
+ }
}
static void handleQuit(char *prefix, char *params) {
char *nick = prift(&prefix);
char *user = prift(&prefix);
- char *mesg = shift(&params);
- char *quot = (mesg[0] == '"') ? "" : "\"";
- uiFmt(
- L"\3%d%s\3 leaves, %s%s%s",
- color(user), nick, quot, mesg, quot
- );
+ if (params) {
+ char *mesg = shift(&params);
+ char *quot = (mesg[0] == '"') ? "" : "\"";
+ uiFmt(
+ L"\3%d%s\3 leaves, %s%s%s",
+ color(user), nick, quot, mesg, quot
+ );
+ } else {
+ uiFmt(L"\3%d%s\3 leaves", color(user), nick);
+ }
}
static void handleKick(char *prefix, char *params) {