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);