aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/main.c3
-rw-r--r--src/nvim/tui/tui.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c
index d9ca82784f..0bb69d000b 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -659,6 +659,9 @@ void os_exit(int r)
if (ui_client_channel_id) {
ui_client_stop();
+ if (r == 0) {
+ r = ui_client_exit_status;
+ }
} else {
ui_flush();
ui_call_stop();
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index 4097b770c9..db15cdb053 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -386,6 +386,9 @@ static void terminfo_stop(TUIData *tui)
unibi_out_ext(tui, tui->unibi_ext.disable_extended_keys);
// May restore old title before exiting alternate screen.
tui_set_title(tui, (String)STRING_INIT);
+ if (ui_client_exit_status == 0) {
+ ui_client_exit_status = tui->seen_error_exit;
+ }
// if nvim exited with nonzero status, without indicated this was an
// intentional exit (like `:1cquit`), it likely was an internal failure.
// Don't clobber the stderr error message in this case.