diff options
-rw-r--r-- | chat.h | 9 | ||||
-rw-r--r-- | ui.c | 11 |
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(); |