summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-11-11 18:16:48 +0100
committerBram Moolenaar <Bram@vim.org>2017-11-11 18:16:48 +0100
commit13e904199c2af6aac9b289a7f520d8e16f6e478a (patch)
tree0c1b860753be379999ff135050a4454e03c530e9
parentae147ab2d7649e7a0bcf11b9f3db1900c1a4d594 (diff)
patch 8.0.1289: mkview always includes the local directoryv8.0.1289
Problem: Mkview always includes the local directory. Solution: Add the "curdir" value in 'viewoptions'. (Eric Roberts, closes #2316)
-rw-r--r--runtime/doc/options.txt3
-rw-r--r--src/ex_docmd.c6
-rw-r--r--src/option.c3
-rw-r--r--src/version.c2
4 files changed, 10 insertions, 4 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 28b545721a..33dfea09ab 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -8387,7 +8387,7 @@ A jump table for the options with a short description can be found at |Q_op|.
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 short description can be found at |Q_op|.
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,
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 547d1acdbd..84a72e112b 100644
--- 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
diff --git a/src/option.c b/src/option.c
index ceafea389e..4f25c1ff44 100644
--- 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}
diff --git a/src/version.c b/src/version.c
index ee1974541d..41bfa749bb 100644
--- 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,