diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-09-08 15:44:14 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-09-08 23:16:54 -0400 |
commit | 8dde9b58e56345c8c04620d513b55d3b518ea98e (patch) | |
tree | 3eee5ce39d8465481079844f1d0a97f64e375e3f | |
parent | 74c362cec029ba39a8eb0bbd629148e4b6b54968 (diff) | |
download | rneovim-8dde9b58e56345c8c04620d513b55d3b518ea98e.tar.gz rneovim-8dde9b58e56345c8c04620d513b55d3b518ea98e.tar.bz2 rneovim-8dde9b58e56345c8c04620d513b55d3b518ea98e.zip |
vim-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)
https://github.com/vim/vim/commit/c75e81262347e47a69faabd72caf89fec3f06e8f
-rw-r--r-- | src/nvim/main.c | 16 | ||||
-rw-r--r-- | src/nvim/testdir/test_startup.vim | 13 | ||||
-rw-r--r-- | test/functional/core/startup_spec.lua | 17 |
3 files changed, 46 insertions, 0 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c index 4335dab1f9..bca8991b0f 100644 --- a/src/nvim/main.c +++ b/src/nvim/main.c @@ -1535,6 +1535,7 @@ static void edit_buffers(mparm_T *parmp, char_u *cwd) int i; bool advance = true; win_T *win; + char *p_shm_save = NULL; /* * Don't execute Win/Buf Enter/Leave autocommands here @@ -1566,6 +1567,16 @@ static void edit_buffers(mparm_T *parmp, char_u *cwd) 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 = xstrdup((char *)p_shm); + snprintf(buf, sizeof(buf), "F%s", p_shm); + set_option_value("shm", 0L, buf, 0); + } } else { if (curwin->w_next == NULL) /* just checking */ break; @@ -1606,6 +1617,11 @@ static void edit_buffers(mparm_T *parmp, char_u *cwd) } } + if (p_shm_save != NULL) { + set_option_value("shm", 0L, p_shm_save, 0); + xfree(p_shm_save); + } + if (parmp->window_layout == WIN_TABS) goto_tabpage(1); --autocmd_no_enter; diff --git a/src/nvim/testdir/test_startup.vim b/src/nvim/testdir/test_startup.vim index b5647b610d..1e70f28a00 100644 --- a/src/nvim/testdir/test_startup.vim +++ b/src/nvim/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() @@ -559,3 +560,15 @@ func Test_zzz_startinsert() endif call delete('Xtestout') 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/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua index 3b32c42ec0..041d9a278d 100644 --- a/test/functional/core/startup_spec.lua +++ b/test/functional/core/startup_spec.lua @@ -251,6 +251,23 @@ describe('startup', function() | ]]) end) + + it('sets \'shortmess\' when loading other tabs', function() + clear({args={'-p', 'a', 'b', 'c'}}) + local screen = Screen.new(25, 4) + screen:attach() + screen:expect({grid=[[ + {1: a }{2: b c }{3: }{2:X}| + ^ | + {4:~ }| + | + ]], attr_ids={ + [1] = {bold = true}, + [2] = {background = Screen.colors.LightGrey, underline = true}, + [3] = {reverse = true}, + [4] = {bold = true, foreground = Screen.colors.Blue1}, + }}) + end) end) describe('sysinit', function() |