summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--client.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/client.c b/client.c
index d0df0aa..06efeb8 100644
--- a/client.c
+++ b/client.c
@@ -318,20 +318,21 @@ static void handlePalaver(struct Client *client, struct Message *msg) {
 }
 
 static const struct {
+	bool intercept;
+	bool need;
 	const char *cmd;
 	Handler *fn;
-	bool need;
 } Handlers[] = {
-	{ "AUTHENTICATE", handleAuthenticate, false },
-	{ "CAP", handleCap, false },
-	{ "NICK", handleNick, false },
-	{ "NOTICE", handlePrivmsg, true },
-	{ "PALAVER", handlePalaver, false },
-	{ "PASS", handlePass, false },
-	{ "PRIVMSG", handlePrivmsg, true },
-	{ "QUIT", handleQuit, true },
-	{ "TAGMSG", handleTagmsg, true },
-	{ "USER", handleUser, false },
+	{ false, false, "AUTHENTICATE", handleAuthenticate },
+	{ false, false, "NICK", handleNick },
+	{ false, false, "PASS", handlePass },
+	{ false, false, "USER", handleUser },
+	{ true, false, "CAP", handleCap },
+	{ true, false, "PALAVER", handlePalaver },
+	{ true, true, "NOTICE", handlePrivmsg },
+	{ true, true, "PRIVMSG", handlePrivmsg },
+	{ true, true, "QUIT", handleQuit },
+	{ true, true, "TAGMSG", handleTagmsg },
 };
 
 static void clientParse(struct Client *client, char *line) {
@@ -355,6 +356,7 @@ static bool intercept(const char *line, size_t len) {
 		line = sp;
 	}
 	for (size_t i = 0; i < ARRAY_LEN(Handlers); ++i) {
+		if (!Handlers[i].intercept) continue;
 		size_t n = strlen(Handlers[i].cmd);
 		if (len < n) continue;
 		if (memcmp(line, Handlers[i].cmd, n)) continue;
d unmark on uiHide, uiShowJune McEnroe 2020-02-12Hide debug prompt if buffer starts with /June McEnroe 2020-02-12Only exit on errorneous nick during registrationJune McEnroe 2020-02-12Add 378 to list of WHOIS responsesJune McEnroe It's the one (from freenode anyway) that tells you where you're connecting from. 2020-02-13Implement source address selectionmultiplexd This commit adds a '-S' command line option and a "bind" configuration file option to specify the source address to bind to when connecting to the IRC server. 2020-02-12Add /listJune McEnroe 2020-02-12Simplify transpose swapJune McEnroe 2020-02-12Add C-t transposeJune McEnroe Also in emacs, weechat. 2020-02-12Add C-v and M-vJune McEnroe I figure there should be some way to scroll without keypad, and apparently this is what emacs offers... 2020-02-12Allow for arguments to open/copy utilitiesJune McEnroe 2020-02-12Handle RPL_AWAYJune McEnroe 2020-02-11Support monochromatic terminalsJune McEnroe Oops, division by zero! 2020-02-11Add .gz to chroot-man scriptJune McEnroe 2020-02-11Add -R restricted flagJune McEnroe 2020-02-11Add chroot targetJune McEnroe 2020-02-11Exit focus and paste modes on err exitJune McEnroe 2020-02-11Add startup GPLv3 note and URLJune McEnroe I am a degenerate. 2020-02-11Make sure -D_GNU_SOURCE ends up in CFLAGS on LinuxJune McEnroe 2020-02-11Add note about setting PKG_CONFIG_PATHJune McEnroe 2020-02-11Rename query ID on nick changeJune McEnroe 2020-02-11Call completeClear when closing a windowJune McEnroe 2020-02-11Don't insert color codes for non-mentionsJune McEnroe 2020-02-11Take first two words in colorMentionsJune McEnroe This lets phrases like "hi june" get colored, but still doesn't get carried away. 2020-02-11Use time_t for save signatureJune McEnroe It's actually more likely to be 64-bit than size_t anyway, and it eliminates some helper functions. Also don't error when reading an empty save file. 2020-02-11Set self.nick to * initiallyJune McEnroe Allows removing a bunch of checks that self.nick is set, and it's what the server usually calls you before registration. Never highlight notices as mentions. 2020-02-11Define ColorCap instead of hardcoding 100June McEnroe 2020-02-11Move hash to top of chat.hJune McEnroe 2020-02-11Move base64 out of chat.hJune McEnroe 2020-02-11Move XDG_SUBDIR out of chat.hJune McEnroe 2020-02-11Fix whois idle unit calculationJune McEnroe Rookie mistake. 2020-02-11Cast towupper to wchar_tJune McEnroe For some reason it takes and returns wint_t... 2020-02-11Cast set but unused variables to voidJune McEnroe 2020-02-11Declare strlcatJune McEnroe 2020-02-11Check if VDSUSP existsJune McEnroe 2020-02-11Fix completeReplace iterationJune McEnroe 2020-02-11Use pkg(8) to configure on FreeBSDJune McEnroe 2020-02-11Remove legacy codeJune McEnroe 2020-02-11Add INSTALLING section to READMEJune McEnroe