summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ui.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/ui.c b/ui.c
index 1adcafe..2789bd7 100644
--- a/ui.c
+++ b/ui.c
@@ -276,10 +276,12 @@ void uiInitEarly(void) {
 	if (!main) err(EX_OSERR, "newwin");
 
 	int y;
+	char fmt[TimeCap];
 	char buf[TimeCap];
+	styleStrip(fmt, sizeof(fmt), uiTime.format);
 	struct tm *time = localtime(&(time_t) { -22100400 });
-	size_t len = strftime(buf, sizeof(buf), uiTime.format, time);
-	if (!len) errx(EX_CONFIG, "invalid timestamp format: %s", uiTime.format);
+	size_t len = strftime(buf, sizeof(buf), fmt, time);
+	if (!len) errx(EX_CONFIG, "invalid timestamp format: %s", fmt);
 	waddstr(main, buf);
 	waddch(main, ' ');
 	getyx(main, y, uiTime.width);
@@ -386,8 +388,8 @@ static short stylePair(struct Style style) {
 	return colorPair(Colors[style.fg], Colors[style.bg]);
 }
 
-static int styleAdd(WINDOW *win, const char *str) {
-	struct Style style = StyleDefault;
+static int styleAdd(WINDOW *win, struct Style init, const char *str) {
+	struct Style style = init;
 	while (*str) {
 		size_t len = styleParse(&style, &str);
 		wattr_set(win, styleAttr(style), stylePair(style), NULL);
@@ -433,7 +435,7 @@ static void statusUpdate(void) {
 		if (window->scroll) {
 			ptr = seprintf(ptr, end, "~%d ", window->scroll);
 		}
-		if (styleAdd(status, buf) < 0) break;
+		if (styleAdd(status, StyleDefault, buf) < 0) break;
 	}
 	wclrtoeol(status);
 
@@ -514,18 +516,14 @@ static void mainAdd(int y, bool time, const struct Line *line) {
 	if (time && line->time) {
 		char buf[TimeCap];
 		strftime(buf, sizeof(buf), uiTime.format, localtime(&line->time));
-		wattr_set(
-			main,
-			colorAttr(Colors[Gray]), colorPair(Colors[Gray], -1),
-			NULL
-		);
-		waddstr(main, buf);
+		struct Style init = { .fg = Gray, .bg = Default };
+		styleAdd(main, init, buf);
 		waddch(main, ' ');
 	} else if (time) {
 		whline(main, ' ', uiTime.width);
 		wmove(main, y, uiTime.width);
 	}
-	styleAdd(main, line->str);
+	styleAdd(main, StyleDefault, line->str);
 	getyx(main, ny, nx);
 	if (ny != y) return;
 	wclrtoeol(main);