summaryrefslogtreecommitdiff
path: root/src/fe-common/irc/irc-hilight-text.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe-common/irc/irc-hilight-text.c')
-rw-r--r--src/fe-common/irc/irc-hilight-text.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/fe-common/irc/irc-hilight-text.c b/src/fe-common/irc/irc-hilight-text.c
index 7c8a46be..7969f7d4 100644
--- a/src/fe-common/irc/irc-hilight-text.c
+++ b/src/fe-common/irc/irc-hilight-text.c
@@ -19,10 +19,13 @@
*/
#include "module.h"
+#include "signals.h"
#include "settings.h"
#include "hilight-text.h"
+static int last_color;
+
char *irc_hilight_find_nick(const char *channel, const char *nick,
const char *address, int level, const char *msg)
{
@@ -32,6 +35,28 @@ char *irc_hilight_find_nick(const char *channel, const char *nick,
color = hilight_match(channel, mask, level, msg);
g_free(mask);
+ last_color = (color != NULL && *color == 3) ?
+ atoi(color+1) : 0;
return color;
}
+int irc_hilight_last_color(void)
+{
+ return last_color;
+}
+
+static void event_privmsg(void)
+{
+ last_color = 0;
+}
+
+void irc_hilight_text_init(void)
+{
+ last_color = 0;
+ signal_add_last("event privmsg", (SIGNAL_FUNC) event_privmsg);
+}
+
+void irc_hilight_text_deinit(void)
+{
+ signal_remove("event privmsg", (SIGNAL_FUNC) event_privmsg);
+}