about summary refs log tree commit diff
path: root/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui.c')
-rw-r--r--ui.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/ui.c b/ui.c
index 5f912b7..1e7eb26 100644
--- a/ui.c
+++ b/ui.c
@@ -38,6 +38,7 @@
 
 // Annoying stuff from <term.h>:
 #undef lines
+#undef tab
 
 #ifndef A_ITALIC
 #define A_ITALIC A_NORMAL
@@ -577,12 +578,20 @@ static void bufferList(const struct Buffer *buffer) {
 		char buf[sizeof("[00:00:00]")];
 		strftime(buf, sizeof(buf), "[%T]", tm);
 		vid_attr(colorAttr(Colors[Gray]), colorPair(Colors[Gray], -1), NULL);
-		printf("%s\t", buf);
+		printf("%s ", buf);
 
 		size_t len;
+		bool align = false;
 		struct Style style = Reset;
 		while (*line) {
+			if (*line == '\t') {
+				printf("%c", (align ? '\t' : ' '));
+				align = true;
+				line++;
+			}
 			styleParse(&style, &line, &len);
+			size_t tab = strcspn(line, "\t");
+			if (tab < len) len = tab;
 			vid_attr(
 				style.attr | colorAttr(Colors[style.fg]),
 				colorPair(Colors[style.fg], Colors[style.bg]),