From e370141bf41919642061ee2e78340dca84678712 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 7 Apr 2025 21:14:41 +0200 Subject: [PATCH] patch 9.1.1286: filetype: help files not detected when 'iskeyword' includes ":" Problem: Help files not detected when 'iskeyword' includes ":". Solution: Do not use \< and \> in the pattern (zeertzjq). fixes: #17069 closes: #17071 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- runtime/filetype.vim | 2 +- src/testdir/test_filetype.vim | 28 ++++++++++++++++++++++------ src/version.c | 2 ++ 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 59e6a810ba..2d9d3ad6f9 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -53,7 +53,7 @@ endfunc " Vim help file, set ft explicitly, because 'modeline' might be off au BufNewFile,BufRead */doc/*.txt - \ if getline('$') =~ '\(^\|\s\)vim:.*\<\(ft\|filetype\)=help\>' + \ if getline('$') =~ '\%(^\|\s\)vim:\%(.*\%(:\|\s\)\)\?\%(ft\|filetype\)=help\%(:\|\s\|$\)' \| setf help \| endif diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index f6948e6699..e2286abd38 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -1635,20 +1635,36 @@ func Test_haredoc_file() endfunc func Test_help_file() + func! s:Check_help_with_iskeyword(fname) + exe 'split' a:fname + call assert_equal('help', &filetype) + bwipe! + set iskeyword+=: + exe 'split' a:fname + call assert_equal('help', &filetype) + bwipe! + set iskeyword& + endfunc + set nomodeline filetype on call assert_true(mkdir('doc', 'pR')) call writefile(['some text', 'vim:ft=help:'], 'doc/help.txt', 'D') - split doc/help.txt - call assert_equal('help', &filetype) - bwipe! + call s:Check_help_with_iskeyword('doc/help.txt') 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 s:Check_help_with_iskeyword('doc/help1.txt') + + call writefile(['some text', 'vim:noet:ft=help:'], 'doc/help2.txt', 'D') + call s:Check_help_with_iskeyword('doc/help2.txt') + + call writefile(['some text', 'vim: noet ft=help'], 'doc/help3.txt', 'D') + call s:Check_help_with_iskeyword('doc/help3.txt') + + call writefile(['some text', 'vim: ft=help noet'], 'doc/help4.txt', 'D') + call s:Check_help_with_iskeyword('doc/help4.txt') call writefile(['some text'], 'doc/nothelp.txt', 'D') split doc/nothelp.txt diff --git a/src/version.c b/src/version.c index 466fdd5c23..259fbc0e85 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1286, /**/ 1285, /**/