summaryrefslogtreecommitdiff
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();