From 36d37bbf677768f2c55e46f50127bb228c6cdd62 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Tue, 7 Aug 2018 01:17:22 -0400 Subject: Handle PART and QUIT without messages --- handle.c | 33 ++++++++++++++++++++++----------- 1 file 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(¶ms); - char *mesg = shift(¶ms); - uiFmt( - L"\3%d%s\3 leaves \3%d%s\3, \"%s\"", - color(user), nick, color(chan), chan, mesg - ); + if (params) { + char *mesg = shift(¶ms); + 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(¶ms); - 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(¶ms); + 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) { -- cgit 1.4.1 01&follow=1'>diff
path: root/dispatch.c (unfollow)
Commit message (Collapse)Author
2019-11-11Test getopt_configJune McEnroe
2019-11-11Add userhost-in-names to manualJune McEnroe
2019-11-11Skip initial NAMES parametersJune McEnroe
Channel names can contain '!' so splitting the whole message on it won't work. I hate this code though.
2019-11-11Filter userhost-in-namesJune McEnroe
I really want to be writing tests for these functions...
2019-11-10Compare words without copying in filtersJune McEnroe
2019-11-10Separate tags from all targetJune McEnroe
2019-11-10Filter invite-notifyJune McEnroe
2019-11-10Add capsicum note to READMEJune McEnroe
2019-11-10Filter extended-joinJune McEnroe
2019-11-10Expand client configuration documentation and list capabilitiesJune McEnroe
2019-11-10Request all supported caps from serverJune McEnroe
2019-11-10Filter ACCOUNT, AWAY, CHGHOST for incapable clientsJune McEnroe
2019-11-10Rename listen to localJune McEnroe
2019-11-09Remove extended-join and invite-notifyJune McEnroe
The remaining caps only generate new commands which can easily be filtered out when sending to clients so will be in the first pass of support. extended-join is probably safe to pass through unaltered, just causing extraneous parameters on JOIN commands, but maybe not. invite-notify reuses the INVITE command where the invited user is not self.
2019-11-09Maintain stateCaps and offer them to clientsJune McEnroe
2019-11-09Parse capabilitiesJune McEnroe
The list that I've defined are the ones that I expect to be able to enable probably without any clients breaking... And of course server-time which pounce implements itself.
2019-11-09Avoid the reserved _A names with BIT macroJune McEnroe
2019-11-09Define macro for bit flag enumsJune McEnroe
2019-11-08Check that password is hashedJune McEnroe
2019-11-08Avoid calling getopt_long again after it returns -1June McEnroe
On GNU, calling getopt_long again will reset optind back to the first non-option argument, which would cause an infinite loop of reading the same configurtion file forever.
2019-11-08Only change AWAY status for registered clientsJune McEnroe
Turns out I did eventually fix this, because I may want to implement "passive clients" for logging or notification stuff, which wouldn't affect AWAY status either.
2019-11-07Just write the example normallyJune McEnroe
2019-11-07Include path in readlinkat errorJune McEnroe
2019-11-07Call clientConsume before clientRecvJune McEnroe
This might reduce the frequency of a client getting its own message back because it was behind in the ring when it sent it.
2019-11-06Use -l:filename in Linux.mkJune McEnroe
2019-11-06Fix compat.h for #defined strlcpyJune McEnroe
2019-11-06Allow unsetting LIBRESSL_PREFIXJune McEnroe
2019-11-06Document calico service configurationJune McEnroe
2019-11-06Document SASL EXTERNAL configuration in more detailJune McEnroe
2019-11-06Document pounce service configurationJune McEnroe
2019-11-06Mention Darwin and GNU/Linux in READMEJune McEnroe
2019-11-06Assume LibreSSL from brew on DarwinJune McEnroe
2019-11-06Remove -DNO_EXPLICIT_BZERO from Darwin.mkJune McEnroe
2019-11-06Don't install rc scripts or dirs on LinuxJune McEnroe