summaryrefslogtreecommitdiff
path: root/src/buffer_utils.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-11-19 21:33:50 +0000
committerMaxime Coste <frrrwww@gmail.com>2015-11-19 21:33:50 +0000
commitbf213b01dda1425d1d7e20179dea155b52dbcf5e (patch)
tree3bf63f13cf4dde24242950b6b5c0cfb23282774e /src/buffer_utils.cc
parent1ed66e9b6a5ff4f2b649e16777200d0b53270908 (diff)
Keep an empty last line in debug buffer to provide auto scrolling
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 7cc05289..9dd16abe 100644
--- a/src/buffer_utils.cc
+++ b/src/buffer_utils.cc
@@ -168,11 +168,14 @@ void write_to_debug_buffer(StringView str)
}
constexpr StringView debug_buffer_name = "*debug*";
+ // Try to ensure we keep an empty line at the end of the debug buffer
+ // where the user can put its cursor to scroll with new messages
+ const bool eol_back = not str.empty() and str.back() == '\n';
if (Buffer* buffer = BufferManager::instance().get_buffer_ifp(debug_buffer_name))
- buffer->insert(buffer->end(), str);
+ buffer->insert(buffer->end()-1, eol_back ? str : str + "\n");
else
{
- String line = str + ((str.empty() or str.back() != '\n') ? "\n" : "");
+ String line = str + (eol_back ? "\n" : "\n\n");
new Buffer(debug_buffer_name.str(), Buffer::Flags::NoUndo, line, InvalidTime);
}
}