summary refs log tree commit diff
path: root/handle.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--handle.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/handle.c b/handle.c
index ef61129..da635b4 100644
--- a/handle.c
+++ b/handle.c
@@ -193,6 +193,18 @@ static void handleJoin(struct Message *msg) {
 	);
 }
 
+static void handlePrivmsg(struct Message *msg) {
+	require(msg, true, 2);
+	bool query = self.nick && !strcmp(msg->params[0], self.nick);
+	size_t id = idFor(query ? msg->nick : msg->params[0]);
+	if (query) idColors[id] = hash(msg->user);
+	uiFormat(
+		id, Warm, tagTime(msg),
+		"\3%d<%s>\3 %s",
+		hash(msg->user), msg->nick, msg->params[1]
+	);
+}
+
 static void handlePing(struct Message *msg) {
 	require(msg, false, 1);
 	ircFormat("PONG :%s\r\n", msg->params[0]);
@@ -215,6 +227,7 @@ static const struct Handler {
 	{ "CAP", handleCap },
 	{ "JOIN", handleJoin },
 	{ "PING", handlePing },
+	{ "PRIVMSG", handlePrivmsg },
 };
 
 static int compar(const void *cmd, const void *_handler) {
12Move to www/text.causal.agencyJune McEnroe 2019-07-12Add new causal.agency with shotty shotsJune McEnroe 2019-07-12Use -s to infer terminal sizeJune McEnroe 2019-07-12Add DCH to shottyJune McEnroe This makes htop mostly work. Scrolling region still missing. 2019-07-12Support insert mode in shottyJune McEnroe This is how curses puts characters into the bottom-right cell of the terminal. 2019-07-11Don't do carriage return on line feedJune McEnroe 2019-07-11Interpret 256color-style SGRsJune McEnroe 2019-07-11Use inline style rather than <b>, <i>, <u>June McEnroe 2019-07-11Factor out clearJune McEnroe 2019-07-11Add bright option to shottyJune McEnroe 2019-07-11Output <b>, <i>, <u> in shottyJune McEnroe 2019-07-10Ignore SM and RMJune McEnroe 2019-07-09Add shotty man page and build itJune McEnroe 2019-07-09Add up -cJune McEnroe 2019-07-09Add options for default colors to shottyJune McEnroe 2019-07-08Use char literals consistentlyJune McEnroe