diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index 2172626dc4..bb2bc2c1c5 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -601,31 +601,36 @@ enddef # For files ending in *.m4, distinguish: # – *.html.m4 files +# - *fvwm2rc*.m4 files # – files in the Autoconf M4 dialect # – files in POSIX M4 export def FTm4() var fname = expand('%:t') var path = expand('%:p:h') - # Case 0: canonical Autoconf file - if fname ==# 'aclocal.m4' - setf config - return - endif - - # Case 1: html.m4 if fname =~# 'html\.m4$' setf htmlm4 return endif - # Case 2: repo heuristic (nearby configure.ac) + if fname =~# 'fvwm2rc' + setf fvwm2m4 + return + endif + + # Canonical Autoconf file + if fname ==# 'aclocal.m4' + setf config + return + endif + + # Repo heuristic for Autoconf M4 (nearby configure.ac) if filereadable(path .. '/../configure.ac') || filereadable(path .. '/configure.ac') setf config return endif - # Case 3: content heuristic (scan first ~200 lines) + # Content heuristic for Autoconf M4 (scan first ~200 lines) # Signals: # - Autoconf macro prefixes: AC_/AM_/AS_/AU_/AT_ var n = 1 @@ -639,7 +644,7 @@ export def FTm4() n += 1 endwhile - # Case 4: default to POSIX M4 + # Default to POSIX M4 setf m4 enddef diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 0c9f341891..35238298a3 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: The Vim Project -" Last Change: 2025 Aug 26 +" Last Change: 2025 Aug 29 " Former Maintainer: Bram Moolenaar " Listen very carefully, I will say this only once @@ -1519,7 +1519,7 @@ au BufNewFile,BufRead *.lsl call dist#ft#FTlsl() au BufNewFile,BufRead *.lss setf lss " M4 -au BufNewFile,BufRead *.m4 call dist#ft#FTm4() +au BufNewFile,BufRead *.m4 call dist#ft#FTm4() au BufNewFile,BufRead .m4_history setf m4 @@ -3190,11 +3190,7 @@ au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm') au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') au BufNewFile,BufRead *fvwm2rc* - \ if expand(":e") == "m4" - \| call s:StarSetf('fvwm2m4') - \|else - \| let b:fvwm_version = 2 | call s:StarSetf('fvwm') - \|endif + \ let b:fvwm_version = 2 | call s:StarSetf('fvwm') " Gedcom au BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom') diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 0d97cfd0c9..6fff0281a8 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -308,7 +308,8 @@ def s:GetFilenameChecks(): dict> fstab: ['fstab', 'mtab'], func: ['file.fc'], fusion: ['file.fusion'], - fvwm: ['/.fvwm/file', 'any/.fvwm/file'], + fvwm: ['/.fvwm/file', 'any/.fvwm/file', '.fvwmrc', 'foo.fvwmrc', 'fvwmrc.foo', '.fvwm2rc', 'foo.fvwm2rc', 'fvwm2rc.foo', 'foo.fvwm95.hook', 'fvwm95.foo.hook'], + fvwm2m4: ['.fvwm2rc.m4', 'foo.fvwm2rc.m4', 'fvwm2rc.foo.m4'], gdb: ['.gdbinit', 'gdbinit', '.cuda-gdbinit', 'cuda-gdbinit', 'file.gdb', '.config/gdbearlyinit', '.gdbearlyinit'], gdmo: ['file.mo', 'file.gdmo'], gdresource: ['file.tscn', 'file.tres'], diff --git a/src/version.c b/src/version.c index afe7c45b61..4a04a97b8d 100644 --- a/src/version.c +++ b/src/version.c @@ -724,6 +724,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1713, /**/ 1712, /**/