changeset 11729:1c8ec1029233 v8.0.0747

patch 8.0.0747: :terminal without an argument doesn't work commit https://github.com/vim/vim/commit/e173fd09720a346fbaa340003d31a4329283a805 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 22 19:03:32 2017 +0200 patch 8.0.0747: :terminal without an argument doesn't work Problem: :terminal without an argument doesn't work. Solution: Use the 'shell' option. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/1860)
author Christian Brabandt <cb@256bit.org>
date Sat, 22 Jul 2017 19:15:04 +0200
parents 628bdcdbf50c
children a9cdc89f3ded
files src/terminal.c src/version.c
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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,