vim-patch:8.2.2778: problem restoring 'packpath' in session

Problem:    Problem restoring 'packpath' in session.
Solution:   Let "skiprtp" also apply to 'packpath'.
d23b714d8b

Port Test_mksession_skiprtp() to lua functional test.
This commit is contained in:
Jan Edmund Lazo 2021-05-22 15:41:34 -04:00
parent 8415615b59
commit 59d550345d
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
3 changed files with 45 additions and 2 deletions

View File

@ -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) global values for local options)
options all options and mappings (also global values for local options all options and mappings (also global values for local
options) options)
skiprtp exclude 'runtimepath' from the options skiprtp exclude 'runtimepath' and 'packpath' from the options
resize size of the Vim window: 'lines' and 'columns' resize size of the Vim window: 'lines' and 'columns'
sesdir the directory in which the session file is located sesdir the directory in which the session file is located
will become the current directory (useful with will become the current directory (useful with

View File

@ -5232,7 +5232,8 @@ int makeset(FILE *fd, int opt_flags, int local_only)
continue; 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; continue;
} }

View File

@ -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)