summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--chat.h1
-rw-r--r--command.c2
-rw-r--r--handle.c5
3 files changed, 6 insertions, 2 deletions
diff --git a/chat.h b/chat.h
index c8b31c2..90c7da8 100644
--- a/chat.h
+++ b/chat.h
@@ -73,6 +73,7 @@ extern struct Self {
 	char *chanTypes;
 	char *prefixes;
 	char *nick;
+	char *user;
 	enum Color color;
 } self;
 
diff --git a/command.c b/command.c
index ab05587..76d7d7b 100644
--- a/command.c
+++ b/command.c
@@ -23,7 +23,7 @@ void command(size_t id, char *input) {
 	ircFormat("PRIVMSG %s :%s\r\n", idNames[id], input);
 	struct Message msg = {
 		.nick = self.nick,
-		// TODO: .user,
+		.user = self.user,
 		.cmd = "PRIVMSG",
 		.params[0] = idNames[id],
 		.params[1] = input,
diff --git a/handle.c b/handle.c
index b5585ba..85783d7 100644
--- a/handle.c
+++ b/handle.c
@@ -187,7 +187,10 @@ static void handleJoin(struct Message *msg) {
 	require(msg, true, 1);
 	size_t id = idFor(msg->params[0]);
 	if (self.nick && !strcmp(msg->nick, self.nick)) {
-		self.color = hash(msg->user);
+		if (!self.user) {
+			set(&self.user, msg->user);
+			self.color = hash(msg->user);
+		}
 		idColors[id] = hash(msg->params[0]);
 		uiShowID(id);
 	}