Mercurial > vim
changeset 28915:6c67aeb82b65 v8.2.4980
patch 8.2.4980: when 'shortmess' contains 'A' loading session may still warn
Commit: https://github.com/vim/vim/commit/aaadb5b6f76ea03e5eb460121f3dbf46ad04ce50
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed May 18 22:07:47 2022 +0100
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 18 May 2022 23:15:02 +0200 |
parents | 868e70a39d73 |
children | 40a5b3396eb4 |
files | src/session.c src/testdir/test_mksession.vim src/version.c |
diffstat | 3 files changed, 31 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/session.c +++ b/src/session.c @@ -692,10 +692,15 @@ makeopens( && put_line(fd, "let s:shortmess_save = &shortmess") == FAIL) goto fail; - // Now save the current files, current buffer first. - if (put_line(fd, "set shortmess=aoO") == FAIL) + // set 'shortmess' for the following. Add the 'A' flag if it was there + 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; + // Now save the current files, current buffer first. // Put all buffers into the buffer list. // Do it very early to preserve buffer order after loading session (which // can be disrupted by prior `edit` or `tabedit` calls).
--- a/src/testdir/test_mksession.vim +++ b/src/testdir/test_mksession.vim @@ -1078,6 +1078,28 @@ func Test_mksession_shortmess() set sessionoptions& 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 func Test_mksession_compatible() mksession! Xtest_mks1.out