diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-11-01 12:17:45 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-11-01 12:21:52 -0500 |
commit | 4b398413e46d604ec03e30875a46506988cdbbc0 (patch) | |
tree | cfaecb4b0691836eb4807ab32e1697813de9c72e | |
parent | ff112478379274ecfab54ad4f981b88804948aca (diff) | |
download | rneovim-4b398413e46d604ec03e30875a46506988cdbbc0.tar.gz rneovim-4b398413e46d604ec03e30875a46506988cdbbc0.tar.bz2 rneovim-4b398413e46d604ec03e30875a46506988cdbbc0.zip |
vim-patch:8.2.1936: session sets the local 'scrolloff' value to the global value
Problem: Session sets the local 'scrolloff' value to the global value.
Solution: Do not let restoring the global option value change the local
value.
https://github.com/vim/vim/commit/388908352f88e7391accb3545b082db0fc89d9f7
-rw-r--r-- | src/nvim/ex_session.c | 6 | ||||
-rw-r--r-- | src/nvim/testdir/test_mksession.vim | 13 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/nvim/ex_session.c b/src/nvim/ex_session.c index 6b00b986dc..42a9ef08f9 100644 --- a/src/nvim/ex_session.c +++ b/src/nvim/ex_session.c @@ -897,8 +897,8 @@ void ex_mkrc(exarg_T *eap) if (!failed && view_session) { if (put_line(fd, - "let s:so_save = &so | let s:siso_save = &siso" - " | set so=0 siso=0") == FAIL) { + "let s:so_save = &g:so | let s:siso_save = &g:siso" + " | setg so=0 siso=0 | setl so=-1 siso=-1") == FAIL) { failed = true; } if (eap->cmdidx == CMD_mksession) { @@ -949,7 +949,7 @@ void ex_mkrc(exarg_T *eap) } if (fprintf(fd, "%s", - "let &so = s:so_save | let &siso = s:siso_save\n" + "let &g:so = s:so_save | let &g:siso = s:siso_save\n" "doautoall SessionLoadPost\n") < 0) { failed = true; diff --git a/src/nvim/testdir/test_mksession.vim b/src/nvim/testdir/test_mksession.vim index 3243edbf55..215065f941 100644 --- a/src/nvim/testdir/test_mksession.vim +++ b/src/nvim/testdir/test_mksession.vim @@ -470,4 +470,17 @@ func Test_mkvimrc() call delete('Xtestvimrc') endfunc +func Test_scrolloff() + set sessionoptions+=localoptions + setlocal so=1 siso=1 + mksession! Xtest_mks.out + setlocal so=-1 siso=-1 + source Xtest_mks.out + call assert_equal(1, &l:so) + call assert_equal(1, &l:siso) + call delete('Xtest_mks.out') + setlocal so& siso& + set sessionoptions& +endfunc + " vim: shiftwidth=2 sts=2 expandtab |