about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--chat.h9
-rw-r--r--ui.c11
2 files changed, 12 insertions, 8 deletions
diff --git a/chat.h b/chat.h
index cd8798c..89d5797 100644
--- a/chat.h
+++ b/chat.h
@@ -105,6 +105,15 @@ static inline size_t styleParse(struct Style *style, const char **str) {
 	return strcspn(*str, (const char[]) { B, C, O, R, I, U, '\0' });
 }
 
+static inline void styleStrip(struct Cat *cat, const char *str) {
+	struct Style style = StyleDefault;
+	while (*str) {
+		size_t len = styleParse(&style, &str);
+		catf(cat, "%.*s", (int)len, str);
+		str += len;
+	}
+}
+
 enum { None, Debug, Network, IDCap = 256 };
 extern char *idNames[IDCap];
 extern enum Color idColors[IDCap];
diff --git a/ui.c b/ui.c
index 22ec02e..e2b832e 100644
--- a/ui.c
+++ b/ui.c
@@ -534,16 +534,11 @@ struct Util uiNotifyUtil;
 static void notify(uint id, const char *str) {
 	if (!uiNotifyUtil.argc) return;
 
+	char buf[1024] = "";
+	styleStrip(&(struct Cat) { buf, sizeof(buf), 0 }, str);
+
 	struct Util util = uiNotifyUtil;
 	utilPush(&util, idNames[id]);
-	char buf[1024] = "";
-	struct Cat cat = { buf, sizeof(buf), 0 };
-	while (*str) {
-		struct Style style = StyleDefault;
-		size_t len = styleParse(&style, &str);
-		catf(&cat, "%.*s", (int)len, str);
-		str += len;
-	}
 	utilPush(&util, buf);
 
 	pid_t pid = fork();