summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-04-21 15:55:10 +0200
committerBram Moolenaar <Bram@vim.org>2019-04-21 15:55:10 +0200
commitc75e81262347e47a69faabd72caf89fec3f06e8f (patch)
treeca8a14b72659f70941b53207a27453c288d8057f
parent7bde95a461fafaa15cc45a006eaa4d0f3c2dfe92 (diff)
downloadvim-git-c75e81262347e47a69faabd72caf89fec3f06e8f.tar.gz
patch 8.1.1197: when starting with multiple tabs file messages is confusingv8.1.1197
Problem: When starting with multiple tabs file messages is confusing. Solution: Set 'shortmess' when loading the other tabs. (Christian Brabandt)
-rw-r--r--src/main.c18
-rw-r--r--src/testdir/dumps/Test_start_with_tabs.dump20
-rw-r--r--src/testdir/test_startup.vim13
-rw-r--r--src/version.c2
4 files changed, 53 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 5edcbdf8f..0f26e984a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2777,6 +2777,7 @@ edit_buffers(
int i;
int advance = TRUE;
win_T *win;
+ char_u *p_shm_save = NULL;
/*
* Don't execute Win/Buf Enter/Leave autocommands here
@@ -2812,6 +2813,17 @@ edit_buffers(
if (curtab->tp_next == NULL) /* just checking */
break;
goto_tabpage(0);
+ // Temporarily reset 'shm' option to not print fileinfo when
+ // loading the other buffers. This would overwrite the already
+ // existing fileinfo for the first tab.
+ if (i == 1)
+ {
+ char buf[100];
+
+ p_shm_save = vim_strsave(p_shm);
+ vim_snprintf(buf, 100, "F%s", p_shm);
+ set_option_value((char_u *)"shm", 0L, (char_u *)buf, 0);
+ }
}
else
{
@@ -2861,6 +2873,12 @@ edit_buffers(
}
}
+ if (p_shm_save != NULL)
+ {
+ set_option_value((char_u *)"shm", 0L, p_shm_save, 0);
+ vim_free(p_shm_save);
+ }
+
if (parmp->window_layout == WIN_TABS)
goto_tabpage(1);
--autocmd_no_enter;
diff --git a/src/testdir/dumps/Test_start_with_tabs.dump b/src/testdir/dumps/Test_start_with_tabs.dump
new file mode 100644
index 000000000..5490805c8
--- /dev/null
+++ b/src/testdir/dumps/Test_start_with_tabs.dump
@@ -0,0 +1,20 @@
+| +2&#ffffff0|a| | +8#0000001#e0e0e08|b| @1|c| | +1#0000000#ffffff0@64|X+8#0000001#e0e0e08
+> +0#0000000#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|"+0#0000000&|a|"| |[|N|e|w| |F|i|l|e|]| @42|0|,|0|-|1| @8|A|l@1|
diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim
index b7dd7eafd..6509c0cc1 100644
--- a/src/testdir/test_startup.vim
+++ b/src/testdir/test_startup.vim
@@ -1,6 +1,7 @@
" Tests for startup.
source shared.vim
+source screendump.vim
" Check that loading startup.vim works.
func Test_startup_script()
@@ -547,3 +548,15 @@ func Test_issue_3969()
let out = system(GetVimCommand() . ' -es -X -V1 -c "echon ''hello''" -cq')
call assert_equal('hello', out)
endfunc
+
+func Test_start_with_tabs()
+ if !CanRunVimInTerminal()
+ return
+ endif
+
+ let buf = RunVimInTerminal('-p a b c', {})
+ call VerifyScreenDump(buf, 'Test_start_with_tabs', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+endfunc
diff --git a/src/version.c b/src/version.c
index f9d474187..234f4bf04 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1197,
+/**/
1196,
/**/
1195,