forked from aniani/vim
patch 8.2.3384: cannot disable modeline for an individual file
Problem: Cannot disable modeline for an individual file. Solution: Recognize "nomodeline" in a modeline. (Hu Jialun, closes #8798)
This commit is contained in:
committed by
Bram Moolenaar
parent
9aecf79c45
commit
9dcd349ca8
@@ -5446,12 +5446,12 @@ do_modelines(int flags)
|
||||
return;
|
||||
|
||||
++entered;
|
||||
for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count && lnum <= nmlines;
|
||||
for (lnum = 1; curbuf->b_p_ml && lnum <= curbuf->b_ml.ml_line_count && lnum <= nmlines;
|
||||
++lnum)
|
||||
if (chk_modeline(lnum, flags) == FAIL)
|
||||
nmlines = 0;
|
||||
|
||||
for (lnum = curbuf->b_ml.ml_line_count; lnum > 0 && lnum > nmlines
|
||||
for (lnum = curbuf->b_ml.ml_line_count; curbuf->b_p_ml && lnum > 0 && lnum > nmlines
|
||||
&& lnum > curbuf->b_ml.ml_line_count - nmlines; --lnum)
|
||||
if (chk_modeline(lnum, flags) == FAIL)
|
||||
nmlines = 0;
|
||||
|
@@ -360,4 +360,12 @@ func Test_modeline_diff_buffer()
|
||||
bw
|
||||
endfunc
|
||||
|
||||
func Test_modeline_disable()
|
||||
set modeline
|
||||
call writefile(['vim: sw=2', 'vim: nomodeline', 'vim: sw=3'], 'Xmodeline_disable')
|
||||
edit Xmodeline_disable
|
||||
call assert_equal(2, &sw)
|
||||
call delete('Xmodeline_disable')
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@@ -755,6 +755,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3384,
|
||||
/**/
|
||||
3383,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user