aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_session.c
diff options
context:
space:
mode:
authorGustavo Sampaio <gbritosampaio@gmail.com>2022-08-01 09:13:46 -0300
committerGitHub <noreply@github.com>2022-08-01 05:13:46 -0700
commitece0850b7393114cac651cf9f43fc2c5e1b1cf50 (patch)
treeca4a17a3ea56d9696b41f85c6af53da82650dac1 /src/nvim/ex_session.c
parentbcb4186cf67b22dab238248a809f6c3f09a5424d (diff)
downloadrneovim-ece0850b7393114cac651cf9f43fc2c5e1b1cf50.tar.gz
rneovim-ece0850b7393114cac651cf9f43fc2c5e1b1cf50.tar.bz2
rneovim-ece0850b7393114cac651cf9f43fc2c5e1b1cf50.zip
fix(session): respect sessionoptions=terminal #19497
fixes #13078 Co-authored-by: Yuta Katayama <8683947+yutkat@users.noreply.github.com>
Diffstat (limited to 'src/nvim/ex_session.c')
-rw-r--r--src/nvim/ex_session.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/ex_session.c b/src/nvim/ex_session.c
index 6ca6da9cd0..1d670afa6d 100644
--- a/src/nvim/ex_session.c
+++ b/src/nvim/ex_session.c
@@ -193,6 +193,9 @@ static int ses_do_win(win_T *wp)
if (bt_help(wp->w_buffer)) {
return ssop_flags & SSOP_HELP;
}
+ if (bt_terminal(wp->w_buffer)) {
+ return ssop_flags & SSOP_TERMINAL;
+ }
return true;
}
@@ -407,6 +410,8 @@ static int put_view(FILE *fd, win_T *wp, int add_edit, unsigned *flagp, int curr
if ((flagp == &ssop_flags) && alt != NULL && alt->b_fname != NULL
&& *alt->b_fname != NUL
&& alt->b_p_bl
+ // do not set balt if buffer is terminal and "terminal" is not set in options
+ && !(bt_terminal(alt) && !(ssop_flags & SSOP_TERMINAL))
&& (fputs("balt ", fd) < 0
|| ses_fname(fd, alt, flagp, true) == FAIL)) {
return FAIL;
@@ -616,6 +621,7 @@ static int makeopens(FILE *fd, char_u *dirnow)
FOR_ALL_BUFFERS(buf) {
if (!(only_save_windows && buf->b_nwindows == 0)
&& !(buf->b_help && !(ssop_flags & SSOP_HELP))
+ && !(bt_terminal(buf) && !(ssop_flags & SSOP_TERMINAL))
&& buf->b_fname != NULL
&& buf->b_p_bl) {
if (fprintf(fd, "badd +%" PRId64 " ",