about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-08-07 17:51:23 -0400
committerJune McEnroe <june@causal.agency>2018-08-07 17:51:23 -0400
commit7d76246c3f488edf3770dc7b641965dbd60bf6e5 (patch)
tree2053804e21aa8b220441c105bf24b38abcb80a44
parentFactor out allocating conversion between wcs and mbs (diff)
downloadcatgirl-7d76246c3f488edf3770dc7b641965dbd60bf6e5.tar.gz
catgirl-7d76246c3f488edf3770dc7b641965dbd60bf6e5.zip
Highlight and beep pings
-rw-r--r--chat.h1
-rw-r--r--handle.c7
-rw-r--r--ui.c4
3 files changed, 11 insertions, 1 deletions
diff --git a/chat.h b/chat.h
index 1c7ae5a..838c51d 100644
--- a/chat.h
+++ b/chat.h
@@ -41,6 +41,7 @@ void ircFmt(const char *format, ...);
 void uiInit(void);
 void uiHide(void);
 void uiDraw(void);
+void uiBeep(void);
 void uiRead(void);
 void uiTopic(const wchar_t *topic);
 void uiTopicStr(const char *topic);
diff --git a/handle.c b/handle.c
index 015960d..e2169e5 100644
--- a/handle.c
+++ b/handle.c
@@ -227,7 +227,12 @@ static void handlePrivmsg(char *prefix, char *params) {
 		char *action = strsep(&mesg, "\1");
 		uiFmt("* \3%d%s\3 %s", color(user), nick, action);
 	} else {
-		uiFmt("<\3%d%s\3> %s", color(user), nick, mesg);
+		bool ping = !strncasecmp(mesg, chat.nick, strlen(chat.nick));
+		if (ping) uiBeep();
+		uiFmt(
+			"<%s\3%d%s\17> %s",
+			(ping ? "\26" : ""), color(user), nick, mesg
+		);
 	}
 }
 
diff --git a/ui.c b/ui.c
index 62c3b3c..590bfb4 100644
--- a/ui.c
+++ b/ui.c
@@ -158,6 +158,10 @@ static void uiRedraw(void) {
 	clearok(curscr, true);
 }
 
+void uiBeep(void) {
+	beep(); // always be beeping
+}
+
 static const short IRC_COLORS[16] = {
 	8 + COLOR_WHITE,   // white
 	0 + COLOR_BLACK,   // black