Patch 8.0.1285
Problem: Distributed autoload files may clash with user files. (Andy
Wokula)
Solution: Use the "autoload/dist" directory.
Files: runtime/filetype.vim, runtime/autoload/filetype.vim,
runtime/autoload/dist/ft.vim, runtime/scripts.vim, Filelist,
src/Makefile, nsis/gvim.nsi
*** ../vim-8.0.1284/runtime/filetype.vim 2017-11-09 21:05:27.266425176
+0100
--- runtime/filetype.vim 2017-11-11 15:19:06.847389631 +0100
***************
*** 1,7 ****
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <[email protected]>
! " Last Change: 2017 Nov 09
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
--- 1,7 ----
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <[email protected]>
! " Last Change: 2017 Nov 11
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
***************
*** 52,58 ****
au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
" Abaqus or Trasys
! au BufNewFile,BufRead *.inp call filetype#Check_inp()
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
--- 52,58 ----
au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
" Abaqus or Trasys
! au BufNewFile,BufRead *.inp call dist#ft#Check_inp()
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
***************
*** 154,160 ****
" Assembly (all kinds)
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
! au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call filetype#FTasm()
" Macro (VAX)
au BufNewFile,BufRead *.mar setf vmasm
--- 154,160 ----
" Assembly (all kinds)
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
! au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm()
" Macro (VAX)
au BufNewFile,BufRead *.mar setf vmasm
***************
*** 184,190 ****
au BufNewFile,BufRead *.mch,*.ref,*.imp setf b
" BASIC or Visual Basic
! au BufNewFile,BufRead *.bas call filetype#FTVB("basic")
" Visual Basic Script (close to Visual Basic) or Visual Basic .NET
au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb
--- 184,190 ----
au BufNewFile,BufRead *.mch,*.ref,*.imp setf b
" BASIC or Visual Basic
! au BufNewFile,BufRead *.bas call dist#ft#FTVB("basic")
" Visual Basic Script (close to Visual Basic) or Visual Basic .NET
au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb
***************
*** 202,208 ****
\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif
" Batch file for 4DOS
! au BufNewFile,BufRead *.btm call filetype#FTbtm()
" BC calculator
au BufNewFile,BufRead *.bc setf bc
--- 202,208 ----
\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif
" Batch file for 4DOS
! au BufNewFile,BufRead *.btm call dist#ft#FTbtm()
" BC calculator
au BufNewFile,BufRead *.bc setf bc
***************
*** 222,228 ****
" BIND zone
au BufNewFile,BufRead named.root setf bindzone
! au BufNewFile,BufRead *.db call filetype#BindzoneCheck('')
" Blank
au BufNewFile,BufRead *.bl setf blank
--- 222,228 ----
" BIND zone
au BufNewFile,BufRead named.root setf bindzone
! au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('')
" Blank
au BufNewFile,BufRead *.bl setf blank
***************
*** 238,244 ****
endif
" C or lpc
! au BufNewFile,BufRead *.c call filetype#FTlpc()
" Calendar
au BufNewFile,BufRead calendar setf calendar
--- 238,244 ----
endif
" C or lpc
! au BufNewFile,BufRead *.c call dist#ft#FTlpc()
" Calendar
au BufNewFile,BufRead calendar setf calendar
***************
*** 292,298 ****
" .h files can be C, Ch C++, ObjC or ObjC++.
" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is
" detected automatically.
! au BufNewFile,BufRead *.h call filetype#FTheader()
" Ch (CHscript)
au BufNewFile,BufRead *.chf setf ch
--- 292,298 ----
" .h files can be C, Ch C++, ObjC or ObjC++.
" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is
" detected automatically.
! au BufNewFile,BufRead *.h call dist#ft#FTheader()
" Ch (CHscript)
au BufNewFile,BufRead *.chf setf ch
***************
*** 326,332 ****
au BufNewFile,BufRead *..ch setf chill
" Changes for WEB and CWEB or CHILL
! au BufNewFile,BufRead *.ch call filetype#FTchange()
" ChordPro
au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf
chordpro
--- 326,332 ----
au BufNewFile,BufRead *..ch setf chill
" Changes for WEB and CWEB or CHILL
! au BufNewFile,BufRead *.ch call dist#ft#FTchange()
" ChordPro
au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf
chordpro
***************
*** 338,344 ****
au BufNewFile,BufRead *.eni setf cl
" Clever or dtd
! au BufNewFile,BufRead *.ent call filetype#FTent()
" Clipper (or FoxPro; could also be eviews)
au BufNewFile,BufRead *.prg
--- 338,344 ----
au BufNewFile,BufRead *.eni setf cl
" Clever or dtd
! au BufNewFile,BufRead *.ent call dist#ft#FTent()
" Clipper (or FoxPro; could also be eviews)
au BufNewFile,BufRead *.prg
***************
*** 393,401 ****
au BufNewFile,BufRead *Eterm/*.cfg setf eterm
" Euphoria 3 or 4
! au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call
filetype#EuphoriaCheck()
if has("fname_case")
! au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call
filetype#EuphoriaCheck()
endif
" Lynx config files
--- 393,401 ----
au BufNewFile,BufRead *Eterm/*.cfg setf eterm
" Euphoria 3 or 4
! au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call dist#ft#EuphoriaCheck()
if has("fname_case")
! au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call
dist#ft#EuphoriaCheck()
endif
" Lynx config files
***************
*** 442,448 ****
au BufNewFile,BufRead *.desc setf desc
" the D language or dtrace
! au BufNewFile,BufRead *.d call filetype#DtraceCheck()
" Desktop files
au BufNewFile,BufRead *.desktop,.directory setf desktop
--- 442,448 ----
au BufNewFile,BufRead *.desc setf desc
" the D language or dtrace
! au BufNewFile,BufRead *.d call dist#ft#DtraceCheck()
" Desktop files
au BufNewFile,BufRead *.desktop,.directory setf desktop
***************
*** 474,480 ****
\ endif
" DCL (Digital Command Language - vms) or DNS zone file
! au BufNewFile,BufRead *.com call
filetype#BindzoneCheck('dcl')
" DOT
au BufNewFile,BufRead *.dot setf dot
--- 474,480 ----
\ endif
" DCL (Digital Command Language - vms) or DNS zone file
! au BufNewFile,BufRead *.com call
dist#ft#BindzoneCheck('dcl')
" DOT
au BufNewFile,BufRead *.dot setf dot
***************
*** 522,528 ****
au BufNewFile,BufRead *.ecd setf ecd
" Eiffel or Specman or Euphoria
! au BufNewFile,BufRead *.e,*.E call filetype#FTe()
" Elinks configuration
au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks
--- 522,528 ----
au BufNewFile,BufRead *.ecd setf ecd
" Eiffel or Specman or Euphoria
! au BufNewFile,BufRead *.e,*.E call dist#ft#FTe()
" Elinks configuration
au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks
***************
*** 695,701 ****
au BufNewFile,BufRead *.t.html setf tilde
" HTML (.shtml and .stm for server side)
! au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call filetype#FThtml()
" HTML with Ruby - eRuby
au BufNewFile,BufRead *.erb,*.rhtml setf eruby
--- 695,701 ----
au BufNewFile,BufRead *.t.html setf tilde
" HTML (.shtml and .stm for server side)
! au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml()
" HTML with Ruby - eRuby
au BufNewFile,BufRead *.erb,*.rhtml setf eruby
***************
*** 722,728 ****
au BufNewFile,BufRead *.icn setf icon
" IDL (Interface Description Language)
! au BufNewFile,BufRead *.idl call filetype#FTidl()
" Microsoft IDL (Interface Description Language) Also *.idl
" MOF = WMI (Windows Management Instrumentation) Managed Object Format
--- 722,728 ----
au BufNewFile,BufRead *.icn setf icon
" IDL (Interface Description Language)
! au BufNewFile,BufRead *.idl call dist#ft#FTidl()
" Microsoft IDL (Interface Description Language) Also *.idl
" MOF = WMI (Windows Management Instrumentation) Managed Object Format
***************
*** 733,742 ****
" Indent profile (must come before IDL *.pro!)
au BufNewFile,BufRead .indent.pro setf indent
! au BufNewFile,BufRead indent.pro call
filetype#ProtoCheck('indent')
" IDL (Interactive Data Language)
! au BufNewFile,BufRead *.pro call
filetype#ProtoCheck('idlang')
" Indent RC
au BufNewFile,BufRead indentrc setf indent
--- 733,742 ----
" Indent profile (must come before IDL *.pro!)
au BufNewFile,BufRead .indent.pro setf indent
! au BufNewFile,BufRead indent.pro call
dist#ft#ProtoCheck('indent')
" IDL (Interactive Data Language)
! au BufNewFile,BufRead *.pro call
dist#ft#ProtoCheck('idlang')
" Indent RC
au BufNewFile,BufRead indentrc setf indent
***************
*** 950,956 ****
au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason
" Mathematica, Matlab, Murphi or Objective C
! au BufNewFile,BufRead *.m call filetype#FTm()
" Mathematica notebook
au BufNewFile,BufRead *.nb setf mma
--- 950,956 ----
au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason
" Mathematica, Matlab, Murphi or Objective C
! au BufNewFile,BufRead *.m call dist#ft#FTm()
" Mathematica notebook
au BufNewFile,BufRead *.nb setf mma
***************
*** 980,986 ****
au BufNewFile,BufRead *.mix,*.mixal setf mix
" MMIX or VMS makefile
! au BufNewFile,BufRead *.mms call filetype#FTmms()
" Symbian meta-makefile definition (MMP)
au BufNewFile,BufRead *.mmp setf mmp
--- 980,986 ----
au BufNewFile,BufRead *.mix,*.mixal setf mix
" MMIX or VMS makefile
! au BufNewFile,BufRead *.mms call dist#ft#FTmms()
" Symbian meta-makefile definition (MMP)
au BufNewFile,BufRead *.mmp setf mmp
***************
*** 1068,1077 ****
\ setf nroff |
\ endif
au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff
! au BufNewFile,BufRead *.[1-9] call filetype#FTnroff()
" Nroff or Objective C++
! au BufNewFile,BufRead *.mm call filetype#FTmm()
" Not Quite C
au BufNewFile,BufRead *.nqc setf nqc
--- 1068,1077 ----
\ setf nroff |
\ endif
au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff
! au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff()
" Nroff or Objective C++
! au BufNewFile,BufRead *.mm call dist#ft#FTmm()
" Not Quite C
au BufNewFile,BufRead *.nqc setf nqc
***************
*** 1126,1134 ****
" Perl
if has("fname_case")
! au BufNewFile,BufRead *.pl,*.PL call filetype#FTpl()
else
! au BufNewFile,BufRead *.pl call filetype#FTpl()
endif
au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl
au BufNewFile,BufRead *.p6,*.pm6,*.pl6 setf perl6
--- 1126,1134 ----
" Perl
if has("fname_case")
! au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl()
else
! au BufNewFile,BufRead *.pl call dist#ft#FTpl()
endif
au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl
au BufNewFile,BufRead *.p6,*.pm6,*.pl6 setf perl6
***************
*** 1195,1201 ****
au BufNewFile,BufRead .povrayrc setf povini
" Povray, PHP or assembly
! au BufNewFile,BufRead *.inc call filetype#FTinc()
" Printcap and Termcap
au BufNewFile,BufRead *printcap
--- 1195,1201 ----
au BufNewFile,BufRead .povrayrc setf povini
" Povray, PHP or assembly
! au BufNewFile,BufRead *.inc call dist#ft#FTinc()
" Printcap and Termcap
au BufNewFile,BufRead *printcap
***************
*** 1224,1236 ****
au BufNewFile,BufRead .procmail,.procmailrc setf procmail
" Progress or CWEB
! au BufNewFile,BufRead *.w call filetype#FTprogress_cweb()
" Progress or assembly
! au BufNewFile,BufRead *.i call filetype#FTprogress_asm()
" Progress or Pascal
! au BufNewFile,BufRead *.p call
filetype#FTprogress_pascal()
" Software Distributor Product Specification File (POSIX 1387.2-1995)
au BufNewFile,BufRead *.psf setf psf
--- 1224,1236 ----
au BufNewFile,BufRead .procmail,.procmailrc setf procmail
" Progress or CWEB
! au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb()
" Progress or assembly
! au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm()
" Progress or Pascal
! au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal()
" Software Distributor Product Specification File (POSIX 1387.2-1995)
au BufNewFile,BufRead *.psf setf psf
***************
*** 1316,1322 ****
endif
" Rexx, Rebol or R
! au BufNewFile,BufRead *.r,*.R call filetype#FTr()
" Remind
au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind
--- 1316,1322 ----
endif
" Rexx, Rebol or R
! au BufNewFile,BufRead *.r,*.R call dist#ft#FTr()
" Remind
au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind
***************
*** 1412,1418 ****
au BufNewFile,BufRead sendmail.cf setf sm
" Sendmail .mc files are actually m4. Could also be MS Message text file.
! au BufNewFile,BufRead *.mc call filetype#McSetf()
" Services
au BufNewFile,BufRead */etc/services setf services
--- 1412,1418 ----
au BufNewFile,BufRead sendmail.cf setf sm
" Sendmail .mc files are actually m4. Could also be MS Message text file.
! au BufNewFile,BufRead *.mc call dist#ft#McSetf()
" Services
au BufNewFile,BufRead */etc/services setf services
***************
*** 1453,1475 ****
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
! au BufNewFile,BufRead
.bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD*
call filetype#SetFileTypeSH("bash")
! au BufNewFile,BufRead .kshrc*,*.ksh call filetype#SetFileTypeSH("ksh")
! au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call
filetype#SetFileTypeSH(getline(1))
" Shell script (Arch Linux) or PHP file (Drupal)
au BufNewFile,BufRead *.install
\ if getline(1) =~ '<?php' |
\ setf php |
\ else |
! \ call filetype#SetFileTypeSH("bash") |
\ endif
" tcsh scripts
! au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login call
filetype#SetFileTypeShell("tcsh")
" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
! au BufNewFile,BufRead
.login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias call filetype#CSH()
" Z-Shell script
au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh
--- 1453,1475 ----
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
! au BufNewFile,BufRead
.bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD*
call dist#ft#SetFileTypeSH("bash")
! au BufNewFile,BufRead .kshrc*,*.ksh call dist#ft#SetFileTypeSH("ksh")
! au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call
dist#ft#SetFileTypeSH(getline(1))
" Shell script (Arch Linux) or PHP file (Drupal)
au BufNewFile,BufRead *.install
\ if getline(1) =~ '<?php' |
\ setf php |
\ else |
! \ call dist#ft#SetFileTypeSH("bash") |
\ endif
" tcsh scripts
! au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login call
dist#ft#SetFileTypeShell("tcsh")
" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
! au BufNewFile,BufRead
.login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
" Z-Shell script
au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh
***************
*** 1540,1546 ****
" Snort Configuration
au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog
! au BufNewFile,BufRead *.rules call filetype#FTRules()
" Spec (Linux RPM)
au BufNewFile,BufRead *.spec setf spec
--- 1540,1546 ----
" Snort Configuration
au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog
! au BufNewFile,BufRead *.rules call dist#ft#FTRules()
" Spec (Linux RPM)
au BufNewFile,BufRead *.spec setf spec
***************
*** 1564,1570 ****
au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql
" SQL
! au BufNewFile,BufRead *.sql call filetype#SQL()
" SQLJ
au BufNewFile,BufRead *.sqlj setf sqlj
--- 1564,1570 ----
au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql
" SQL
! au BufNewFile,BufRead *.sql call dist#ft#SQL()
" SQLJ
au BufNewFile,BufRead *.sqlj setf sqlj
***************
*** 1613,1619 ****
" Tads (or Nroff or Perl test file)
au BufNewFile,BufRead *.t
! \ if !filetype#FTnroff() && !filetype#FTperl() | setf tads | endif
" Tags
au BufNewFile,BufRead tags setf tags
--- 1613,1619 ----
" Tads (or Nroff or Perl test file)
au BufNewFile,BufRead *.t
! \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif
" Tags
au BufNewFile,BufRead tags setf tags
***************
*** 1642,1648 ****
" TeX
au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex
! au BufNewFile,BufRead *.tex call filetype#FTtex()
" ConTeXt
au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi setf context
--- 1642,1648 ----
" TeX
au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex
! au BufNewFile,BufRead *.tex call dist#ft#FTtex()
" ConTeXt
au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi setf context
***************
*** 1740,1746 ****
\ endif
" Visual Basic (also uses *.bas) or FORM
! au BufNewFile,BufRead *.frm call filetype#FTVB("form")
" SaxBasic is close to Visual Basic
au BufNewFile,BufRead *.sba setf vb
--- 1740,1746 ----
\ endif
" Visual Basic (also uses *.bas) or FORM
! au BufNewFile,BufRead *.frm call dist#ft#FTVB("form")
" SaxBasic is close to Visual Basic
au BufNewFile,BufRead *.sba setf vb
***************
*** 1830,1839 ****
" Xmath
au BufNewFile,BufRead *.msc,*.msf setf xmath
au BufNewFile,BufRead *.ms
! \ if !filetype#FTnroff() | setf xmath | endif
" XML specific variants: docbk and xbl
! au BufNewFile,BufRead *.xml call filetype#FTxml()
" XMI (holding UML models) is also XML
au BufNewFile,BufRead *.xmi setf xml
--- 1830,1839 ----
" Xmath
au BufNewFile,BufRead *.msc,*.msf setf xmath
au BufNewFile,BufRead *.ms
! \ if !dist#ft#FTnroff() | setf xmath | endif
" XML specific variants: docbk and xbl
! au BufNewFile,BufRead *.xml call dist#ft#FTxml()
" XMI (holding UML models) is also XML
au BufNewFile,BufRead *.xmi setf xml
***************
*** 1876,1882 ****
au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
" Yacc or racc
! au BufNewFile,BufRead *.y call filetype#FTy()
" Yaml
au BufNewFile,BufRead *.yaml,*.yml setf yaml
--- 1876,1882 ----
au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
" Yacc or racc
! au BufNewFile,BufRead *.y call dist#ft#FTy()
" Yaml
au BufNewFile,BufRead *.yaml,*.yml setf yaml
***************
*** 1892,1900 ****
" Zope
" dtml (zope dynamic template markup language), pt (zope page template),
" cpt (zope form controller page template)
! au BufNewFile,BufRead *.dtml,*.pt,*.cpt call filetype#FThtml()
" zsql (zope sql method)
! au BufNewFile,BufRead *.zsql call filetype#SQL()
" Z80 assembler asz80
au BufNewFile,BufRead *.z8a setf z8a
--- 1892,1900 ----
" Zope
" dtml (zope dynamic template markup language), pt (zope page template),
" cpt (zope form controller page template)
! au BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml()
" zsql (zope sql method)
! au BufNewFile,BufRead *.zsql call dist#ft#SQL()
" Z80 assembler asz80
au BufNewFile,BufRead *.z8a setf z8a
***************
*** 2048,2054 ****
" ReDIF
" Only used when the .rdf file was not detected to be XML.
! au BufRead,BufNewFile *.rdf call filetype#Redif()
" Remind
au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
--- 2048,2054 ----
" ReDIF
" Only used when the .rdf file was not detected to be XML.
! au BufRead,BufNewFile *.rdf call dist#ft#Redif()
" Remind
au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
*** ../vim-8.0.1284/runtime/autoload/filetype.vim 2017-11-09
21:05:27.266425176 +0100
--- runtime/autoload/filetype.vim 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,741 ****
- " Vim functions for file type detection
- "
- " Maintainer: Bram Moolenaar <[email protected]>
- " Last Change: 2017 Nov 09
-
- " These functions are moved here from runtime/filetype.vim to make startup
- " faster.
-
- " Line continuation is used here, remove 'C' from 'cpoptions'
- let s:cpo_save = &cpo
- set cpo&vim
-
- func filetype#Check_inp()
- if getline(1) =~ '^\*'
- setf abaqus
- else
- let n = 1
- if line("$") > 500
- let nmax = 500
- else
- let nmax = line("$")
- endif
- while n <= nmax
- if getline(n) =~? "^header surface data"
- setf trasys
- break
- endif
- let n = n + 1
- endwhile
- endif
- endfunc
-
- " This function checks for the kind of assembly that is wanted by the user, or
- " can be detected from the first five lines of the file.
- func filetype#FTasm()
- " make sure b:asmsyntax exists
- if !exists("b:asmsyntax")
- let b:asmsyntax = ""
- endif
-
- if b:asmsyntax == ""
- call filetype#FTasmsyntax()
- endif
-
- " if b:asmsyntax still isn't set, default to asmsyntax or GNU
- if b:asmsyntax == ""
- if exists("g:asmsyntax")
- let b:asmsyntax = g:asmsyntax
- else
- let b:asmsyntax = "asm"
- endif
- endif
-
- exe "setf " . fnameescape(b:asmsyntax)
- endfunc
-
- func filetype#FTasmsyntax()
- " see if file contains any asmsyntax=foo overrides. If so, change
- " b:asmsyntax appropriately
- let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
- \" ".getline(5)." "
- let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
- if match != ''
- let b:asmsyntax = match
- elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~?
'\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
- let b:asmsyntax = "vmasm"
- endif
- endfunc
-
- " Check if one of the first five lines contains "VB_Name". In that case it is
- " probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype.
- func filetype#FTVB(alt)
- if getline(1).getline(2).getline(3).getline(4).getline(5) =~?
'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
- setf vb
- else
- exe "setf " . a:alt
- endif
- endfunc
-
- func filetype#FTbtm()
- if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
- setf dosbatch
- else
- setf btm
- endif
- endfunc
-
- func filetype#BindzoneCheck(default)
- if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.*
<<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
- setf bindzone
- elseif a:default != ''
- exe 'setf ' . a:default
- endif
- endfunc
-
- func filetype#FTlpc()
- if exists("g:lpc_syntax_for_c")
- let lnum = 1
- while lnum <= 12
- if getline(lnum) =~#
'^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)'
- setf lpc
- return
- endif
- let lnum = lnum + 1
- endwhile
- endif
- setf c
- endfunc
-
- func filetype#FTheader()
- if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)')
> -1
- if exists("g:c_syntax_for_h")
- setf objc
- else
- setf objcpp
- endif
- elseif exists("g:c_syntax_for_h")
- setf c
- elseif exists("g:ch_syntax_for_h")
- setf ch
- else
- setf cpp
- endif
- endfunc
-
- " This function checks if one of the first ten lines start with a '@'. In
- " that case it is probably a change file.
- " If the first line starts with # or ! it's probably a ch file.
- " If a line has "main", "include", "//" ir "/*" it's probably ch.
- " Otherwise CHILL is assumed.
- func filetype#FTchange()
- let lnum = 1
- while lnum <= 10
- if getline(lnum)[0] == '@'
- setf change
- return
- endif
- if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!')
- setf ch
- return
- endif
- if getline(lnum) =~ "MODULE"
- setf chill
- return
- endif
- if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
- setf ch
- return
- endif
- let lnum = lnum + 1
- endwhile
- setf chill
- endfunc
-
- func filetype#FTent()
- " This function checks for valid cl syntax in the first five lines.
- " Look for either an opening comment, '#', or a block start, '{".
- " If not found, assume SGML.
- let lnum = 1
- while lnum < 6
- let line = getline(lnum)
- if line =~ '^\s*[#{]'
- setf cl
- return
- elseif line !~ '^\s*$'
- " Not a blank line, not a comment, and not a block start,
- " so doesn't look like valid cl code.
- break
- endif
- let lnum = lnum + 1
- endw
- setf dtd
- endfunc
-
- func filetype#EuphoriaCheck()
- if exists('g:filetype_euphoria')
- exe 'setf ' . g:filetype_euphoria
- else
- setf euphoria3
- endif
- endfunc
-
- func filetype#DtraceCheck()
- let lines = getline(1, min([line("$"), 100]))
- if match(lines, '^module\>\|^import\>') > -1
- " D files often start with a module and/or import statement.
- setf d
- elseif match(lines,
'^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1
- setf dtrace
- else
- setf d
- endif
- endfunc
-
- func filetype#FTe()
- if exists('g:filetype_euphoria')
- exe 'setf ' . g:filetype_euphoria
- else
- let n = 1
- while n < 100 && n < line("$")
- if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
- setf specman
- return
- endif
- let n = n + 1
- endwhile
- setf eiffel
- endif
- endfunc
-
- " Distinguish between HTML, XHTML and Django
- func filetype#FThtml()
- let n = 1
- while n < 10 && n < line("$")
- if getline(n) =~ '\<DTD\s\+XHTML\s'
- setf xhtml
- return
- endif
- if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
- setf htmldjango
- return
- endif
- let n = n + 1
- endwhile
- setf html
- endfunc
-
- " Distinguish between standard IDL and MS-IDL
- func filetype#FTidl()
- let n = 1
- while n < 50 && n < line("$")
- if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
- setf msidl
- return
- endif
- let n = n + 1
- endwhile
- setf idl
- endfunc
-
- " Distinguish between "default" and Cproto prototype file. */
- func filetype#ProtoCheck(default)
- " Cproto files have a comment in the first line and a function prototype in
- " the second line, it always ends in ";". Indent files may also have
- " comments, thus we can't match comments to see the difference.
- " IDL files can have a single ';' in the second line, require at least one
- " chacter before the ';'.
- if getline(2) =~ '.;$'
- setf cpp
- else
- exe 'setf ' . a:default
- endif
- endfunc
-
- func filetype#FTm()
- let n = 1
- let saw_comment = 0 " Whether we've seen a multiline comment leader.
- while n < 100
- let line = getline(n)
- if line =~ '^\s*/\*'
- " /* ... */ is a comment in Objective C and Murphi, so we can't conclude
- " it's either of them yet, but track this as a hint in case we don't see
- " anything more definitive.
- let saw_comment = 1
- endif
- if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
- setf objc
- return
- endif
- if line =~ '^\s*%'
- setf matlab
- return
- endif
- if line =~ '^\s*(\*'
- setf mma
- return
- endif
- if line =~ '^\c\s*\(\(type\|var\)\>\|--\)'
- setf murphi
- return
- endif
- let n = n + 1
- endwhile
-
- if saw_comment
- " We didn't see anything definitive, but this looks like either Objective
C
- " or Murphi based on the comment leader. Assume the former as it is more
- " common.
- setf objc
- elseif exists("g:filetype_m")
- " Use user specified default filetype for .m
- exe "setf " . g:filetype_m
- else
- " Default is matlab
- setf matlab
- endif
- endfunc
-
- func filetype#FTmms()
- let n = 1
- while n < 10
- let line = getline(n)
- if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
- setf mmix
- return
- endif
- if line =~ '^\s*#'
- setf make
- return
- endif
- let n = n + 1
- endwhile
- setf mmix
- endfunc
-
- " This function checks if one of the first five lines start with a dot. In
- " that case it is probably an nroff file: 'filetype' is set and 1 is returned.
- func filetype#FTnroff()
- if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] .
getline(5)[0] =~ '\.'
- setf nroff
- return 1
- endif
- return 0
- endfunc
-
- func filetype#FTmm()
- let n = 1
- while n < 10
- let line = getline(n)
- if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
- setf objcpp
- return
- endif
- let n = n + 1
- endwhile
- setf nroff
- endfunc
-
- func filetype#FTpl()
- if exists("g:filetype_pl")
- exe "setf " . g:filetype_pl
- else
- " recognize Prolog by specific text in the first non-empty line
- " require a blank after the '%' because Perl uses "%list" and "%translate"
- let l = getline(nextnonblank(1))
- if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
- setf prolog
- else
- setf perl
- endif
- endif
- endfunc
-
- func filetype#FTinc()
- if exists("g:filetype_inc")
- exe "setf " . g:filetype_inc
- else
- let lines = getline(1).getline(2).getline(3)
- if lines =~? "perlscript"
- setf aspperl
- elseif lines =~ "<%"
- setf aspvbs
- elseif lines =~ "<?"
- setf php
- else
- call filetype#FTasmsyntax()
- if exists("b:asmsyntax")
- exe "setf " . fnameescape(b:asmsyntax)
- else
- setf pov
- endif
- endif
- endif
- endfunc
-
- func filetype#FTprogress_cweb()
- if exists("g:filetype_w")
- exe "setf " . g:filetype_w
- return
- endif
- if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE'
- setf progress
- else
- setf cweb
- endif
- endfunc
-
- func filetype#FTprogress_asm()
- if exists("g:filetype_i")
- exe "setf " . g:filetype_i
- return
- endif
- " This function checks for an assembly comment the first ten lines.
- " If not found, assume Progress.
- let lnum = 1
- while lnum <= 10 && lnum < line('$')
- let line = getline(lnum)
- if line =~ '^\s*;' || line =~ '^\*'
- call filetype#FTasm()
- return
- elseif line !~ '^\s*$' || line =~ '^/\*'
- " Not an empty line: Doesn't look like valid assembly code.
- " Or it looks like a Progress /* comment
- break
- endif
- let lnum = lnum + 1
- endw
- setf progress
- endfunc
-
- func filetype#FTprogress_pascal()
- if exists("g:filetype_p")
- exe "setf " . g:filetype_p
- return
- endif
- " This function checks for valid Pascal syntax in the first ten lines.
- " Look for either an opening comment or a program start.
- " If not found, assume Progress.
- let lnum = 1
- while lnum <= 10 && lnum < line('$')
- let line = getline(lnum)
- if line =~
'^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
- \ || line =~ '^\s*{' || line =~ '^\s*(\*'
- setf pascal
- return
- elseif line !~ '^\s*$' || line =~ '^/\*'
- " Not an empty line: Doesn't look like valid Pascal code.
- " Or it looks like a Progress /* comment
- break
- endif
- let lnum = lnum + 1
- endw
- setf progress
- endfunc
-
- func filetype#FTr()
- let max = line("$") > 50 ? 50 : line("$")
-
- for n in range(1, max)
- " Rebol is easy to recognize, check for that first
- if getline(n) =~? '\<REBOL\>'
- setf rebol
- return
- endif
- endfor
-
- for n in range(1, max)
- " R has # comments
- if getline(n) =~ '^\s*#'
- setf r
- return
- endif
- " Rexx has /* comments */
- if getline(n) =~ '^\s*/\*'
- setf rexx
- return
- endif
- endfor
-
- " Nothing recognized, use user default or assume Rexx
- if exists("g:filetype_r")
- exe "setf " . g:filetype_r
- else
- " Rexx used to be the default, but R appears to be much more popular.
- setf r
- endif
- endfunc
-
- func filetype#McSetf()
- " Rely on the file to start with a comment.
- " MS message text files use ';', Sendmail files use '#' or 'dnl'
- for lnum in range(1, min([line("$"), 20]))
- let line = getline(lnum)
- if line =~ '^\s*\(#\|dnl\)'
- setf m4 " Sendmail .mc file
- return
- elseif line =~ '^\s*;'
- setf msmessages " MS Message text file
- return
- endif
- endfor
- setf m4 " Default: Sendmail .mc file
- endfunc
-
- " Called from filetype.vim and scripts.vim.
- func filetype#SetFileTypeSH(name)
- if expand("<amatch>") =~ g:ft_ignore_pat
- return
- endif
- if a:name =~ '\<csh\>'
- " Some .sh scripts contain #!/bin/csh.
- call filetype#SetFileTypeShell("csh")
- return
- elseif a:name =~ '\<tcsh\>'
- " Some .sh scripts contain #!/bin/tcsh.
- call filetype#SetFileTypeShell("tcsh")
- return
- elseif a:name =~ '\<zsh\>'
- " Some .sh scripts contain #!/bin/zsh.
- call filetype#SetFileTypeShell("zsh")
- return
- elseif a:name =~ '\<ksh\>'
- let b:is_kornshell = 1
- if exists("b:is_bash")
- unlet b:is_bash
- endif
- if exists("b:is_sh")
- unlet b:is_sh
- endif
- elseif exists("g:bash_is_sh") || a:name =~ '\<bash\>' || a:name =~
'\<bash2\>'
- let b:is_bash = 1
- if exists("b:is_kornshell")
- unlet b:is_kornshell
- endif
- if exists("b:is_sh")
- unlet b:is_sh
- endif
- elseif a:name =~ '\<sh\>'
- let b:is_sh = 1
- if exists("b:is_kornshell")
- unlet b:is_kornshell
- endif
- if exists("b:is_bash")
- unlet b:is_bash
- endif
- endif
- call filetype#SetFileTypeShell("sh")
- endfunc
-
- " For shell-like file types, check for an "exec" command hidden in a comment,
- " as used for Tcl.
- " Also called from scripts.vim, thus can't be local to this script.
- func filetype#SetFileTypeShell(name)
- if expand("<amatch>") =~ g:ft_ignore_pat
- return
- endif
- let l = 2
- while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
- " Skip empty and comment lines.
- let l = l + 1
- endwhile
- if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~
'^\s*#.*\\$'
- " Found an "exec" line after a comment with continuation
- let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
- if n =~ '\<tclsh\|\<wish'
- setf tcl
- return
- endif
- endif
- exe "setf " . a:name
- endfunc
-
- func filetype#CSH()
- if exists("g:filetype_csh")
- call filetype#SetFileTypeShell(g:filetype_csh)
- elseif &shell =~ "tcsh"
- call filetype#SetFileTypeShell("tcsh")
- else
- call filetype#SetFileTypeShell("csh")
- endif
- endfunc
-
- let s:ft_rules_udev_rules_pattern =
'^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
- func filetype#FTRules()
- let path = expand('<amatch>:p')
- if path =~
'^/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
- setf udevrules
- return
- endif
- if path =~ '^/etc/ufw/'
- setf conf " Better than hog
- return
- endif
- if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d'
- setf javascript
- return
- endif
- try
- let config_lines = readfile('/etc/udev/udev.conf')
- catch /^Vim\%((\a\+)\)\=:E484/
- setf hog
- return
- endtry
- let dir = expand('<amatch>:p:h')
- for line in config_lines
- if line =~ s:ft_rules_udev_rules_pattern
- let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1',
"")
- if dir == udev_rules
- setf udevrules
- endif
- break
- endif
- endfor
- setf hog
- endfunc
-
- func filetype#SQL()
- if exists("g:filetype_sql")
- exe "setf " . g:filetype_sql
- else
- setf sql
- endif
- endfunc
-
- " If the file has an extension of 't' and is in a directory 't' or 'xt' then
- " it is almost certainly a Perl test file.
- " If the first line starts with '#' and contains 'perl' it's probably a Perl
- " file.
- " (Slow test) If a file contains a 'use' statement then it is almost certainly
- " a Perl file.
- func filetype#FTperl()
- let dirname = expand("%:p:h:t")
- if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
- setf perl
- return 1
- endif
- if getline(1)[0] == '#' && getline(1) =~ 'perl'
- setf perl
- return 1
- endif
- if search('^use\s\s*\k', 'nc', 30)
- setf perl
- return 1
- endif
- return 0
- endfunc
-
- " Choose context, plaintex, or tex (LaTeX) based on these rules:
- " 1. Check the first line of the file for "%&<format>".
- " 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
- " 3. Default to "latex" or to g:tex_flavor, can be set in user's vimrc.
- func filetype#FTtex()
- let firstline = getline(1)
- if firstline =~ '^%&\s*\a\+'
- let format = tolower(matchstr(firstline, '\a\+'))
- let format = substitute(format, 'pdf', '', '')
- if format == 'tex'
- let format = 'latex'
- elseif format == 'plaintex'
- let format = 'plain'
- endif
- elseif expand('%') =~ 'tex/context/.*/.*.tex'
- let format = 'context'
- else
- " Default value, may be changed later:
- let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
- " Save position, go to the top of the file, find first non-comment line.
- let save_cursor = getpos('.')
- call cursor(1,1)
- let firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
- if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword.
- let lpat =
'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>'
- let cpat =
'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>'
- let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)',
- \ 'cnp', firstNC + 1000)
- if kwline == 1 " lpat matched
- let format = 'latex'
- elseif kwline == 2 " cpat matched
- let format = 'context'
- endif " If neither matched, keep default set above.
- " let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000)
- " let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000)
- " if cline > 0
- " let format = 'context'
- " endif
- " if lline > 0 && (cline == 0 || cline > lline)
- " let format = 'tex'
- " endif
- endif " firstNC
- call setpos('.', save_cursor)
- endif " firstline =~ '^%&\s*\a\+'
-
- " Translation from formats to file types. TODO: add AMSTeX, RevTex,
others?
- if format == 'plain'
- setf plaintex
- elseif format == 'context'
- setf context
- else " probably LaTeX
- setf tex
- endif
- return
- endfunc
-
- func filetype#FTxml()
- let n = 1
- while n < 100 && n < line("$")
- let line = getline(n)
- " DocBook 4 or DocBook 5.
- let is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
- let is_docbook5 = line =~ ' xmlns="http://docbook.org/ns/docbook"'
- if is_docbook4 || is_docbook5
- let b:docbk_type = "xml"
- if is_docbook5
- let b:docbk_ver = 5
- else
- let b:docbk_ver = 4
- endif
- setf docbk
- return
- endif
- if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"'
- setf xbl
- return
- endif
- let n += 1
- endwhile
- setf xml
- endfunc
-
- func filetype#FTy()
- let n = 1
- while n < 100 && n < line("$")
- let line = getline(n)
- if line =~ '^\s*%'
- setf yacc
- return
- endif
- if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
- setf racc
- return
- endif
- let n = n + 1
- endwhile
- setf yacc
- endfunc
-
- func filetype#Redif()
- let lnum = 1
- while lnum <= 5 && lnum < line('$')
- if getline(lnum) =~ "^\ctemplate-type:"
- setf redif
- return
- endif
- let lnum = lnum + 1
- endwhile
- endfunc
-
-
- " Restore 'cpoptions'
- let &cpo = s:cpo_save
- unlet s:cpo_save
--- 0 ----
*** ../vim-8.0.1284/runtime/autoload/dist/ft.vim 1970-01-01
01:00:00.000000000 +0100
--- runtime/autoload/dist/ft.vim 2017-11-11 15:21:35.877152921 +0100
***************
*** 0 ****
--- 1,741 ----
+ " Vim functions for file type detection
+ "
+ " Maintainer: Bram Moolenaar <[email protected]>
+ " Last Change: 2017 Nov 11
+
+ " These functions are moved here from runtime/filetype.vim to make startup
+ " faster.
+
+ " Line continuation is used here, remove 'C' from 'cpoptions'
+ let s:cpo_save = &cpo
+ set cpo&vim
+
+ func dist#ft#Check_inp()
+ if getline(1) =~ '^\*'
+ setf abaqus
+ else
+ let n = 1
+ if line("$") > 500
+ let nmax = 500
+ else
+ let nmax = line("$")
+ endif
+ while n <= nmax
+ if getline(n) =~? "^header surface data"
+ setf trasys
+ break
+ endif
+ let n = n + 1
+ endwhile
+ endif
+ endfunc
+
+ " This function checks for the kind of assembly that is wanted by the user, or
+ " can be detected from the first five lines of the file.
+ func dist#ft#FTasm()
+ " make sure b:asmsyntax exists
+ if !exists("b:asmsyntax")
+ let b:asmsyntax = ""
+ endif
+
+ if b:asmsyntax == ""
+ call dist#ft#FTasmsyntax()
+ endif
+
+ " if b:asmsyntax still isn't set, default to asmsyntax or GNU
+ if b:asmsyntax == ""
+ if exists("g:asmsyntax")
+ let b:asmsyntax = g:asmsyntax
+ else
+ let b:asmsyntax = "asm"
+ endif
+ endif
+
+ exe "setf " . fnameescape(b:asmsyntax)
+ endfunc
+
+ func dist#ft#FTasmsyntax()
+ " see if file contains any asmsyntax=foo overrides. If so, change
+ " b:asmsyntax appropriately
+ let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
+ \" ".getline(5)." "
+ let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
+ if match != ''
+ let b:asmsyntax = match
+ elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~?
'\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
+ let b:asmsyntax = "vmasm"
+ endif
+ endfunc
+
+ " Check if one of the first five lines contains "VB_Name". In that case it is
+ " probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype.
+ func dist#ft#FTVB(alt)
+ if getline(1).getline(2).getline(3).getline(4).getline(5) =~?
'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
+ setf vb
+ else
+ exe "setf " . a:alt
+ endif
+ endfunc
+
+ func dist#ft#FTbtm()
+ if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
+ setf dosbatch
+ else
+ setf btm
+ endif
+ endfunc
+
+ func dist#ft#BindzoneCheck(default)
+ if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.*
<<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
+ setf bindzone
+ elseif a:default != ''
+ exe 'setf ' . a:default
+ endif
+ endfunc
+
+ func dist#ft#FTlpc()
+ if exists("g:lpc_syntax_for_c")
+ let lnum = 1
+ while lnum <= 12
+ if getline(lnum) =~#
'^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)'
+ setf lpc
+ return
+ endif
+ let lnum = lnum + 1
+ endwhile
+ endif
+ setf c
+ endfunc
+
+ func dist#ft#FTheader()
+ if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)')
> -1
+ if exists("g:c_syntax_for_h")
+ setf objc
+ else
+ setf objcpp
+ endif
+ elseif exists("g:c_syntax_for_h")
+ setf c
+ elseif exists("g:ch_syntax_for_h")
+ setf ch
+ else
+ setf cpp
+ endif
+ endfunc
+
+ " This function checks if one of the first ten lines start with a '@'. In
+ " that case it is probably a change file.
+ " If the first line starts with # or ! it's probably a ch file.
+ " If a line has "main", "include", "//" ir "/*" it's probably ch.
+ " Otherwise CHILL is assumed.
+ func dist#ft#FTchange()
+ let lnum = 1
+ while lnum <= 10
+ if getline(lnum)[0] == '@'
+ setf change
+ return
+ endif
+ if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!')
+ setf ch
+ return
+ endif
+ if getline(lnum) =~ "MODULE"
+ setf chill
+ return
+ endif
+ if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
+ setf ch
+ return
+ endif
+ let lnum = lnum + 1
+ endwhile
+ setf chill
+ endfunc
+
+ func dist#ft#FTent()
+ " This function checks for valid cl syntax in the first five lines.
+ " Look for either an opening comment, '#', or a block start, '{".
+ " If not found, assume SGML.
+ let lnum = 1
+ while lnum < 6
+ let line = getline(lnum)
+ if line =~ '^\s*[#{]'
+ setf cl
+ return
+ elseif line !~ '^\s*$'
+ " Not a blank line, not a comment, and not a block start,
+ " so doesn't look like valid cl code.
+ break
+ endif
+ let lnum = lnum + 1
+ endw
+ setf dtd
+ endfunc
+
+ func dist#ft#EuphoriaCheck()
+ if exists('g:filetype_euphoria')
+ exe 'setf ' . g:filetype_euphoria
+ else
+ setf euphoria3
+ endif
+ endfunc
+
+ func dist#ft#DtraceCheck()
+ let lines = getline(1, min([line("$"), 100]))
+ if match(lines, '^module\>\|^import\>') > -1
+ " D files often start with a module and/or import statement.
+ setf d
+ elseif match(lines,
'^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1
+ setf dtrace
+ else
+ setf d
+ endif
+ endfunc
+
+ func dist#ft#FTe()
+ if exists('g:filetype_euphoria')
+ exe 'setf ' . g:filetype_euphoria
+ else
+ let n = 1
+ while n < 100 && n < line("$")
+ if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
+ setf specman
+ return
+ endif
+ let n = n + 1
+ endwhile
+ setf eiffel
+ endif
+ endfunc
+
+ " Distinguish between HTML, XHTML and Django
+ func dist#ft#FThtml()
+ let n = 1
+ while n < 10 && n < line("$")
+ if getline(n) =~ '\<DTD\s\+XHTML\s'
+ setf xhtml
+ return
+ endif
+ if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
+ setf htmldjango
+ return
+ endif
+ let n = n + 1
+ endwhile
+ setf html
+ endfunc
+
+ " Distinguish between standard IDL and MS-IDL
+ func dist#ft#FTidl()
+ let n = 1
+ while n < 50 && n < line("$")
+ if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
+ setf msidl
+ return
+ endif
+ let n = n + 1
+ endwhile
+ setf idl
+ endfunc
+
+ " Distinguish between "default" and Cproto prototype file. */
+ func dist#ft#ProtoCheck(default)
+ " Cproto files have a comment in the first line and a function prototype in
+ " the second line, it always ends in ";". Indent files may also have
+ " comments, thus we can't match comments to see the difference.
+ " IDL files can have a single ';' in the second line, require at least one
+ " chacter before the ';'.
+ if getline(2) =~ '.;$'
+ setf cpp
+ else
+ exe 'setf ' . a:default
+ endif
+ endfunc
+
+ func dist#ft#FTm()
+ let n = 1
+ let saw_comment = 0 " Whether we've seen a multiline comment leader.
+ while n < 100
+ let line = getline(n)
+ if line =~ '^\s*/\*'
+ " /* ... */ is a comment in Objective C and Murphi, so we can't conclude
+ " it's either of them yet, but track this as a hint in case we don't see
+ " anything more definitive.
+ let saw_comment = 1
+ endif
+ if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
+ setf objc
+ return
+ endif
+ if line =~ '^\s*%'
+ setf matlab
+ return
+ endif
+ if line =~ '^\s*(\*'
+ setf mma
+ return
+ endif
+ if line =~ '^\c\s*\(\(type\|var\)\>\|--\)'
+ setf murphi
+ return
+ endif
+ let n = n + 1
+ endwhile
+
+ if saw_comment
+ " We didn't see anything definitive, but this looks like either Objective
C
+ " or Murphi based on the comment leader. Assume the former as it is more
+ " common.
+ setf objc
+ elseif exists("g:filetype_m")
+ " Use user specified default filetype for .m
+ exe "setf " . g:filetype_m
+ else
+ " Default is matlab
+ setf matlab
+ endif
+ endfunc
+
+ func dist#ft#FTmms()
+ let n = 1
+ while n < 10
+ let line = getline(n)
+ if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
+ setf mmix
+ return
+ endif
+ if line =~ '^\s*#'
+ setf make
+ return
+ endif
+ let n = n + 1
+ endwhile
+ setf mmix
+ endfunc
+
+ " This function checks if one of the first five lines start with a dot. In
+ " that case it is probably an nroff file: 'filetype' is set and 1 is returned.
+ func dist#ft#FTnroff()
+ if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] .
getline(5)[0] =~ '\.'
+ setf nroff
+ return 1
+ endif
+ return 0
+ endfunc
+
+ func dist#ft#FTmm()
+ let n = 1
+ while n < 10
+ let line = getline(n)
+ if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
+ setf objcpp
+ return
+ endif
+ let n = n + 1
+ endwhile
+ setf nroff
+ endfunc
+
+ func dist#ft#FTpl()
+ if exists("g:filetype_pl")
+ exe "setf " . g:filetype_pl
+ else
+ " recognize Prolog by specific text in the first non-empty line
+ " require a blank after the '%' because Perl uses "%list" and "%translate"
+ let l = getline(nextnonblank(1))
+ if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
+ setf prolog
+ else
+ setf perl
+ endif
+ endif
+ endfunc
+
+ func dist#ft#FTinc()
+ if exists("g:filetype_inc")
+ exe "setf " . g:filetype_inc
+ else
+ let lines = getline(1).getline(2).getline(3)
+ if lines =~? "perlscript"
+ setf aspperl
+ elseif lines =~ "<%"
+ setf aspvbs
+ elseif lines =~ "<?"
+ setf php
+ else
+ call dist#ft#FTasmsyntax()
+ if exists("b:asmsyntax")
+ exe "setf " . fnameescape(b:asmsyntax)
+ else
+ setf pov
+ endif
+ endif
+ endif
+ endfunc
+
+ func dist#ft#FTprogress_cweb()
+ if exists("g:filetype_w")
+ exe "setf " . g:filetype_w
+ return
+ endif
+ if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE'
+ setf progress
+ else
+ setf cweb
+ endif
+ endfunc
+
+ func dist#ft#FTprogress_asm()
+ if exists("g:filetype_i")
+ exe "setf " . g:filetype_i
+ return
+ endif
+ " This function checks for an assembly comment the first ten lines.
+ " If not found, assume Progress.
+ let lnum = 1
+ while lnum <= 10 && lnum < line('$')
+ let line = getline(lnum)
+ if line =~ '^\s*;' || line =~ '^\*'
+ call dist#ft#FTasm()
+ return
+ elseif line !~ '^\s*$' || line =~ '^/\*'
+ " Not an empty line: Doesn't look like valid assembly code.
+ " Or it looks like a Progress /* comment
+ break
+ endif
+ let lnum = lnum + 1
+ endw
+ setf progress
+ endfunc
+
+ func dist#ft#FTprogress_pascal()
+ if exists("g:filetype_p")
+ exe "setf " . g:filetype_p
+ return
+ endif
+ " This function checks for valid Pascal syntax in the first ten lines.
+ " Look for either an opening comment or a program start.
+ " If not found, assume Progress.
+ let lnum = 1
+ while lnum <= 10 && lnum < line('$')
+ let line = getline(lnum)
+ if line =~
'^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
+ \ || line =~ '^\s*{' || line =~ '^\s*(\*'
+ setf pascal
+ return
+ elseif line !~ '^\s*$' || line =~ '^/\*'
+ " Not an empty line: Doesn't look like valid Pascal code.
+ " Or it looks like a Progress /* comment
+ break
+ endif
+ let lnum = lnum + 1
+ endw
+ setf progress
+ endfunc
+
+ func dist#ft#FTr()
+ let max = line("$") > 50 ? 50 : line("$")
+
+ for n in range(1, max)
+ " Rebol is easy to recognize, check for that first
+ if getline(n) =~? '\<REBOL\>'
+ setf rebol
+ return
+ endif
+ endfor
+
+ for n in range(1, max)
+ " R has # comments
+ if getline(n) =~ '^\s*#'
+ setf r
+ return
+ endif
+ " Rexx has /* comments */
+ if getline(n) =~ '^\s*/\*'
+ setf rexx
+ return
+ endif
+ endfor
+
+ " Nothing recognized, use user default or assume Rexx
+ if exists("g:filetype_r")
+ exe "setf " . g:filetype_r
+ else
+ " Rexx used to be the default, but R appears to be much more popular.
+ setf r
+ endif
+ endfunc
+
+ func dist#ft#McSetf()
+ " Rely on the file to start with a comment.
+ " MS message text files use ';', Sendmail files use '#' or 'dnl'
+ for lnum in range(1, min([line("$"), 20]))
+ let line = getline(lnum)
+ if line =~ '^\s*\(#\|dnl\)'
+ setf m4 " Sendmail .mc file
+ return
+ elseif line =~ '^\s*;'
+ setf msmessages " MS Message text file
+ return
+ endif
+ endfor
+ setf m4 " Default: Sendmail .mc file
+ endfunc
+
+ " Called from filetype.vim and scripts.vim.
+ func dist#ft#SetFileTypeSH(name)
+ if expand("<amatch>") =~ g:ft_ignore_pat
+ return
+ endif
+ if a:name =~ '\<csh\>'
+ " Some .sh scripts contain #!/bin/csh.
+ call dist#ft#SetFileTypeShell("csh")
+ return
+ elseif a:name =~ '\<tcsh\>'
+ " Some .sh scripts contain #!/bin/tcsh.
+ call dist#ft#SetFileTypeShell("tcsh")
+ return
+ elseif a:name =~ '\<zsh\>'
+ " Some .sh scripts contain #!/bin/zsh.
+ call dist#ft#SetFileTypeShell("zsh")
+ return
+ elseif a:name =~ '\<ksh\>'
+ let b:is_kornshell = 1
+ if exists("b:is_bash")
+ unlet b:is_bash
+ endif
+ if exists("b:is_sh")
+ unlet b:is_sh
+ endif
+ elseif exists("g:bash_is_sh") || a:name =~ '\<bash\>' || a:name =~
'\<bash2\>'
+ let b:is_bash = 1
+ if exists("b:is_kornshell")
+ unlet b:is_kornshell
+ endif
+ if exists("b:is_sh")
+ unlet b:is_sh
+ endif
+ elseif a:name =~ '\<sh\>'
+ let b:is_sh = 1
+ if exists("b:is_kornshell")
+ unlet b:is_kornshell
+ endif
+ if exists("b:is_bash")
+ unlet b:is_bash
+ endif
+ endif
+ call dist#ft#SetFileTypeShell("sh")
+ endfunc
+
+ " For shell-like file types, check for an "exec" command hidden in a comment,
+ " as used for Tcl.
+ " Also called from scripts.vim, thus can't be local to this script.
+ func dist#ft#SetFileTypeShell(name)
+ if expand("<amatch>") =~ g:ft_ignore_pat
+ return
+ endif
+ let l = 2
+ while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
+ " Skip empty and comment lines.
+ let l = l + 1
+ endwhile
+ if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~
'^\s*#.*\\$'
+ " Found an "exec" line after a comment with continuation
+ let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
+ if n =~ '\<tclsh\|\<wish'
+ setf tcl
+ return
+ endif
+ endif
+ exe "setf " . a:name
+ endfunc
+
+ func dist#ft#CSH()
+ if exists("g:filetype_csh")
+ call dist#ft#SetFileTypeShell(g:filetype_csh)
+ elseif &shell =~ "tcsh"
+ call dist#ft#SetFileTypeShell("tcsh")
+ else
+ call dist#ft#SetFileTypeShell("csh")
+ endif
+ endfunc
+
+ let s:ft_rules_udev_rules_pattern =
'^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
+ func dist#ft#FTRules()
+ let path = expand('<amatch>:p')
+ if path =~
'^/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
+ setf udevrules
+ return
+ endif
+ if path =~ '^/etc/ufw/'
+ setf conf " Better than hog
+ return
+ endif
+ if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d'
+ setf javascript
+ return
+ endif
+ try
+ let config_lines = readfile('/etc/udev/udev.conf')
+ catch /^Vim\%((\a\+)\)\=:E484/
+ setf hog
+ return
+ endtry
+ let dir = expand('<amatch>:p:h')
+ for line in config_lines
+ if line =~ s:ft_rules_udev_rules_pattern
+ let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1',
"")
+ if dir == udev_rules
+ setf udevrules
+ endif
+ break
+ endif
+ endfor
+ setf hog
+ endfunc
+
+ func dist#ft#SQL()
+ if exists("g:filetype_sql")
+ exe "setf " . g:filetype_sql
+ else
+ setf sql
+ endif
+ endfunc
+
+ " If the file has an extension of 't' and is in a directory 't' or 'xt' then
+ " it is almost certainly a Perl test file.
+ " If the first line starts with '#' and contains 'perl' it's probably a Perl
+ " file.
+ " (Slow test) If a file contains a 'use' statement then it is almost certainly
+ " a Perl file.
+ func dist#ft#FTperl()
+ let dirname = expand("%:p:h:t")
+ if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
+ setf perl
+ return 1
+ endif
+ if getline(1)[0] == '#' && getline(1) =~ 'perl'
+ setf perl
+ return 1
+ endif
+ if search('^use\s\s*\k', 'nc', 30)
+ setf perl
+ return 1
+ endif
+ return 0
+ endfunc
+
+ " Choose context, plaintex, or tex (LaTeX) based on these rules:
+ " 1. Check the first line of the file for "%&<format>".
+ " 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
+ " 3. Default to "latex" or to g:tex_flavor, can be set in user's vimrc.
+ func dist#ft#FTtex()
+ let firstline = getline(1)
+ if firstline =~ '^%&\s*\a\+'
+ let format = tolower(matchstr(firstline, '\a\+'))
+ let format = substitute(format, 'pdf', '', '')
+ if format == 'tex'
+ let format = 'latex'
+ elseif format == 'plaintex'
+ let format = 'plain'
+ endif
+ elseif expand('%') =~ 'tex/context/.*/.*.tex'
+ let format = 'context'
+ else
+ " Default value, may be changed later:
+ let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
+ " Save position, go to the top of the file, find first non-comment line.
+ let save_cursor = getpos('.')
+ call cursor(1,1)
+ let firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
+ if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword.
+ let lpat =
'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>'
+ let cpat =
'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>'
+ let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)',
+ \ 'cnp', firstNC + 1000)
+ if kwline == 1 " lpat matched
+ let format = 'latex'
+ elseif kwline == 2 " cpat matched
+ let format = 'context'
+ endif " If neither matched, keep default set above.
+ " let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000)
+ " let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000)
+ " if cline > 0
+ " let format = 'context'
+ " endif
+ " if lline > 0 && (cline == 0 || cline > lline)
+ " let format = 'tex'
+ " endif
+ endif " firstNC
+ call setpos('.', save_cursor)
+ endif " firstline =~ '^%&\s*\a\+'
+
+ " Translation from formats to file types. TODO: add AMSTeX, RevTex,
others?
+ if format == 'plain'
+ setf plaintex
+ elseif format == 'context'
+ setf context
+ else " probably LaTeX
+ setf tex
+ endif
+ return
+ endfunc
+
+ func dist#ft#FTxml()
+ let n = 1
+ while n < 100 && n < line("$")
+ let line = getline(n)
+ " DocBook 4 or DocBook 5.
+ let is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
+ let is_docbook5 = line =~ ' xmlns="http://docbook.org/ns/docbook"'
+ if is_docbook4 || is_docbook5
+ let b:docbk_type = "xml"
+ if is_docbook5
+ let b:docbk_ver = 5
+ else
+ let b:docbk_ver = 4
+ endif
+ setf docbk
+ return
+ endif
+ if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"'
+ setf xbl
+ return
+ endif
+ let n += 1
+ endwhile
+ setf xml
+ endfunc
+
+ func dist#ft#FTy()
+ let n = 1
+ while n < 100 && n < line("$")
+ let line = getline(n)
+ if line =~ '^\s*%'
+ setf yacc
+ return
+ endif
+ if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
+ setf racc
+ return
+ endif
+ let n = n + 1
+ endwhile
+ setf yacc
+ endfunc
+
+ func dist#ft#Redif()
+ let lnum = 1
+ while lnum <= 5 && lnum < line('$')
+ if getline(lnum) =~ "^\ctemplate-type:"
+ setf redif
+ return
+ endif
+ let lnum = lnum + 1
+ endwhile
+ endfunc
+
+
+ " Restore 'cpoptions'
+ let &cpo = s:cpo_save
+ unlet s:cpo_save
*** ../vim-8.0.1284/runtime/scripts.vim 2017-11-09 20:43:52.210128405 +0100
--- runtime/scripts.vim 2017-11-11 15:21:45.885003051 +0100
***************
*** 1,7 ****
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <[email protected]>
! " Last change: 2017 Nov 09
" 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
--- 1,7 ----
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <[email protected]>
! " Last change: 2017 Nov 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
***************
*** 66,84 ****
" Bourne-like shell scripts: bash bash2 ksh ksh93 sh
if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
! call filetype#SetFileTypeSH(s:line1) " defined in filetype.vim
" csh scripts
elseif s:name =~# '^csh\>'
if exists("g:filetype_csh")
! call filetype#SetFileTypeShell(g:filetype_csh)
else
! call filetype#SetFileTypeShell("csh")
endif
" tcsh scripts
elseif s:name =~# '^tcsh\>'
! call filetype#SetFileTypeShell("tcsh")
" Z shell scripts
elseif s:name =~# '^zsh\>'
--- 66,84 ----
" Bourne-like shell scripts: bash bash2 ksh ksh93 sh
if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
! call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
" csh scripts
elseif s:name =~# '^csh\>'
if exists("g:filetype_csh")
! call dist#ft#SetFileTypeShell(g:filetype_csh)
else
! call dist#ft#SetFileTypeShell("csh")
endif
" tcsh scripts
elseif s:name =~# '^tcsh\>'
! call dist#ft#SetFileTypeShell("tcsh")
" Z shell scripts
elseif s:name =~# '^zsh\>'
***************
*** 185,191 ****
" Bourne-like shell scripts: sh ksh bash bash2
if s:line1 =~# '^:$'
! call filetype#SetFileTypeSH(s:line1) " defined in filetype.vim
" Z shell scripts
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
--- 185,191 ----
" Bourne-like shell scripts: sh ksh bash bash2
if s:line1 =~# '^:$'
! call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
" Z shell scripts
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
*** ../vim-8.0.1284/Filelist 2017-10-28 18:26:17.810294482 +0200
--- Filelist 2017-11-11 15:22:12.696601723 +0100
***************
*** 659,664 ****
--- 659,665 ----
runtime/makemenu.vim \
runtime/autoload/*.vim \
runtime/autoload/README.txt \
+ runtime/autoload/dist/*.vim \
runtime/autoload/xml/*.vim \
runtime/colors/*.vim \
runtime/colors/README.txt \
*** ../vim-8.0.1284/src/Makefile 2017-11-05 20:59:12.524905157 +0100
--- src/Makefile 2017-11-11 15:27:41.351699469 +0100
***************
*** 2381,2388 ****
# install the help files; first adjust the contents for the final location
installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(DEST_RT) \
$(DEST_HELP) $(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND) \
! $(DEST_FTP) $(DEST_AUTO) $(DEST_AUTO)/xml $(DEST_PLUG) \
! $(DEST_TUTOR) $(DEST_SPELL) $(DEST_COMP)
-$(SHELL) ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS)
# Generate the help tags with ":helptags" to handle all languages.
# Move the distributed tags file aside and restore it, to avoid it being
--- 2385,2392 ----
# install the help files; first adjust the contents for the final location
installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(DEST_RT) \
$(DEST_HELP) $(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND) \
! $(DEST_FTP) $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml \
! $(DEST_PLUG) $(DEST_TUTOR) $(DEST_SPELL) $(DEST_COMP)
-$(SHELL) ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS)
# Generate the help tags with ":helptags" to handle all languages.
# Move the distributed tags file aside and restore it, to avoid it being
***************
*** 2458,2463 ****
--- 2462,2469 ----
# install the standard autoload files
cd $(AUTOSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_AUTO)
cd $(DEST_AUTO); chmod $(HELPMOD) *.vim README.txt
+ cd $(AUTOSOURCE)/dist; $(INSTALL_DATA) *.vim $(DEST_AUTO)/dist
+ cd $(DEST_AUTO)/dist; chmod $(HELPMOD) *.vim
cd $(AUTOSOURCE)/xml; $(INSTALL_DATA) *.vim $(DEST_AUTO)/xml
cd $(DEST_AUTO)/xml; chmod $(HELPMOD) *.vim
# install the standard plugin files
***************
*** 2653,2659 ****
$(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND) $(DEST_FTP) \
$(DEST_LANG) $(DEST_KMAP) $(DEST_COMP) $(DEST_MACRO) \
$(DEST_PACK) $(DEST_TOOLS) $(DEST_TUTOR) $(DEST_SPELL) \
! $(DEST_AUTO) $(DEST_AUTO)/xml $(DEST_PLUG):
$(MKDIR_P) $@
-chmod $(DIRMOD) $@
--- 2659,2665 ----
$(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND) $(DEST_FTP) \
$(DEST_LANG) $(DEST_KMAP) $(DEST_COMP) $(DEST_MACRO) \
$(DEST_PACK) $(DEST_TOOLS) $(DEST_TUTOR) $(DEST_SPELL) \
! $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml $(DEST_PLUG):
$(MKDIR_P) $@
-chmod $(DIRMOD) $@
***************
*** 2808,2816 ****
-rm -f $(DEST_PRINT)/*.ps
-rmdir $(DEST_HELP) $(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND)
-rm -rf $(DEST_FTP)/*.vim $(DEST_FTP)/README.txt
$(DEST_FTP)/logtalk.dict
! -rm -f $(DEST_AUTO)/*.vim $(DEST_AUTO)/README.txt $(DEST_AUTO)/xml/*.vim
-rm -f $(DEST_PLUG)/*.vim $(DEST_PLUG)/README.txt
! -rmdir $(DEST_FTP) $(DEST_AUTO)/xml $(DEST_AUTO) $(DEST_PLUG) $(DEST_RT)
# This will fail when other Vim versions are installed, no worries.
-rmdir $(DEST_VIM)
--- 2814,2824 ----
-rm -f $(DEST_PRINT)/*.ps
-rmdir $(DEST_HELP) $(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND)
-rm -rf $(DEST_FTP)/*.vim $(DEST_FTP)/README.txt
$(DEST_FTP)/logtalk.dict
! -rm -f $(DEST_AUTO)/*.vim $(DEST_AUTO)/README.txt
! -rm -f $(DEST_AUTO)/dist/*.vim $(DEST_AUTO)/xml/*.vim
-rm -f $(DEST_PLUG)/*.vim $(DEST_PLUG)/README.txt
! -rmdir $(DEST_FTP) $(DEST_AUTO)/dist $(DEST_AUTO)/xml $(DEST_AUTO)
! -rmdir $(DEST_PLUG) $(DEST_RT)
# This will fail when other Vim versions are installed, no worries.
-rmdir $(DEST_VIM)
*** ../vim-8.0.1284/nsis/gvim.nsi 2017-10-28 18:26:17.810294482 +0200
--- nsis/gvim.nsi 2017-11-11 15:28:31.950946898 +0100
***************
*** 268,273 ****
--- 268,276 ----
SetOutPath $0\autoload
File ${VIMRT}\autoload\*.*
+ SetOutPath $0\autoload\dist
+ File ${VIMRT}\autoload\dist\*.*
+
SetOutPath $0\autoload\xml
File ${VIMRT}\autoload\xml\*.*
*** ../vim-8.0.1284/src/version.c 2017-11-10 21:53:01.550219652 +0100
--- src/version.c 2017-11-11 15:29:36.665985005 +0100
***************
*** 763,764 ****
--- 763,766 ----
{ /* Add new patch number below this line */
+ /**/
+ 1285,
/**/
--
DENNIS: Oh, very nice. King, eh! I expect you've got a palace and fine
clothes and courtiers and plenty of food. And how d'you get that? By
exploiting the workers! By hanging on to outdated imperialist dogma
which perpetuates the social and economic differences in our society!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// 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.