summaryrefslogtreecommitdiff
path: root/src/channel.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-03-09 21:33:34 +0100
committerBram Moolenaar <Bram@vim.org>2018-03-09 21:33:34 +0100
commit4d8bac8bf593ff087517ff79090c2d224325aae6 (patch)
tree51e277a9012731df3a3dc362af5c5db39991485a /src/channel.c
parent20586cb4f4d516a60b96cc02a94b810fea8b8cdb (diff)
downloadvim-git-4d8bac8bf593ff087517ff79090c2d224325aae6.tar.gz
patch 8.0.1592: terminal windows in a session are not properly restoredv8.0.1592
Problem: Terminal windows in a session are not properly restored. Solution: Add "terminal" in 'sessionoptions'. When possible restore the command running in a terminal.
Diffstat (limited to 'src/channel.c')
-rw-r--r--src/channel.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/channel.c b/src/channel.c
index 93c809ca6..7c574427a 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -4777,6 +4777,13 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
opt->jo_set |= JO2_HIDDEN;
opt->jo_hidden = get_tv_number(item);
}
+ else if (STRCMP(hi->hi_key, "norestore") == 0)
+ {
+ if (!(supported2 & JO2_NORESTORE))
+ break;
+ opt->jo_set |= JO2_NORESTORE;
+ opt->jo_term_norestore = get_tv_number(item);
+ }
#endif
else if (STRCMP(hi->hi_key, "env") == 0)
{
@@ -5470,6 +5477,7 @@ job_start(typval_T *argvars, jobopt_T *opt_arg)
goto theend;
}
#ifdef USE_ARGV
+ /* This will modify "cmd". */
if (mch_parse_cmd(cmd, FALSE, &argv, &argc) == FAIL)
goto theend;
argv[argc] = NULL;