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:
@@ -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;
|
int indir = (int)options[opt_idx].indir;
|
||||||
sctx_T new_script_ctx = script_ctx;
|
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
|
// Remember where the option was set. For local options need to do that
|
||||||
// in the buffer or window structure.
|
// in the buffer or window structure.
|
||||||
|
@@ -279,3 +279,59 @@ func Test_modeline_fails_modelineexpr()
|
|||||||
call s:modeline_fails('tabline', 'tabline=Something()', 'E992:')
|
call s:modeline_fails('tabline', 'tabline=Something()', 'E992:')
|
||||||
call s:modeline_fails('titlestring', 'titlestring=Something()', 'E992:')
|
call s:modeline_fails('titlestring', 'titlestring=Something()', 'E992:')
|
||||||
endfunc
|
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
|
||||||
|
@@ -746,6 +746,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
690,
|
||||||
/**/
|
/**/
|
||||||
689,
|
689,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user