Patch 8.0.0635
Problem:    When 'ignorecase' is set script detection is inaccurate.
Solution:   Enforce matching case for text. (closes #1753)
Files:      runtime/scripts.vim


*** ../vim-8.0.0634/runtime/scripts.vim 2016-05-21 20:22:48.000000000 +0200
--- runtime/scripts.vim 2017-06-11 17:08:50.802642442 +0200
***************
*** 1,11 ****
  " Vim support file to detect file types in scripts
  "
  " Maintainer: Bram Moolenaar <[email protected]>
! " Last change:        2016 May 21
  
  " This file is called by an autocommand for every file that has just been
  " loaded into a buffer.  It checks if the type of file can be recognized by
  " the file contents.  The autocommand is in $VIMRUNTIME/filetype.vim.
  
  
  " Only do the rest when the FileType autocommand has not been triggered yet.
--- 1,15 ----
  " Vim support file to detect file types in scripts
  "
  " Maintainer: Bram Moolenaar <[email protected]>
! " Last change:        2017 Jun 11
  
  " This file is called by an autocommand for every file that has just been
  " loaded into a buffer.  It checks if the type of file can be recognized by
  " the file contents.  The autocommand is in $VIMRUNTIME/filetype.vim.
+ "
+ " Note that the pattern matches are done with =~# to avoid the value of the
+ " 'ignorecase' option making a difference.  Where case is to be ignored use
+ " =~? instead.  Do not use =~ anywhere.
  
  
  " Only do the rest when the FileType autocommand has not been triggered yet.
***************
*** 28,39 ****
  
  let s:line1 = getline(1)
  
! if s:line1 =~ "^#!"
    " A script that starts with "#!".
  
    " Check for a line like "#!/usr/bin/env VAR=val bash".  Turn it into
    " "#!/usr/bin/bash" to make matching easier.
!   if s:line1 =~ '^#!\s*\S*\<env\s'
      let s:line1 = substitute(s:line1, '\S\+=\S\+', '', 'g')
      let s:line1 = substitute(s:line1, '\<env\s\+', '', '')
    endif
--- 32,43 ----
  
  let s:line1 = getline(1)
  
! if s:line1 =~# "^#!"
    " A script that starts with "#!".
  
    " Check for a line like "#!/usr/bin/env VAR=val bash".  Turn it into
    " "#!/usr/bin/bash" to make matching easier.
!   if s:line1 =~# '^#!\s*\S*\<env\s'
      let s:line1 = substitute(s:line1, '\S\+=\S\+', '', 'g')
      let s:line1 = substitute(s:line1, '\<env\s\+', '', '')
    endif
***************
*** 44,54 ****
    " "#!/usr/bin/env perl [path/args]"
    " If there is no path use the first word: "#!perl [path/args]".
    " Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
!   if s:line1 =~ '^#!\s*\a:[/\\]'
      let s:name = substitute(s:line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
!   elseif s:line1 =~ '^#!.*\<env\>'
      let s:name = substitute(s:line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
!   elseif s:line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
      let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
    else
      let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
--- 48,58 ----
    " "#!/usr/bin/env perl [path/args]"
    " If there is no path use the first word: "#!perl [path/args]".
    " Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
!   if s:line1 =~# '^#!\s*\a:[/\\]'
      let s:name = substitute(s:line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
!   elseif s:line1 =~# '^#!.*\<env\>'
      let s:name = substitute(s:line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
!   elseif s:line1 =~# '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
      let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
    else
      let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
***************
*** 56,71 ****
  
    " tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
    " third line.  Suggested by Steven Atkinson.
!   if getline(3) =~ '^exec wish'
      let s:name = 'wish'
    endif
  
    " Bourne-like shell scripts: bash bash2 ksh ksh93 sh
!   if s:name =~ '^\(bash\d*\|\|ksh\d*\|sh\)\>'
      call SetFileTypeSH(s:line1)       " defined in filetype.vim
  
      " csh scripts
!   elseif s:name =~ '^csh\>'
      if exists("g:filetype_csh")
        call SetFileTypeShell(g:filetype_csh)
      else
--- 60,75 ----
  
    " tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
    " third line.  Suggested by Steven Atkinson.
!   if getline(3) =~# '^exec wish'
      let s:name = 'wish'
    endif
  
    " Bourne-like shell scripts: bash bash2 ksh ksh93 sh
!   if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
      call SetFileTypeSH(s:line1)       " defined in filetype.vim
  
      " csh scripts
!   elseif s:name =~# '^csh\>'
      if exists("g:filetype_csh")
        call SetFileTypeShell(g:filetype_csh)
      else
***************
*** 73,161 ****
      endif
  
      " tcsh scripts
!   elseif s:name =~ '^tcsh\>'
      call SetFileTypeShell("tcsh")
  
      " Z shell scripts
!   elseif s:name =~ '^zsh\>'
      set ft=zsh
  
      " TCL scripts
!   elseif s:name =~ '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
      set ft=tcl
  
      " Expect scripts
!   elseif s:name =~ '^expect\>'
      set ft=expect
  
      " Gnuplot scripts
!   elseif s:name =~ '^gnuplot\>'
      set ft=gnuplot
  
      " Makefiles
!   elseif s:name =~ 'make\>'
      set ft=make
  
      " Lua
!   elseif s:name =~ 'lua'
      set ft=lua
  
      " Perl 6
!   elseif s:name =~ 'perl6'
      set ft=perl6
  
      " Perl
!   elseif s:name =~ 'perl'
      set ft=perl
  
      " PHP
!   elseif s:name =~ 'php'
      set ft=php
  
      " Python
!   elseif s:name =~ 'python'
      set ft=python
  
      " Groovy
!   elseif s:name =~ '^groovy\>'
      set ft=groovy
  
      " Ruby
!   elseif s:name =~ 'ruby'
      set ft=ruby
  
      " BC calculator
!   elseif s:name =~ '^bc\>'
      set ft=bc
  
      " sed
!   elseif s:name =~ 'sed\>'
      set ft=sed
  
      " OCaml-scripts
!   elseif s:name =~ 'ocaml'
      set ft=ocaml
  
      " Awk scripts
!   elseif s:name =~ 'awk\>'
      set ft=awk
  
      " Website MetaLanguage
!   elseif s:name =~ 'wml'
      set ft=wml
  
      " Scheme scripts
!   elseif s:name =~ 'scheme'
      set ft=scheme
  
      " CFEngine scripts
!   elseif s:name =~ 'cfengine'
      set ft=cfengine
  
      " Erlang scripts
!   elseif s:name =~ 'escript'
      set ft=erlang
  
    endif
    unlet s:name
  
--- 77,177 ----
      endif
  
      " tcsh scripts
!   elseif s:name =~# '^tcsh\>'
      call SetFileTypeShell("tcsh")
  
      " Z shell scripts
!   elseif s:name =~# '^zsh\>'
      set ft=zsh
  
      " TCL scripts
!   elseif s:name =~# '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
      set ft=tcl
  
      " Expect scripts
!   elseif s:name =~# '^expect\>'
      set ft=expect
  
      " Gnuplot scripts
!   elseif s:name =~# '^gnuplot\>'
      set ft=gnuplot
  
      " Makefiles
!   elseif s:name =~# 'make\>'
      set ft=make
  
      " Lua
!   elseif s:name =~# 'lua'
      set ft=lua
  
      " Perl 6
!   elseif s:name =~# 'perl6'
      set ft=perl6
  
      " Perl
!   elseif s:name =~# 'perl'
      set ft=perl
  
      " PHP
!   elseif s:name =~# 'php'
      set ft=php
  
      " Python
!   elseif s:name =~# 'python'
      set ft=python
  
      " Groovy
!   elseif s:name =~# '^groovy\>'
      set ft=groovy
  
      " Ruby
!   elseif s:name =~# 'ruby'
      set ft=ruby
  
+     " JavaScript
+   elseif s:name =~# 'node\(js\)\=\>' || s:name =~# 'rhino\>'
+     set ft=javascript
+ 
      " BC calculator
!   elseif s:name =~# '^bc\>'
      set ft=bc
  
      " sed
!   elseif s:name =~# 'sed\>'
      set ft=sed
  
      " OCaml-scripts
!   elseif s:name =~# 'ocaml'
      set ft=ocaml
  
      " Awk scripts
!   elseif s:name =~# 'awk\>'
      set ft=awk
  
      " Website MetaLanguage
!   elseif s:name =~# 'wml'
      set ft=wml
  
      " Scheme scripts
!   elseif s:name =~# 'scheme'
      set ft=scheme
  
      " CFEngine scripts
!   elseif s:name =~# 'cfengine'
      set ft=cfengine
  
      " Erlang scripts
!   elseif s:name =~# 'escript'
      set ft=erlang
  
+     " Haskell
+   elseif s:name =~# 'haskell'
+     set ft=haskell
+ 
+     " Scala
+   elseif s:name =~# 'scala\>'
+     set ft=scala
+ 
    endif
    unlet s:name
  
***************
*** 168,195 ****
    let s:line5 = getline(5)
  
    " Bourne-like shell scripts: sh ksh bash bash2
!   if s:line1 =~ '^:$'
      call SetFileTypeSH(s:line1)       " defined in filetype.vim
  
      " 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
  
    " ELM Mail files
!   elseif s:line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* 
\(19\|20\)\d\d$'
      set ft=mail
  
      " Mason
!   elseif s:line1 =~ '^<[%&].*>'
      set ft=mason
  
      " Vim scripts (must have '" vim' as the first line to trigger this)
!   elseif s:line1 =~ '^" *[vV]im$'
      set ft=vim
  
      " MOO
!   elseif s:line1 =~ '^\*\* LambdaMOO Database, Format Version 
\%([1-3]\>\)\@!\d\+ \*\*$'
      set ft=moo
  
      " Diff file:
--- 184,211 ----
    let s:line5 = getline(5)
  
    " Bourne-like shell scripts: sh ksh bash bash2
!   if s:line1 =~# '^:$'
      call SetFileTypeSH(s:line1)       " defined in filetype.vim
  
      " 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
  
    " ELM Mail files
!   elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* 
\(19\|20\)\d\d$'
      set ft=mail
  
      " Mason
!   elseif s:line1 =~# '^<[%&].*>'
      set ft=mason
  
      " Vim scripts (must have '" vim' as the first line to trigger this)
!   elseif s:line1 =~# '^" *[vV]im$'
      set ft=vim
  
      " MOO
!   elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version 
\%([1-3]\>\)\@!\d\+ \*\*$'
      set ft=moo
  
      " Diff file:
***************
*** 203,231 ****
      " - "=== ", "--- ", "+++ " (bzr diff, common case)
      " - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
      " - "# HG changeset patch" in first line (Mercurial export format)
!   elseif s:line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It 
was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs 
edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
!       \ || (s:line1 =~ '^--- ' && s:line2 =~ '^+++ ')
!       \ || (s:line1 =~ '^\* looking for ' && s:line2 =~ '^\* comparing to ')
!       \ || (s:line1 =~ '^\*\*\* ' && s:line2 =~ '^--- ')
!       \ || (s:line1 =~ '^=== ' && ((s:line2 =~ '^=\{66\}' && s:line3 =~ '^--- 
' && s:line4 =~ '^+++') || (s:line2 =~ '^--- ' && s:line3 =~ '^+++ ')))
!       \ || (s:line1 =~ '^=== \(removed\|added\|renamed\|modified\)')
      set ft=diff
  
      " PostScript Files (must have %!PS as the first line, like a2ps output)
!   elseif s:line1 =~ '^%![ \t]*PS'
      set ft=postscr
  
      " M4 scripts: Guess there is a line that starts with "dnl".
!   elseif s:line1 =~ '^\s*dnl\>'
!       \ || s:line2 =~ '^\s*dnl\>'
!       \ || s:line3 =~ '^\s*dnl\>'
!       \ || s:line4 =~ '^\s*dnl\>'
!       \ || s:line5 =~ '^\s*dnl\>'
      set ft=m4
  
      " AmigaDos scripts
    elseif $TERM == "amiga"
!       \ && (s:line1 =~ "^;" || s:line1 =~ '^\.[bB][rR][aA]')
      set ft=amiga
  
      " SiCAD scripts (must have procn or procd as the first line to trigger 
this)
--- 219,247 ----
      " - "=== ", "--- ", "+++ " (bzr diff, common case)
      " - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
      " - "# HG changeset patch" in first line (Mercurial export format)
!   elseif s:line1 =~# '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It 
was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs 
edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
!       \ || (s:line1 =~# '^--- ' && s:line2 =~# '^+++ ')
!       \ || (s:line1 =~# '^\* looking for ' && s:line2 =~# '^\* comparing to ')
!       \ || (s:line1 =~# '^\*\*\* ' && s:line2 =~# '^--- ')
!       \ || (s:line1 =~# '^=== ' && ((s:line2 =~# '^=\{66\}' && s:line3 =~# 
'^--- ' && s:line4 =~# '^+++') || (s:line2 =~# '^--- ' && s:line3 =~# '^+++ ')))
!       \ || (s:line1 =~# '^=== \(removed\|added\|renamed\|modified\)')
      set ft=diff
  
      " PostScript Files (must have %!PS as the first line, like a2ps output)
!   elseif s:line1 =~# '^%![ \t]*PS'
      set ft=postscr
  
      " M4 scripts: Guess there is a line that starts with "dnl".
!   elseif s:line1 =~# '^\s*dnl\>'
!       \ || s:line2 =~# '^\s*dnl\>'
!       \ || s:line3 =~# '^\s*dnl\>'
!       \ || s:line4 =~# '^\s*dnl\>'
!       \ || s:line5 =~# '^\s*dnl\>'
      set ft=m4
  
      " AmigaDos scripts
    elseif $TERM == "amiga"
!       \ && (s:line1 =~# "^;" || s:line1 =~? '^\.bra')
      set ft=amiga
  
      " SiCAD scripts (must have procn or procd as the first line to trigger 
this)
***************
*** 233,247 ****
      set ft=sicad
  
      " Purify log files start with "****  Purify"
!   elseif s:line1 =~ '^\*\*\*\*  Purify'
      set ft=purifylog
  
      " XML
!   elseif s:line1 =~ '<?\s*xml.*?>'
      set ft=xml
  
      " XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
!   elseif s:line1 =~ '\<DTD\s\+XHTML\s'
      set ft=xhtml
  
      " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
--- 249,263 ----
      set ft=sicad
  
      " Purify log files start with "****  Purify"
!   elseif s:line1 =~# '^\*\*\*\*  Purify'
      set ft=purifylog
  
      " XML
!   elseif s:line1 =~# '<?\s*xml.*?>'
      set ft=xml
  
      " XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
!   elseif s:line1 =~# '\<DTD\s\+XHTML\s'
      set ft=xhtml
  
      " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
***************
*** 250,345 ****
      set ft=html
  
      " PDF
!   elseif s:line1 =~ '^%PDF-'
      set ft=pdf
  
      " XXD output
!   elseif s:line1 =~ '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
      set ft=xxd
  
      " RCS/CVS log output
!   elseif s:line1 =~ '^RCS file:' || s:line2 =~ '^RCS file:'
      set ft=rcslog
  
      " CVS commit
!   elseif s:line2 =~ '^CVS:' || getline("$") =~ '^CVS: '
      set ft=cvs
  
      " Prescribe
!   elseif s:line1 =~ '^!R!'
      set ft=prescribe
  
      " Send-pr
!   elseif s:line1 =~ '^SEND-PR:'
      set ft=sendpr
  
      " SNNS files
!   elseif s:line1 =~ '^SNNS network definition file'
      set ft=snnsnet
!   elseif s:line1 =~ '^SNNS pattern definition file'
      set ft=snnspat
!   elseif s:line1 =~ '^SNNS result file'
      set ft=snnsres
  
      " Virata
!   elseif s:line1 =~ '^%.\{-}[Vv]irata'
!       \ || s:line2 =~ '^%.\{-}[Vv]irata'
!       \ || s:line3 =~ '^%.\{-}[Vv]irata'
!       \ || s:line4 =~ '^%.\{-}[Vv]irata'
!       \ || s:line5 =~ '^%.\{-}[Vv]irata'
      set ft=virata
  
      " Strace
!   elseif s:line1 =~ '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~ 
'^__libc_start_main'
      set ft=strace
  
      " VSE JCL
!   elseif s:line1 =~ '^\* $$ JOB\>' || s:line1 =~ '^// *JOB\>'
      set ft=vsejcl
  
      " TAK and SINDA
!   elseif s:line4 =~ 'K & K  Associates' || s:line2 =~ 'TAK 2000'
      set ft=takout
!   elseif s:line3 =~ 'S Y S T E M S   I M P R O V E D '
      set ft=sindaout
!   elseif getline(6) =~ 'Run Date: '
      set ft=takcmp
!   elseif getline(9) =~ 'Node    File  1'
      set ft=sindacmp
  
      " DNS zone files
!   elseif s:line1.s:line2.s:line3.s:line4 =~ '^; <<>> DiG [0-9.]\+ 
<<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
      set ft=bindzone
  
      " BAAN
!   elseif s:line1 =~ '|\*\{1,80}' && s:line2 =~ 'VRC '
!       \ || s:line2 =~ '|\*\{1,80}' && s:line3 =~ 'VRC '
      set ft=baan
  
    " Valgrind
!   elseif s:line1 =~ '^==\d\+== valgrind' || s:line3 =~ '^==\d\+== Using 
valgrind'
      set ft=valgrind
  
    " Go docs
!   elseif s:line1 =~ '^PACKAGE DOCUMENTATION$'
      set ft=godoc
  
    " Renderman Interface Bytestream
!   elseif s:line1 =~ '^##RenderMan'
      set ft=rib
  
    " Scheme scripts
!   elseif s:line1 =~ 'exec\s\+\S*scheme' || s:line2 =~ 'exec\s\+\S*scheme'
      set ft=scheme
  
    " Git output
!   elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
      set ft=git
  
     " Gprof (gnu profiler)
     elseif s:line1 == 'Flat profile:'
       \ && s:line2 == ''
!      \ && s:line3 =~ '^Each sample counts as .* seconds.$'
       set ft=gprof
  
    " Erlang terms
--- 266,361 ----
      set ft=html
  
      " PDF
!   elseif s:line1 =~# '^%PDF-'
      set ft=pdf
  
      " XXD output
!   elseif s:line1 =~# '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
      set ft=xxd
  
      " RCS/CVS log output
!   elseif s:line1 =~# '^RCS file:' || s:line2 =~# '^RCS file:'
      set ft=rcslog
  
      " CVS commit
!   elseif s:line2 =~# '^CVS:' || getline("$") =~# '^CVS: '
      set ft=cvs
  
      " Prescribe
!   elseif s:line1 =~# '^!R!'
      set ft=prescribe
  
      " Send-pr
!   elseif s:line1 =~# '^SEND-PR:'
      set ft=sendpr
  
      " SNNS files
!   elseif s:line1 =~# '^SNNS network definition file'
      set ft=snnsnet
!   elseif s:line1 =~# '^SNNS pattern definition file'
      set ft=snnspat
!   elseif s:line1 =~# '^SNNS result file'
      set ft=snnsres
  
      " Virata
!   elseif s:line1 =~# '^%.\{-}[Vv]irata'
!       \ || s:line2 =~# '^%.\{-}[Vv]irata'
!       \ || s:line3 =~# '^%.\{-}[Vv]irata'
!       \ || s:line4 =~# '^%.\{-}[Vv]irata'
!       \ || s:line5 =~# '^%.\{-}[Vv]irata'
      set ft=virata
  
      " Strace
!   elseif s:line1 =~# '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~# 
'^__libc_start_main'
      set ft=strace
  
      " VSE JCL
!   elseif s:line1 =~# '^\* $$ JOB\>' || s:line1 =~# '^// *JOB\>'
      set ft=vsejcl
  
      " TAK and SINDA
!   elseif s:line4 =~# 'K & K  Associates' || s:line2 =~# 'TAK 2000'
      set ft=takout
!   elseif s:line3 =~# 'S Y S T E M S   I M P R O V E D '
      set ft=sindaout
!   elseif getline(6) =~# 'Run Date: '
      set ft=takcmp
!   elseif getline(9) =~# 'Node    File  1'
      set ft=sindacmp
  
      " DNS zone files
!   elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+ 
<<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
      set ft=bindzone
  
      " BAAN
!   elseif s:line1 =~# '|\*\{1,80}' && s:line2 =~# 'VRC '
!       \ || s:line2 =~# '|\*\{1,80}' && s:line3 =~# 'VRC '
      set ft=baan
  
    " Valgrind
!   elseif s:line1 =~# '^==\d\+== valgrind' || s:line3 =~# '^==\d\+== Using 
valgrind'
      set ft=valgrind
  
    " Go docs
!   elseif s:line1 =~# '^PACKAGE DOCUMENTATION$'
      set ft=godoc
  
    " Renderman Interface Bytestream
!   elseif s:line1 =~# '^##RenderMan'
      set ft=rib
  
    " Scheme scripts
!   elseif s:line1 =~# 'exec\s\+\S*scheme' || s:line2 =~# 'exec\s\+\S*scheme'
      set ft=scheme
  
    " Git output
!   elseif s:line1 =~# '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
      set ft=git
  
     " Gprof (gnu profiler)
     elseif s:line1 == 'Flat profile:'
       \ && s:line2 == ''
!      \ && s:line3 =~# '^Each sample counts as .* seconds.$'
       set ft=gprof
  
    " Erlang terms
***************
*** 350,367 ****
    " CVS diff
    else
      let s:lnum = 1
!     while getline(s:lnum) =~ "^? " && s:lnum < line("$")
        let s:lnum += 1
      endwhile
!     if getline(s:lnum) =~ '^Index:\s\+\f\+$'
        set ft=diff
  
        " locale input files: Formal Definitions of Cultural Conventions
        " filename must be like en_US, fr_FR@euro or en_US.UTF-8
!     elseif expand("%") =~ '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
        let s:lnum = 1
        while s:lnum < 100 && s:lnum < line("$")
!       if getline(s:lnum) =~ 
'^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
          setf fdcc
          break
        endif
--- 366,383 ----
    " CVS diff
    else
      let s:lnum = 1
!     while getline(s:lnum) =~# "^? " && s:lnum < line("$")
        let s:lnum += 1
      endwhile
!     if getline(s:lnum) =~# '^Index:\s\+\f\+$'
        set ft=diff
  
        " locale input files: Formal Definitions of Cultural Conventions
        " filename must be like en_US, fr_FR@euro or en_US.UTF-8
!     elseif expand("%") =~# '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
        let s:lnum = 1
        while s:lnum < 100 && s:lnum < line("$")
!       if getline(s:lnum) =~# 
'^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
          setf fdcc
          break
        endif
*** ../vim-8.0.0634/src/version.c       2017-06-11 16:07:20.702719866 +0200
--- src/version.c       2017-06-11 17:09:14.326488856 +0200
***************
*** 766,767 ****
--- 766,769 ----
  {   /* Add new patch number below this line */
+ /**/
+     635,
  /**/

-- 
"So this is it," said Arthur, "we are going to die."
"Yes," said Ford, "except...no!  Wait a minute!"  He suddenly lunged across
the chamber at something behind Arthur's line of vision.  "What's this
switch?" he cried.
"What?   Where?" cried Arthur, twisting around.
"No, I was only fooling," said Ford, "we are going to die after all."
                -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui