From dc71af9c31b33165bcb10fe78b5594f0b1c94af9 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch 
Date: Sat, 26 Mar 2016 20:59:37 +0100
Subject: degesch: fix two minor issues
 - completely new unread markers could be created in active buffers
 - control characters confused word wrapping
---
 degesch.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/degesch.c b/degesch.c
index ed55e24..08b66a5 100644
--- a/degesch.c
+++ b/degesch.c
@@ -3292,6 +3292,10 @@ line_char_new (const char *mb, size_t mb_len, wchar_t wc)
 	memcpy (self->bytes, mb, (self->len = MIN (mb_len, sizeof self->bytes)));
 	self->width = wcwidth ((self->wide = wc));
 
+	// Typically various control characters
+	if (self->width < 0)
+		self->width = 0;
+
 	self->attrs.bg = self->attrs.fg = -1;
 	self->attrs.named = ATTR_RESET;
 	return self;
@@ -3777,7 +3781,9 @@ log_formatter (struct app_context *ctx,
 	else
 		displayed = false;
 
-	if (!displayed || buffer == ctx->current_buffer)
+	// Advance the unread marker in active buffers but don't create a new one
+	if (!displayed
+	 || (buffer == ctx->current_buffer && buffer->new_messages_count))
 	{
 		buffer->new_messages_count++;
 		if (flags & BUFFER_LINE_UNIMPORTANT)
-- 
cgit v1.2.3-70-g09d2