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)
c75e812623
This commit is contained in:
Jan Edmund Lazo
2019-09-08 15:44:14 -04:00
parent 74c362cec0
commit 8dde9b58e5
3 changed files with 46 additions and 0 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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()