]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1194: filetype: false positive help filetype detection v9.1.1194
authorzeertzjq <zeertzjq@outlook.com>
Mon, 10 Mar 2025 20:30:29 +0000 (21:30 +0100)
committerChristian Brabandt <cb@256bit.org>
Mon, 10 Mar 2025 20:30:29 +0000 (21:30 +0100)
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>
runtime/filetype.vim
src/testdir/test_filetype.vim
src/version.c

index 0ee875ca73eb7b640d09be4c4d623469d0a4b0fb..77ca3a3c72c249055f5996b1d3492a7575f90dca 100644 (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
 
index ae69a04e41ef91aeb42642654cf5b52d29b136da..84a4864a41b19fc7443261cf176cc06a314d9be3 100644 (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
index bc21b037e3b930b0007a3367c2962a08aeb15437..33758889dd7934036710a71d60c8ed172c5f9370 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1194,
 /**/
     1193,
 /**/