0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.4980: when 'shortmess' contains 'A' loading session may still warn

Problem:    When 'shortmess' contains 'A' loading a session may still warn for
            an existing swap file. (Melker Österberg)
Solution:   Keep the 'A' flag to 'shortmess' in the session file.
            (closes #10443)
This commit is contained in:
Bram Moolenaar 2022-05-18 22:07:47 +01:00
parent 28d032cc68
commit aaadb5b6f7
3 changed files with 31 additions and 2 deletions

View File

@ -692,10 +692,15 @@ makeopens(
&& put_line(fd, "let s:shortmess_save = &shortmess") == FAIL) && put_line(fd, "let s:shortmess_save = &shortmess") == FAIL)
goto fail; goto fail;
// Now save the current files, current buffer first. // set 'shortmess' for the following. Add the 'A' flag if it was there
if (put_line(fd, "set shortmess=aoO") == FAIL) if (put_line(fd, "if &shortmess =~ 'A'") == FAIL
|| put_line(fd, " set shortmess=aoOA") == FAIL
|| put_line(fd, "else") == FAIL
|| put_line(fd, " set shortmess=aoO") == FAIL
|| put_line(fd, "endif") == FAIL)
goto fail; goto fail;
// Now save the current files, current buffer first.
// Put all buffers into the buffer list. // Put all buffers into the buffer list.
// Do it very early to preserve buffer order after loading session (which // Do it very early to preserve buffer order after loading session (which
// can be disrupted by prior `edit` or `tabedit` calls). // can be disrupted by prior `edit` or `tabedit` calls).

View File

@ -1078,6 +1078,28 @@ func Test_mksession_shortmess()
set sessionoptions& set sessionoptions&
endfunc endfunc
" Test that when Vim loading session has 'A' in 'shortmess' it does not
" complain about an existing swapfile.
func Test_mksession_shortmess_with_A()
edit Xtestfile
write
let fname = swapname('%')
let cont = readblob(fname)
set sessionoptions-=options
mksession Xtestsession
bwipe!
" Recreate the swap file to pretend the file is being edited
call writefile(cont, fname)
set shortmess+=A
source Xtestsession
set shortmess&
set sessionoptions&
call delete('Xtestsession')
call delete(fname)
endfunc
" Test for mksession with 'compatible' option " Test for mksession with 'compatible' option
func Test_mksession_compatible() func Test_mksession_compatible()
mksession! Xtest_mks1.out mksession! Xtest_mks1.out

View File

@ -746,6 +746,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
4980,
/**/ /**/
4979, 4979,
/**/ /**/