diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim index c184bd032d..8781391a52 100644 --- a/runtime/autoload/dist/script.vim +++ b/runtime/autoload/dist/script.vim @@ -264,6 +264,7 @@ def DetectFromText(line1: string) # ELM Mail files elseif line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$' + || line1 =~ '^\creturn-path:\s<.*@.*>$' setl ft=mail # Mason @@ -453,6 +454,12 @@ def DetectFromText(line1: string) elseif line1 =~ '^#n\%($\|\s\)' setl ft=sed + elseif line1 =~ '^#\s\+Reconstructed via infocmp from file:' + setl ft=terminfo + + elseif line1 =~ '^File: .*\.info, Node: .*, \%(Next\|Prev\): .*, Up: \|This is the top of the INFO tree.' + setl ft=info + else var lnum = 1 while getline(lnum) =~ "^? " && lnum < line("$") diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index d9e342b65f..d7acd331e4 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -3024,6 +3024,39 @@ func Test_org_file() filetype off endfunc +func Test_info_file() + filetype on + + call writefile(['File: coreutils.info, Node: Top, Next: Introduction, Up: (dir)', 'D'], 'Xfile', 'D') + split Xfile + call assert_equal('info', &filetype) + bwipe! + + filetype off +endfunc + +func Test_mail_file() + filetype on + + call writefile(['Return-path: ', 'D'], 'Xfile', 'D') + split Xfile + call assert_equal('mail', &filetype) + bwipe! + + filetype off +endfunc + +func Test_terminfo_file() + filetype on + + call writefile(['# Reconstructed via infocmp from file: /etc/terminfo/x/xterm', 'D'], 'Xfile', 'D') + split Xfile + call assert_equal('terminfo', &filetype) + bwipe! + + filetype off +endfunc + " Filetypes detected from names of existing files func Test_pacmanlog() filetype on diff --git a/src/version.c b/src/version.c index e4acba9a5d..d07747c958 100644 --- a/src/version.c +++ b/src/version.c @@ -719,6 +719,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1606, /**/ 1605, /**/