summaryrefslogtreecommitdiff
path: root/src/buffer_utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer_utils.cc')
-rw-r--r--src/buffer_utils.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/buffer_utils.cc b/src/buffer_utils.cc
index 5f8cb9fd..c59157a5 100644
--- a/src/buffer_utils.cc
+++ b/src/buffer_utils.cc
@@ -47,10 +47,13 @@ Buffer* create_fifo_buffer(String name, int fd, bool scroll)
buffer->insert(pos, count > 0 ? String(data, data+count)
: "*** kak: fifo closed ***\n");
- if (prevent_scrolling)
+ if (count > 0 and prevent_scrolling)
{
buffer->erase(buffer->begin(), buffer->begin()+1);
- buffer->insert(buffer->end(), "\n");
+ // in the other case, the buffer will have automatically
+ // inserted a \n to guarantee its invariant.
+ if (data[count-1] == '\n')
+ buffer->insert(buffer->end(), "\n");
}
FD_ZERO(&rfds);