patch 9.1.1304: filetype: some man files are not recognized Commit: https://github.com/vim/vim/commit/babdb0554a44a5e406a499bf8c315e660b2a028e Author: Eisuke Kawashima <e-k...@users.noreply.github.com> Date: Tue Apr 15 18:30:05 2025 +0200
patch 9.1.1304: filetype: some man files are not recognized Problem: filetype: some man files are not recognized (e.g. 1p (POSIX commands)) Solution: update the filetype detection pattern and detect more man files as nroff (Eisuke Kawashima) - sections are revised referring to - debian-12:/etc/manpath.config - fedora-41:/etc/man_db.conf - detection logic is improved - detection test is implemented closes: #17117 Signed-off-by: Eisuke Kawashima <e-k...@users.noreply.github.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index 4053e51f0..25c7f571a 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -3,7 +3,7 @@ vim9script # Vim functions for file type detection # # Maintainer: The Vim Project <https://github.com/vim/vim> -# Last Change: 2025 Apr 10 +# Last Change: 2025 Apr 15 # Former Maintainer: Bram Moolenaar <b...@vim.org> # These functions are moved here from runtime/filetype.vim to make startup @@ -595,11 +595,15 @@ enddef # This function checks if one of the first five lines start with a dot. In # that case it is probably an nroff file: 'filetype' is set and 1 is returned. export def FTnroff(): number - if getline(1)[0] .. getline(2)[0] .. getline(3)[0] - .. getline(4)[0] .. getline(5)[0] =~ '\.' - setf nroff - return 1 - endif + var n = 1 + while n < 5 + var line = getline(n) + if line =~ '^\.\S\S\?' + setf nroff + return 1 + endif + n += 1 + endwhile return 0 enddef diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 35726a788..573d2f313 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: The Vim Project <https://github.com/vim/vim> -" Last Change: 2025 Apr 13 +" Last Change: 2025 Apr 15 " Former Maintainer: Bram Moolenaar <b...@vim.org> " Listen very carefully, I will say this only once @@ -1726,7 +1726,7 @@ au BufNewFile,BufRead *.me \ setf nroff | \ endif au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff -au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff() +au BufNewFile,BufRead *.[0-9],*.[013]p,*.[1-8]x,*.3{am,perl,pm,posix,type},*.[nlop] call dist#ft#FTnroff() " Nroff or Objective C++ au BufNewFile,BufRead *.mm call dist#ft#FTmm() diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index a56e1ac02..98dba23eb 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -2889,6 +2889,20 @@ func Test_map_file() filetype off endfunc +func Test_nroff_file() + filetype on + + call writefile(['.TH vim 1 "YYYY Mth DD"'], 'Xfile.1', 'D') + split Xfile.1 + call assert_equal('nroff', &filetype) + bwipe! + + call writefile(['. /etc/profile'], 'Xfile.1', 'D') + split Xfile.1 + call assert_notequal('nroff', &filetype) + bwipe! +endfunc + func Test_org_file() filetype on diff --git a/src/version.c b/src/version.c index e2314ca12..30904d7c0 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 */ +/**/ + 1304, /**/ 1303, /**/ -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1u4jPD-004opH-GR%40256bit.org.