From c75e81262347e47a69faabd72caf89fec3f06e8f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 21 Apr 2019 15:55:10 +0200 Subject: [PATCH] patch 8.1.1197: when starting with multiple tabs file messages is confusing Problem: When starting with multiple tabs file messages is confusing. Solution: Set 'shortmess' when loading the other tabs. (Christian Brabandt) --- src/main.c | 18 ++++++++++++++++++ src/testdir/dumps/Test_start_with_tabs.dump | 20 ++++++++++++++++++++ src/testdir/test_startup.vim | 13 +++++++++++++ src/version.c | 2 ++ 4 files changed, 53 insertions(+) create mode 100644 src/testdir/dumps/Test_start_with_tabs.dump 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 @@ -771,6 +771,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1197, /**/ 1196, /**/ -- 2.40.0