summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--command.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/command.c b/command.c
index 0aefb2b..eae865e 100644
--- a/command.c
+++ b/command.c
@@ -135,8 +135,12 @@ static void commandMe(uint id, char *params) {
 }
 
 static void commandMsg(uint id, char *params) {
-	id = idFor(strsep(&params, " "));
-	splitMessage("PRIVMSG", id, params);
+	char *nick = strsep(&params, " ");
+	uint msg = idFor(nick);
+	if (idColors[msg] == Default) {
+		idColors[msg] = completeColor(id, nick);
+	}
+	splitMessage("PRIVMSG", msg, params);
 }
 
 static void commandJoin(uint id, char *params) {
@@ -357,7 +361,9 @@ static void commandCS(uint id, char *params) {
 static void commandQuery(uint id, char *params) {
 	if (!params) return;
 	uint query = idFor(params);
-	idColors[query] = completeColor(id, params);
+	if (idColors[query] == Default) {
+		idColors[query] = completeColor(id, params);
+	}
 	uiShowID(query);
 }