diff options
-rw-r--r-- | runtime/doc/options.txt | 2 | ||||
-rw-r--r-- | src/nvim/option.c | 3 | ||||
-rw-r--r-- | test/functional/legacy/mksession_spec.lua | 42 |
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) |