From 6a7af8e2dbcb768a768831d9e6355c855c215ebc Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 25 Jun 2019 21:34:26 +0200 Subject: patch 8.1.1593: filetype not detected for C++ header files without extension Problem: Filetype not detected for C++ header files without extension. Solution: Recognize the file by the Emacs file mode. (Dmitry Ilyin, closes #4593) --- runtime/scripts.vim | 13 +++++++++---- src/testdir/test_filetype.vim | 2 ++ src/version.c | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/runtime/scripts.vim b/runtime/scripts.vim index ab66c0c0a..8d460cd31 100644 --- a/runtime/scripts.vim +++ b/runtime/scripts.vim @@ -195,7 +195,7 @@ else if s:line1 =~# '^:$' call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim - " Z shell scripts + " Z shell scripts elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' || \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>' set ft=zsh @@ -204,15 +204,20 @@ else elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$' set ft=mail - " Mason + " Mason elseif s:line1 =~# '^<[%&].*>' set ft=mason - " Vim scripts (must have '" vim' as the first line to trigger this) + " Vim scripts (must have '" vim' as the first line to trigger this) elseif s:line1 =~# '^" *[vV]im$' set ft=vim - " MOO + " libcxx and libstdc++ standard library headers like "iostream" do not have + " an extension, recognize the Emacs file mode. + elseif s:line1 =~? '-\*-.*C++.*-\*-' + set ft=cpp + + " MOO elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$' set ft=moo diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 95fb62e71..37d8ceda9 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -586,6 +586,8 @@ let s:script_checks = { \ 'cfengine': [['#!/path/cfengine']], \ 'erlang': [['#!/path/escript']], \ 'haskell': [['#!/path/haskell']], + \ 'cpp': [['// Standard iostream objects -*- C++ -*-'], + \ ['// -*- C++ -*-']], \ } func Test_script_detection() diff --git a/src/version.c b/src/version.c index 5514b4b9c..c25c1ff10 100644 --- a/src/version.c +++ b/src/version.c @@ -777,6 +777,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1593, /**/ 1592, /**/ -- cgit v1.2.1