summaryrefslogtreecommitdiff
path: root/src/irc/notifylist/notifylist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/irc/notifylist/notifylist.h')
-rw-r--r--src/irc/notifylist/notifylist.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/irc/notifylist/notifylist.h b/src/irc/notifylist/notifylist.h
new file mode 100644
index 00000000..0d4f3739
--- /dev/null
+++ b/src/irc/notifylist/notifylist.h
@@ -0,0 +1,32 @@
+#ifndef __NOTIFYLIST_H
+#define __NOTIFYLIST_H
+
+typedef struct {
+ char *mask; /* nick part must not contain wildcards */
+ char **ircnets; /* if non-NULL, check only from these irc networks */
+
+ /* notify when AWAY status changes (uses /USERHOST) */
+ int away_check:1;
+ /* notify when idle time is reset and it was bigger than this
+ (uses /WHOIS and PRIVMSG events) */
+ int idle_check_time;
+} NOTIFYLIST_REC;
+
+extern GSList *notifies;
+
+void notifylist_init(void);
+void notifylist_deinit(void);
+
+NOTIFYLIST_REC *notifylist_add(const char *mask, const char *ircnets,
+ int away_check, int idle_check_time);
+void notifylist_remove(const char *mask);
+
+IRC_SERVER_REC *notifylist_ison(const char *nick, const char *serverlist);
+int notifylist_ison_server(IRC_SERVER_REC *server, const char *nick);
+
+/* If `ircnet' is "*", it doesn't matter at all. */
+NOTIFYLIST_REC *notifylist_find(const char *mask, const char *ircnet);
+
+int notify_ircnets_match(NOTIFYLIST_REC *rec, const char *ircnet);
+
+#endif