aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/options.txt2
-rw-r--r--src/nvim/option.c3
-rw-r--r--test/functional/legacy/mksession_spec.lua42
3 files changed, 45 insertions, 2 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 60fc16f7e4..cc9696e536 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -5052,7 +5052,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global values for local options)
options all options and mappings (also global values for local
options)
- skiprtp exclude 'runtimepath' from the options
+ skiprtp exclude 'runtimepath' and 'packpath' from the options
resize size of the Vim window: 'lines' and 'columns'
sesdir the directory in which the session file is located
will become the current directory (useful with
diff --git a/src/nvim/option.c b/src/nvim/option.c
index b33571ccc2..1454af1a73 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -5232,7 +5232,8 @@ int makeset(FILE *fd, int opt_flags, int local_only)
continue;
}
- if ((opt_flags & OPT_SKIPRTP) && p->var == (char_u *)&p_rtp) {
+ if ((opt_flags & OPT_SKIPRTP)
+ && (p->var == (char_u *)&p_rtp || p->var == (char_u *)&p_pp)) {
continue;
}
diff --git a/test/functional/legacy/mksession_spec.lua b/test/functional/legacy/mksession_spec.lua
new file mode 100644
index 0000000000..a2af891107
--- /dev/null
+++ b/test/functional/legacy/mksession_spec.lua
@@ -0,0 +1,42 @@
+local helpers = require('test.functional.helpers')(after_each)
+local clear = helpers.clear
+local command = helpers.command
+local funcs = helpers.funcs
+local eq = helpers.eq
+
+describe('mksession', function()
+ before_each(clear)
+
+ after_each(function()
+ os.remove('Xtest_mks.out')
+ end)
+
+ it('supports "skiprtp" value', function()
+ command('set sessionoptions&vi')
+ command('set rtp+=$HOME')
+ command('set pp+=$HOME')
+ command('mksession! Xtest_mks.out')
+ local found_rtp = 0
+ local found_pp = 0
+ for _, line in pairs(funcs.readfile('Xtest_mks.out', 'b')) do
+ if line:find('set runtimepath') then
+ found_rtp = found_rtp + 1
+ end
+ if line:find('set packpath') then
+ found_pp = found_pp + 1
+ end
+ end
+ eq(1, found_rtp)
+ eq(1, found_pp)
+
+ command('set sessionoptions+=skiprtp')
+ command('mksession! Xtest_mks.out')
+ local found_rtp_or_pp = 0
+ for _, line in pairs(funcs.readfile('Xtest_mks.out', 'b')) do
+ if line:find('set runtimepath') or line:find('set packpath') then
+ found_rtp_or_pp = found_rtp_or_pp + 1
+ end
+ end
+ eq(0, found_rtp_or_pp)
+ end)
+end)