summary refs log tree commit diff
path: root/handle.c
diff options
context:
space:
mode:
authorCurtis McEnroe2018-08-09 00:24:49 -0400
committerCurtis McEnroe2018-08-09 00:24:49 -0400
commita64f1a4ea2962e534673e27d85d92703c64201b0 (patch)
tree1bcf8ffdf2ae7280b406fe021619e9c61b83de6b /handle.c
parentc024147504a4a1b3a6b1e40f5120bc57248f0531 (diff)
Add URL detection, listing and opening
Might also add /copy, like /open.
Diffstat (limited to 'handle.c')
-rw-r--r--handle.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/handle.c b/handle.c
index 10bce42..f6b3e5d 100644
--- a/handle.c
+++ b/handle.c
@@ -141,11 +141,12 @@ static void handle332(char *prefix, char *params) {
 	shift(&params);
 	char *chan = shift(&params);
 	char *topic = shift(&params);
+	urlScan(topic);
+	uiTopicStr(topic);
 	uiFmt(
 		"The sign in \3%d%s\3 reads, \"%s\"",
 		color(chan), chan, topic
 	);
-	uiTopicStr(topic);
 }
 
 static void handleTopic(char *prefix, char *params) {
@@ -153,11 +154,12 @@ static void handleTopic(char *prefix, char *params) {
 	char *user = prift(&prefix);
 	char *chan = shift(&params);
 	char *topic = shift(&params);
+	urlScan(topic);
+	uiTopicStr(topic);
 	uiFmt(
 		"\3%d%s\3 places a new sign in \3%d%s\3, \"%s\"",
 		color(user), nick, color(chan), chan, topic
 	);
-	uiTopicStr(topic);
 }
 
 static void handle366(char *prefix, char *params) {
@@ -222,6 +224,7 @@ static void handlePrivmsg(char *prefix, char *params) {
 	shift(&params);
 	char *mesg = shift(&params);
 	tabTouch(nick);
+	urlScan(mesg);
 	bool self = !strcmp(user, chat.user);
 	bool ping = !strncasecmp(mesg, chat.nick, strlen(chat.nick));
 	if (ping) uiBeep();
@@ -244,6 +247,7 @@ static void handleNotice(char *prefix, char *params) {
 	char *mesg = shift(&params);
 	if (strcmp(chat.chan, chan)) return;
 	tabTouch(nick);
+	urlScan(mesg);
 	uiFmt("-\3%d%s\3- %s", color(user), nick, mesg);
 }