Do not emit newline when running commands if the cursor is on its own line

If the cursor has been wrapped to the last line, and is the only thing
on that line, do not emit a newline when executing a command.

Fixes #6826
This commit is contained in:
ridiculousfish
2020-04-28 11:49:26 -07:00
parent 81af389258
commit 4f103d74fb
3 changed files with 16 additions and 1 deletions

View File

@@ -3581,7 +3581,11 @@ maybe_t<wcstring> reader_data_t::readline(int nchars_or_0) {
repaint_if_needed();
}
ignore_result(write(STDOUT_FILENO, "\n", 1));
// Emit a newline so that the output is on the line after the command.
// But do not emit a newline if the cursor has wrapped onto a new line all its own - see #6826.
if (!screen.cursor_is_wrapped_to_own_line()) {
ignore_result(write(STDOUT_FILENO, "\n", 1));
}
// Ensure we have no pager contents when we exit.
if (!pager.empty()) {