0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.0690: line number of option set by modeline is wrong

Problem:    Line number of option set by modeline is wrong.
Solution:   Do not double the line number. (Ozaki Kiichi, closes #6035)
This commit is contained in:
Bram Moolenaar
2020-05-03 17:19:33 +02:00
parent a38b2b737e
commit 5125874951
3 changed files with 61 additions and 1 deletions

View File

@@ -2460,7 +2460,9 @@ set_option_sctx_idx(int opt_idx, int opt_flags, sctx_T script_ctx)
int indir = (int)options[opt_idx].indir;
sctx_T new_script_ctx = script_ctx;
new_script_ctx.sc_lnum += SOURCING_LNUM;
// Modeline already has the line number set.
if (!(opt_flags & OPT_MODELINE))
new_script_ctx.sc_lnum += SOURCING_LNUM;
// Remember where the option was set. For local options need to do that
// in the buffer or window structure.

View File

@@ -279,3 +279,59 @@ func Test_modeline_fails_modelineexpr()
call s:modeline_fails('tabline', 'tabline=Something()', 'E992:')
call s:modeline_fails('titlestring', 'titlestring=Something()', 'E992:')
endfunc
func Test_modeline_setoption_verbose()
let modeline = &modeline
set modeline
let lines =<< trim END
1 vim:ts=2
2 two
3 three
4 four
5 five
6 six
7 seven
8 eight
END
call writefile(lines, 'Xmodeline')
edit Xmodeline
let info = split(execute('verbose set tabstop?'), "\n")
call assert_match('^\s*Last set from modeline line 1$', info[-1])
bwipe!
let lines =<< trim END
1 one
2 two
3 three
4 vim:ts=4
5 five
6 six
7 seven
8 eight
END
call writefile(lines, 'Xmodeline')
edit Xmodeline
let info = split(execute('verbose set tabstop?'), "\n")
call assert_match('^\s*Last set from modeline line 4$', info[-1])
bwipe!
let lines =<< trim END
1 one
2 two
3 three
4 four
5 five
6 six
7 seven
8 vim:ts=8
END
call writefile(lines, 'Xmodeline')
edit Xmodeline
let info = split(execute('verbose set tabstop?'), "\n")
call assert_match('^\s*Last set from modeline line 8$', info[-1])
bwipe!
let &modeline = modeline
call delete('Xmodeline')
endfunc

View File

@@ -746,6 +746,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
690,
/**/
689,
/**/