patch 9.2.0444: Cannot set 'path' option via modeline

Problem:  Cannot set 'path' option via modeline (zeertzjq, after v9.2.0435)
Solution: Revert the part that disallows setting 'path' via modeline.

closes: #20137

Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt
2026-05-05 19:47:19 +00:00
parent cf947e7ef0
commit 88fb739918
5 changed files with 11 additions and 19 deletions
-3
View File
@@ -6799,9 +6799,6 @@ A jump table for the options with a short description can be found at |Q_op|.
< Replace the ';' with a ':' or whatever separator is used. Note that
this doesn't work when $INCL contains a comma or white space.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'perldll'*
'perldll' string (default depends on the build)
global
+1 -1
View File
@@ -1958,7 +1958,7 @@ static struct vimoption options[] =
(char_u *)&p_pm, PV_NONE,
did_set_backupext_or_patchmode, NULL,
{(char_u *)"", (char_u *)0L} SCTX_INIT},
{"path", "pa", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE|P_COMMA|P_NODUP,
{"path", "pa", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
(char_u *)&p_path, PV_PATH, NULL, NULL,
{
#if defined(AMIGA) || defined(MSWIN)
+8 -1
View File
@@ -165,9 +165,15 @@ endfunc
func Test_find_completion_backtick_in_path()
CheckUnix
CheckExecutable id
set nomodelinestrict modeline
let lines =<< trim END
// vim: set path+=`id>Xrce_marker` :
END
call writefile(lines, 'Xpoc.c', 'D')
new Xpoc.c
setl path+=`id>Xrce_marker`
call assert_match('`id>Xrce_marker`', &path)
" Triggering completion must not execute the backtick command.
call getcompletion('', 'file_in_path')
call assert_false(filereadable('Xrce_marker'))
@@ -176,6 +182,7 @@ func Test_find_completion_backtick_in_path()
bwipe!
call delete('Xrce_marker')
set modelinestrict& modeline&
endfunc
" vim: shiftwidth=2 sts=2 expandtab
-14
View File
@@ -665,18 +665,4 @@ func Test_modeline_strict_cannot_be_set_from_modeline()
let &modeline = modeline
endfunc
" Verify that backticks in 'path' set from a modeline are not executed
func Test_path_modeline()
let lines =<< trim END
// vim: set path+=foobar :
END
call writefile(lines, 'Xpoc.c', 'D')
set nomodelinestrict modeline
call assert_fails('split Xpoc.c', 'E520:')
bwipe!
set modelinestrict& modeline&
endfunc
" vim: shiftwidth=2 sts=2 expandtab
+2
View File
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
444,
/**/
443,
/**/