summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-07-22 19:03:32 +0200
committerBram Moolenaar <Bram@vim.org>2017-07-22 19:03:32 +0200
commite173fd09720a346fbaa340003d31a4329283a805 (patch)
tree94197db04daf7662a6c5173de82718c5cf65751a
parent61a6605ea1201eb49a126ca696fcfc56caf5dca6 (diff)
patch 8.0.0747: :terminal without an argument doesn't workv8.0.0747
Problem: :terminal without an argument doesn't work. Solution: Use the 'shell' option. (Yasuhiro Matsumoto, closes #1860)
-rw-r--r--src/terminal.c7
-rw-r--r--src/version.c2
2 files changed, 7 insertions, 2 deletions
diff --git a/src/terminal.c b/src/terminal.c
index 7d807acbcb..212b4000d1 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -36,7 +36,6 @@
* up.
* - set buffer options to be scratch, hidden, nomodifiable, etc.
* - set buffer name to command, add (1) to avoid duplicates.
- * - If [command] is not given the 'shell' option is used.
* - Add a scrollback buffer (contains lines to scroll off the top).
* Can use the buf_T lines, store attributes somewhere else?
* - When the job ends:
@@ -163,6 +162,7 @@ ex_terminal(exarg_T *eap)
exarg_T split_ea;
win_T *old_curwin = curwin;
term_T *term;
+ char_u *cmd = eap->arg;
if (check_restricted() || check_secure())
return;
@@ -195,8 +195,11 @@ ex_terminal(exarg_T *eap)
set_term_and_win_size(term);
+ if (cmd == NULL || *cmd == NUL)
+ cmd = p_sh;
+
/* System dependent: setup the vterm and start the job in it. */
- if (term_and_job_init(term, term->tl_rows, term->tl_cols, eap->arg) == OK)
+ if (term_and_job_init(term, term->tl_rows, term->tl_cols, cmd) == OK)
{
/* store the size we ended up with */
vterm_get_size(term->tl_vterm, &term->tl_rows, &term->tl_cols);
diff --git a/src/version.c b/src/version.c
index a0622588a1..79e503fe50 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 747,
+/**/
746,
/**/
745,