0
0
mirror of https://github.com/vim/vim.git synced 2025-08-26 20:03:41 -04:00

patch 9.1.1606: filetype: a few more files are not recognized

Problem:  filetype: a few more files are not recognized
Solution: guess Mail, Info and Terminfo files by its content
          (lacygoill)

closes: #17880

Signed-off-by: lacygoill <lacygoill@lacygoill.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
lacygoill 2025-08-08 13:17:57 +02:00 committed by Christian Brabandt
parent 8a65a49d50
commit eb2aebeb79
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
3 changed files with 42 additions and 0 deletions

View File

@ -264,6 +264,7 @@ def DetectFromText(line1: string)
# ELM Mail files # ELM Mail files
elseif line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$' elseif line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|| line1 =~ '^\creturn-path:\s<.*@.*>$'
setl ft=mail setl ft=mail
# Mason # Mason
@ -453,6 +454,12 @@ def DetectFromText(line1: string)
elseif line1 =~ '^#n\%($\|\s\)' elseif line1 =~ '^#n\%($\|\s\)'
setl ft=sed 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 else
var lnum = 1 var lnum = 1
while getline(lnum) =~ "^? " && lnum < line("$") while getline(lnum) =~ "^? " && lnum < line("$")

View File

@ -3024,6 +3024,39 @@ func Test_org_file()
filetype off filetype off
endfunc 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: <lgc@debian.home.arpa>', '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 " Filetypes detected from names of existing files
func Test_pacmanlog() func Test_pacmanlog()
filetype on filetype on

View File

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