patch 9.1.1194: filetype: false positive help filetype detection

Problem:  filetype: false positive help filetype detection
Solution: Only detect a file as help if modeline appears either at start
          of line or is preceded by whitespace (zeertzjq).

closes: #16845

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2025-03-10 21:30:29 +01:00
committed by Christian Brabandt
parent c2623824a7
commit 6763b0ee95
3 changed files with 15 additions and 2 deletions

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Mar 08
" Last Change: 2025 Mar 10
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Listen very carefully, I will say this only once
@ -53,7 +53,7 @@ endfunc
" Vim help file, set ft explicitly, because 'modeline' might be off
au BufNewFile,BufRead */doc/*.txt
\ if getline('$') =~ 'vim:.*\<\(ft\|filetype\)=help\>'
\ if getline('$') =~ '\(^\|\s\)vim:.*\<\(ft\|filetype\)=help\>'
\| setf help
\| endif

View File

@ -1634,11 +1634,22 @@ func Test_help_file()
call assert_equal('help', &filetype)
bwipe!
call writefile(['some text', 'Copyright: |manual-copyright| vim:ft=help:'],
\ 'doc/help1.txt', 'D')
split doc/help1.txt
call assert_equal('help', &filetype)
bwipe!
call writefile(['some text'], 'doc/nothelp.txt', 'D')
split doc/nothelp.txt
call assert_notequal('help', &filetype)
bwipe!
call writefile(['some text', '`vim:ft=help`'], 'doc/nothelp1.txt', 'D')
split doc/nothelp1.txt
call assert_notequal('help', &filetype)
bwipe!
filetype off
set modeline&
endfunc

View File

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