changeset 15591:3a2bf24d2655 v8.1.0803

patch 8.1.0803: session file has problem with single quote in file name commit https://github.com/vim/vim/commit/ad36a3588d32985ee27bd11aa97e5195ef623158 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 24 13:34:42 2019 +0100 patch 8.1.0803: session file has problem with single quote in file name Problem: Session file has problem with single quote in file name. (Jon Crowe) Solution: Use a double quoted string. Add a test.
author Bram Moolenaar <Bram@vim.org>
date Thu, 24 Jan 2019 13:45:05 +0100
parents cb9859388af8
children 11e7c65e8bfc
files src/ex_docmd.c src/testdir/test_mksession.vim src/version.c
diffstat 3 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -11838,9 +11838,9 @@ put_view(
 	     * 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
--- a/src/testdir/test_mksession.vim
+++ b/src/testdir/test_mksession.vim
@@ -426,5 +426,19 @@ func Test_mksession_no_errmsg()
   call delete('Xtest_mks.out')
 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
--- a/src/version.c
+++ b/src/version.c
@@ -792,6 +792,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    803,
+/**/
     802,
 /**/
     801,