vim-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: vim/vim#20137

88fb739918

Co-authored-by: Christian Brabandt <cb@256bit.org>
(cherry picked from commit d1c3d6fbaa)
This commit is contained in:
zeertzjq
2026-05-06 07:23:16 +08:00
committed by github-actions[bot]
parent b013940391
commit 15a58bb02a
4 changed files with 8 additions and 17 deletions

View File

@@ -4794,7 +4794,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'path'* *'pa'* *E343* *E345* *E347* *E854*
'path' 'pa' string (default ".,,")
global or local to buffer |global-local|
Disallowed in |modeline|. |no-modeline-option|
This is a list of directories which will be searched when using the
|gf|, [f, ]f, ^Wf, |:find|, |:sfind|, |:tabfind| and other commands,
provided that the file being searched for has a relative path (not

View File

@@ -6544,7 +6544,6 @@ local options = {
full_name = 'path',
list = 'comma',
scope = { 'global', 'buf' },
secure = true,
short_desc = N_('list of directories searched with "gf" et.al.'),
tags = { 'E343', 'E345', 'E347', 'E854' },
type = 'string',

View File

@@ -165,9 +165,15 @@ endfunc
func Test_find_completion_backtick_in_path()
CheckUnix
CheckExecutable id
set modeline "nomodelinestrict
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 modeline& "modelinestrict&
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -506,18 +506,4 @@ func Test_modeline_nowrap_lcs_extends()
set equalalways&
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