changeset 12824:79a754456110 v8.0.1289

patch 8.0.1289: mkview always includes the local directory commit https://github.com/vim/vim/commit/13e904199c2af6aac9b289a7f520d8e16f6e478a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 11 18:16:48 2017 +0100 patch 8.0.1289: mkview always includes the local directory Problem: Mkview always includes the local directory. Solution: Add the "curdir" value in 'viewoptions'. (Eric Roberts, closes #2316)
author Christian Brabandt <cb@256bit.org>
date Sat, 11 Nov 2017 18:30:06 +0100
parents 358131b55d36
children 4c1a7b0a6f5c
files runtime/doc/options.txt src/ex_docmd.c src/option.c src/version.c
diffstat 4 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -8387,7 +8387,7 @@ A jump table for the options with a shor
 	security reasons.
 
 						*'viewoptions'* *'vop'*
-'viewoptions' 'vop'	string	(default: "folds,options,cursor")
+'viewoptions' 'vop'	string	(default: "folds,options,cursor,curdir")
 			global
 			{not in Vi}
 			{not available when compiled without the |+mksession|
@@ -8405,6 +8405,7 @@ A jump table for the options with a shor
 			slashes
 	   unix		with Unix end-of-line format (single <NL>), even when
 			on Windows or DOS
+	   curdir	the window-local directory, if set with `:lcd`
 
 	"slash" and "unix" are useful on Windows when sharing view files
 	with Unix.  The Unix version of Vim cannot source dos format scripts,
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -11695,9 +11695,11 @@ put_view(
     }
 
     /*
-     * Local directory.
+     * Local directory, if the current flag is not view options or the "curdir"
+     * option is included.
      */
-    if (wp->w_localdir != NULL)
+    if (wp->w_localdir != NULL
+			    && (flagp != &vop_flags || (*flagp & SSOP_CURDIR)))
     {
 	if (fputs("lcd ", fd) < 0
 		|| ses_put_fname(fd, wp->w_localdir, flagp) == FAIL
--- a/src/option.c
+++ b/src/option.c
@@ -2926,7 +2926,8 @@ static struct vimoption options[] =
     {"viewoptions", "vop",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_SESSION
 			    (char_u *)&p_vop, PV_NONE,
-			    {(char_u *)"folds,options,cursor", (char_u *)0L}
+			    {(char_u *)"folds,options,cursor,curdir",
+								  (char_u *)0L}
 #else
 			    (char_u *)NULL, PV_NONE,
 			    {(char_u *)0L, (char_u *)0L}
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1289,
+/**/
     1288,
 /**/
     1287,