summary refs log tree commit diff
path: root/tag.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tag.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/tag.c b/tag.c
index cae5f03..13f59d0 100644
--- a/tag.c
+++ b/tag.c
@@ -23,30 +23,33 @@
 
 static struct {
 	char *name[TagsLen];
+	enum IRCColor color[TagsLen];
 	size_t len;
 } tags = {
 	.name = { "<none>", "<status>", "<raw>" },
+	.color = { IRCBlack, IRCDefault, IRCRed },
 	.len = 3,
 };
 
-const struct Tag TagNone   = { 0, "<none>" };
-const struct Tag TagStatus = { 1, "<status>" };
-const struct Tag TagRaw    = { 2, "<raw>" };
+const struct Tag TagNone   = { 0, "<none>", IRCBlack };
+const struct Tag TagStatus = { 1, "<status>", IRCDefault };
+const struct Tag TagRaw    = { 2, "<raw>", IRCRed };
 
 struct Tag tagFind(const char *name) {
 	for (size_t id = 0; id < tags.len; ++id) {
 		if (strcmp(tags.name[id], name)) continue;
-		return (struct Tag) { id, tags.name[id] };
+		return (struct Tag) { id, tags.name[id], tags.color[id] };
 	}
 	return TagNone;
 }
 
-struct Tag tagFor(const char *name) {
+struct Tag tagFor(const char *name, enum IRCColor color) {
 	struct Tag tag = tagFind(name);
 	if (tag.id != TagNone.id) return tag;
 	if (tags.len == TagsLen) return TagStatus;
 	size_t id = tags.len++;
 	tags.name[id] = strdup(name);
 	if (!tags.name[id]) err(EX_OSERR, "strdup");
-	return (struct Tag) { id, tags.name[id] };
+	tags.color[id] = color;
+	return (struct Tag) { id, tags.name[id], color };
 }
019-10-27 16:53:25 -0400'>2019-10-27Set SO_REUSEADDR on bindsJune McEnroe 2019-10-27Output ring info on SIGINFOJune McEnroe 2019-10-27Improve client/server error messagesJune McEnroe 2019-10-27Add reload cmd to rc scriptJune McEnroe 2019-10-27Reload certificate on SIGUSR1June McEnroe 2019-10-27Drop clients on zero-length readsJune McEnroe 2019-10-27Explicitly tls_handshake new clientsJune McEnroe 2019-10-26Document rationaleJune McEnroe 2019-10-26Handle nick collisionJune McEnroe 2019-10-26Wait for AUTHENTICATE + from serverJune McEnroe 2019-10-26Respond to PING with same parameterJune McEnroe 2019-10-26Add undocumented flag to disable verificationJune McEnroe 2019-10-26Do not require RPL_ISUPPORT for stateReadyJune McEnroe 2019-10-26Implement graceful shutdownJune McEnroe 2019-10-26Require PASS before USERJune McEnroe 2019-10-26Track channel topicsJune McEnroe 2019-10-26Set AWAY when no clients are connectedJune McEnroe 2019-10-26Add flags to request TOPIC and NAMES on client connectJune McEnroe 2019-10-26OopsJune McEnroe 2019-10-26Disconnect client on unknown commandJune McEnroe 2019-10-26Allow reading sensitive information from filesJune McEnroe 2019-10-26Add rc scriptJune McEnroe 2019-10-25Add install and uninstall targetsJune McEnroe 2019-10-25Expand documentationJune McEnroe 2019-10-25Add AGPLv3 notice on client registrationJune McEnroe 2019-10-25Rename project pounceJune McEnroe