vim-patch:8.1.0803: session restore: handle single quotes #9620

Problem:    Session file has problem with single quote in file name. (Jon
            Crowe)
Solution:   Use a double quoted string.  Add a test.

ad36a3588d

Fixes https://github.com/neovim/neovim/issues/9618
This commit is contained in:
Marco Hinz 2019-02-17 05:00:14 +01:00 committed by Justin M. Keyes
parent 9bfd304459
commit 023e832d40
2 changed files with 16 additions and 2 deletions

View File

@ -9391,9 +9391,9 @@ put_view(
// Note, if a buffer for that file already exists, use :badd to
// edit that buffer, to not lose folding information (:edit resets
// folds in other buffers)
if (fputs("if bufexists('", fd) < 0
if (fputs("if bufexists(\"", fd) < 0
|| ses_fname(fd, wp->w_buffer, flagp, false) == FAIL
|| fputs("') | buffer ", fd) < 0
|| fputs("\") | buffer ", fd) < 0
|| ses_fname(fd, wp->w_buffer, flagp, false) == FAIL
|| fputs(" | else | edit ", fd) < 0
|| ses_fname(fd, wp->w_buffer, flagp, false) == FAIL

View File

@ -238,4 +238,18 @@ func Test_mkview_no_file_name()
%bwipe
endfunc
func Test_mksession_quote_in_filename()
let v:errmsg = ''
%bwipe!
split another
split x'y\"z
mksession! Xtest_mks_quoted.out
%bwipe!
source Xtest_mks_quoted.out
call assert_true(bufexists("x'y\"z"))
%bwipe!
call delete('Xtest_mks_quoted.out')
endfunc
" vim: shiftwidth=2 sts=2 expandtab