about summary refs log tree commit diff
path: root/chat.h
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-01 20:09:10 -0500
committerJune McEnroe <june@causal.agency>2021-01-01 20:09:10 -0500
commit4b883177dc025db24473e62469f97631a12ad536 (patch)
tree0039251bc3093c68c44eb95fb7a1051168fe3acf /chat.h
parentFactor out reply count checking and decrementing (diff)
downloadcatgirl-4b883177dc025db24473e62469f97631a12ad536.tar.gz
catgirl-4b883177dc025db24473e62469f97631a12ad536.zip
Split ignore fields to avoid over-eager * matching
Split ignore fields and match each separately to avoid an early *
eagerly matching across several fields. For example, "* JOIN * *" should
not match messages which happen to contain the word "JOIN" followed by
two other words.

Ignore capacity is reduced to 64 to keep the size of the array the same.
I don't think it's an issue.
Diffstat (limited to 'chat.h')
-rw-r--r--chat.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/chat.h b/chat.h
index c7af680..b06d383 100644
--- a/chat.h
+++ b/chat.h
@@ -353,13 +353,16 @@ void urlOpenCount(uint id, uint count);
 void urlOpenMatch(uint id, const char *str);
 void urlCopyMatch(uint id, const char *str);
 
-enum { IgnoreCap = 256 };
+enum { IgnoreCap = 64 };
 extern struct Ignore {
-	size_t len;
-	char *patterns[IgnoreCap];
-} ignore;
-const char *ignoreAdd(const char *pattern);
-bool ignoreRemove(const char *pattern);
+	char *mask;
+	char *cmd;
+	char *chan;
+	char *mesg;
+} ignores[IgnoreCap];
+struct Ignore ignoreParse(char *pattern);
+struct Ignore ignoreAdd(const char *pattern);
+bool ignoreRemove(struct Ignore ignore);
 enum Heat ignoreCheck(enum Heat heat, uint id, const struct Message *msg);
 
 extern bool logEnable;
d>2019-12-22Use sequence numbers rather than UIDsJune McEnroe 2019-12-22Use EXAMINE rather than SELECTJune McEnroe 2019-12-22Export To and CC headersJune McEnroe 2019-12-22Add missing includeJune McEnroe 2019-12-22Export In-Reply-To headersJune McEnroe 2019-12-21Add git-fetch-email to READMEJune McEnroe 2019-12-21Clarify purpose in READMEJune McEnroe 2019-12-21Add READMEJune McEnroe 2019-12-21Add copyright header to git-fetch-emailJune McEnroe 2019-12-21Add git-fetch-email to SEE ALSO of imboxJune McEnroe 2019-12-21Add git-fetch-email wrapperJune McEnroe 2019-12-21Determine host by SRV lookupJune McEnroe 2019-12-21Clean up remaining codeJune McEnroe 2019-12-21Clean up mboxrd codeJune McEnroe 2019-12-21Convert CRLF to LFJune McEnroe 2019-12-21Implement -CFSTJune McEnroe 2019-12-21Rewrite aspirational manualJune McEnroe 2019-12-21Null-terminate read literalsJune McEnroe