diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-11-11 15:37:45 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-11-11 15:37:45 +0100 |
commit | d09a206ee94ccb653707ce9b6e536d4d58886e04 (patch) | |
tree | 9a75735265a1b4c535abf5af8cdf0aabf53e3713 | |
parent | 462455ee8b81cb5709007d91248ac4a88308d6e9 (diff) | |
download | vim-git-d09a206ee94ccb653707ce9b6e536d4d58886e04.tar.gz |
patch 8.0.1285: occasional crash when using a channelv8.0.1285
Problem: Occasional crash when using a channel. (Marek)
Solution: Decrement reference count later. (closes #2315)
-rw-r--r-- | Filelist | 1 | ||||
-rw-r--r-- | nsis/gvim.nsi | 3 | ||||
-rw-r--r-- | runtime/autoload/dist/ft.vim (renamed from runtime/autoload/filetype.vim) | 96 | ||||
-rw-r--r-- | runtime/filetype.vim | 96 | ||||
-rw-r--r-- | runtime/scripts.vim | 12 | ||||
-rw-r--r-- | src/Makefile | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
7 files changed, 117 insertions, 107 deletions
@@ -659,6 +659,7 @@ RT_SCRIPTS = \ 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 \ diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi index 4e9bbfb45..871ce673a 100644 --- a/nsis/gvim.nsi +++ b/nsis/gvim.nsi @@ -268,6 +268,9 @@ Section "Vim executables and runtime files" SetOutPath $0\autoload File ${VIMRT}\autoload\*.* + SetOutPath $0\autoload\dist + File ${VIMRT}\autoload\dist\*.* + SetOutPath $0\autoload\xml File ${VIMRT}\autoload\xml\*.* diff --git a/runtime/autoload/filetype.vim b/runtime/autoload/dist/ft.vim index 66e64b29d..2603c6822 100644 --- a/runtime/autoload/filetype.vim +++ b/runtime/autoload/dist/ft.vim @@ -1,7 +1,7 @@ " Vim functions for file type detection " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2017 Nov 09 +" Last Change: 2017 Nov 11 " These functions are moved here from runtime/filetype.vim to make startup " faster. @@ -10,7 +10,7 @@ let s:cpo_save = &cpo set cpo&vim -func filetype#Check_inp() +func dist#ft#Check_inp() if getline(1) =~ '^\*' setf abaqus else @@ -32,14 +32,14 @@ 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() +func dist#ft#FTasm() " make sure b:asmsyntax exists if !exists("b:asmsyntax") let b:asmsyntax = "" endif if b:asmsyntax == "" - call filetype#FTasmsyntax() + call dist#ft#FTasmsyntax() endif " if b:asmsyntax still isn't set, default to asmsyntax or GNU @@ -54,7 +54,7 @@ func filetype#FTasm() exe "setf " . fnameescape(b:asmsyntax) endfunc -func filetype#FTasmsyntax() +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). @@ -69,7 +69,7 @@ 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) +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 @@ -77,7 +77,7 @@ func filetype#FTVB(alt) endif endfunc -func filetype#FTbtm() +func dist#ft#FTbtm() if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm setf dosbatch else @@ -85,7 +85,7 @@ func filetype#FTbtm() endif endfunc -func filetype#BindzoneCheck(default) +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 != '' @@ -93,7 +93,7 @@ func filetype#BindzoneCheck(default) endif endfunc -func filetype#FTlpc() +func dist#ft#FTlpc() if exists("g:lpc_syntax_for_c") let lnum = 1 while lnum <= 12 @@ -107,7 +107,7 @@ func filetype#FTlpc() setf c endfunc -func filetype#FTheader() +func dist#ft#FTheader() if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1 if exists("g:c_syntax_for_h") setf objc @@ -128,7 +128,7 @@ endfunc " 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() +func dist#ft#FTchange() let lnum = 1 while lnum <= 10 if getline(lnum)[0] == '@' @@ -152,7 +152,7 @@ func filetype#FTchange() setf chill endfunc -func filetype#FTent() +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. @@ -172,7 +172,7 @@ func filetype#FTent() setf dtd endfunc -func filetype#EuphoriaCheck() +func dist#ft#EuphoriaCheck() if exists('g:filetype_euphoria') exe 'setf ' . g:filetype_euphoria else @@ -180,7 +180,7 @@ func filetype#EuphoriaCheck() endif endfunc -func filetype#DtraceCheck() +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. @@ -192,7 +192,7 @@ func filetype#DtraceCheck() endif endfunc -func filetype#FTe() +func dist#ft#FTe() if exists('g:filetype_euphoria') exe 'setf ' . g:filetype_euphoria else @@ -209,7 +209,7 @@ func filetype#FTe() endfunc " Distinguish between HTML, XHTML and Django -func filetype#FThtml() +func dist#ft#FThtml() let n = 1 while n < 10 && n < line("$") if getline(n) =~ '\<DTD\s\+XHTML\s' @@ -226,7 +226,7 @@ func filetype#FThtml() endfunc " Distinguish between standard IDL and MS-IDL -func filetype#FTidl() +func dist#ft#FTidl() let n = 1 while n < 50 && n < line("$") if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"' @@ -239,7 +239,7 @@ func filetype#FTidl() endfunc " Distinguish between "default" and Cproto prototype file. */ -func filetype#ProtoCheck(default) +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. @@ -252,7 +252,7 @@ func filetype#ProtoCheck(default) endif endfunc -func filetype#FTm() +func dist#ft#FTm() let n = 1 let saw_comment = 0 " Whether we've seen a multiline comment leader. while n < 100 @@ -296,7 +296,7 @@ func filetype#FTm() endif endfunc -func filetype#FTmms() +func dist#ft#FTmms() let n = 1 while n < 10 let line = getline(n) @@ -315,7 +315,7 @@ 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() +func dist#ft#FTnroff() if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] . getline(5)[0] =~ '\.' setf nroff return 1 @@ -323,7 +323,7 @@ func filetype#FTnroff() return 0 endfunc -func filetype#FTmm() +func dist#ft#FTmm() let n = 1 while n < 10 let line = getline(n) @@ -336,7 +336,7 @@ func filetype#FTmm() setf nroff endfunc -func filetype#FTpl() +func dist#ft#FTpl() if exists("g:filetype_pl") exe "setf " . g:filetype_pl else @@ -351,7 +351,7 @@ func filetype#FTpl() endif endfunc -func filetype#FTinc() +func dist#ft#FTinc() if exists("g:filetype_inc") exe "setf " . g:filetype_inc else @@ -363,7 +363,7 @@ func filetype#FTinc() elseif lines =~ "<?" setf php else - call filetype#FTasmsyntax() + call dist#ft#FTasmsyntax() if exists("b:asmsyntax") exe "setf " . fnameescape(b:asmsyntax) else @@ -373,7 +373,7 @@ func filetype#FTinc() endif endfunc -func filetype#FTprogress_cweb() +func dist#ft#FTprogress_cweb() if exists("g:filetype_w") exe "setf " . g:filetype_w return @@ -385,7 +385,7 @@ func filetype#FTprogress_cweb() endif endfunc -func filetype#FTprogress_asm() +func dist#ft#FTprogress_asm() if exists("g:filetype_i") exe "setf " . g:filetype_i return @@ -396,7 +396,7 @@ func filetype#FTprogress_asm() while lnum <= 10 && lnum < line('$') let line = getline(lnum) if line =~ '^\s*;' || line =~ '^\*' - call filetype#FTasm() + call dist#ft#FTasm() return elseif line !~ '^\s*$' || line =~ '^/\*' " Not an empty line: Doesn't look like valid assembly code. @@ -408,7 +408,7 @@ func filetype#FTprogress_asm() setf progress endfunc -func filetype#FTprogress_pascal() +func dist#ft#FTprogress_pascal() if exists("g:filetype_p") exe "setf " . g:filetype_p return @@ -433,7 +433,7 @@ func filetype#FTprogress_pascal() setf progress endfunc -func filetype#FTr() +func dist#ft#FTr() let max = line("$") > 50 ? 50 : line("$") for n in range(1, max) @@ -466,7 +466,7 @@ func filetype#FTr() endif endfunc -func filetype#McSetf() +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])) @@ -483,21 +483,21 @@ func filetype#McSetf() endfunc " Called from filetype.vim and scripts.vim. -func filetype#SetFileTypeSH(name) +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 filetype#SetFileTypeShell("csh") + call dist#ft#SetFileTypeShell("csh") return elseif a:name =~ '\<tcsh\>' " Some .sh scripts contain #!/bin/tcsh. - call filetype#SetFileTypeShell("tcsh") + call dist#ft#SetFileTypeShell("tcsh") return elseif a:name =~ '\<zsh\>' " Some .sh scripts contain #!/bin/zsh. - call filetype#SetFileTypeShell("zsh") + call dist#ft#SetFileTypeShell("zsh") return elseif a:name =~ '\<ksh\>' let b:is_kornshell = 1 @@ -524,13 +524,13 @@ func filetype#SetFileTypeSH(name) unlet b:is_bash endif endif - call filetype#SetFileTypeShell("sh") + 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 filetype#SetFileTypeShell(name) +func dist#ft#SetFileTypeShell(name) if expand("<amatch>") =~ g:ft_ignore_pat return endif @@ -550,18 +550,18 @@ func filetype#SetFileTypeShell(name) exe "setf " . a:name endfunc -func filetype#CSH() +func dist#ft#CSH() if exists("g:filetype_csh") - call filetype#SetFileTypeShell(g:filetype_csh) + call dist#ft#SetFileTypeShell(g:filetype_csh) elseif &shell =~ "tcsh" - call filetype#SetFileTypeShell("tcsh") + call dist#ft#SetFileTypeShell("tcsh") else - call filetype#SetFileTypeShell("csh") + call dist#ft#SetFileTypeShell("csh") endif endfunc let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*' -func filetype#FTRules() +func dist#ft#FTRules() let path = expand('<amatch>:p') if path =~ '^/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|lib/udev/\%(rules\.d/\)\=.*\.rules\)$' setf udevrules @@ -594,7 +594,7 @@ func filetype#FTRules() setf hog endfunc -func filetype#SQL() +func dist#ft#SQL() if exists("g:filetype_sql") exe "setf " . g:filetype_sql else @@ -608,7 +608,7 @@ endfunc " file. " (Slow test) If a file contains a 'use' statement then it is almost certainly " a Perl file. -func filetype#FTperl() +func dist#ft#FTperl() let dirname = expand("%:p:h:t") if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt') setf perl @@ -629,7 +629,7 @@ endfunc " 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() +func dist#ft#FTtex() let firstline = getline(1) if firstline =~ '^%&\s*\a\+' let format = tolower(matchstr(firstline, '\a\+')) @@ -681,7 +681,7 @@ func filetype#FTtex() return endfunc -func filetype#FTxml() +func dist#ft#FTxml() let n = 1 while n < 100 && n < line("$") let line = getline(n) @@ -707,7 +707,7 @@ func filetype#FTxml() setf xml endfunc -func filetype#FTy() +func dist#ft#FTy() let n = 1 while n < 100 && n < line("$") let line = getline(n) @@ -724,7 +724,7 @@ func filetype#FTy() setf yacc endfunc -func filetype#Redif() +func dist#ft#Redif() let lnum = 1 while lnum <= 5 && lnum < line('$') if getline(lnum) =~ "^\ctemplate-type:" diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 55f99fc10..d176cf12c 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2017 Nov 09 +" Last Change: 2017 Nov 11 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -52,7 +52,7 @@ endfunc au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help " Abaqus or Trasys -au BufNewFile,BufRead *.inp call filetype#Check_inp() +au BufNewFile,BufRead *.inp call dist#ft#Check_inp() " A-A-P recipe au BufNewFile,BufRead *.aap setf aap @@ -154,7 +154,7 @@ au BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf " 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() +au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm() " Macro (VAX) au BufNewFile,BufRead *.mar setf vmasm @@ -184,7 +184,7 @@ au BufNewFile,BufRead *.awk setf awk au BufNewFile,BufRead *.mch,*.ref,*.imp setf b " BASIC or Visual Basic -au BufNewFile,BufRead *.bas call filetype#FTVB("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,7 +202,7 @@ au BufNewFile,BufRead *.cmd \ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif " Batch file for 4DOS -au BufNewFile,BufRead *.btm call filetype#FTbtm() +au BufNewFile,BufRead *.btm call dist#ft#FTbtm() " BC calculator au BufNewFile,BufRead *.bc setf bc @@ -222,7 +222,7 @@ au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named " BIND zone au BufNewFile,BufRead named.root setf bindzone -au BufNewFile,BufRead *.db call filetype#BindzoneCheck('') +au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('') " Blank au BufNewFile,BufRead *.bl setf blank @@ -238,7 +238,7 @@ if has("fname_case") endif " C or lpc -au BufNewFile,BufRead *.c call filetype#FTlpc() +au BufNewFile,BufRead *.c call dist#ft#FTlpc() " Calendar au BufNewFile,BufRead calendar setf calendar @@ -292,7 +292,7 @@ endif " .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() +au BufNewFile,BufRead *.h call dist#ft#FTheader() " Ch (CHscript) au BufNewFile,BufRead *.chf setf ch @@ -326,7 +326,7 @@ au BufNewFile,BufRead NEWS au BufNewFile,BufRead *..ch setf chill " Changes for WEB and CWEB or CHILL -au BufNewFile,BufRead *.ch call filetype#FTchange() +au BufNewFile,BufRead *.ch call dist#ft#FTchange() " ChordPro au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf chordpro @@ -338,7 +338,7 @@ au BufNewFile,BufRead *.dcl,*.icl setf clean au BufNewFile,BufRead *.eni setf cl " Clever or dtd -au BufNewFile,BufRead *.ent call filetype#FTent() +au BufNewFile,BufRead *.ent call dist#ft#FTent() " Clipper (or FoxPro; could also be eviews) au BufNewFile,BufRead *.prg @@ -393,9 +393,9 @@ au BufNewFile,BufRead *enlightenment/*.cfg setf c au BufNewFile,BufRead *Eterm/*.cfg setf eterm " Euphoria 3 or 4 -au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call filetype#EuphoriaCheck() +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 filetype#EuphoriaCheck() + au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck() endif " Lynx config files @@ -442,7 +442,7 @@ au BufNewFile,BufRead */etc/dnsmasq.conf setf dnsmasq au BufNewFile,BufRead *.desc setf desc " the D language or dtrace -au BufNewFile,BufRead *.d call filetype#DtraceCheck() +au BufNewFile,BufRead *.d call dist#ft#DtraceCheck() " Desktop files au BufNewFile,BufRead *.desktop,.directory setf desktop @@ -474,7 +474,7 @@ au BufNewFile,BufRead *.rul \ endif " DCL (Digital Command Language - vms) or DNS zone file -au BufNewFile,BufRead *.com call filetype#BindzoneCheck('dcl') +au BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl') " DOT au BufNewFile,BufRead *.dot setf dot @@ -522,7 +522,7 @@ au BufNewFile,BufRead .editorconfig setf dosini au BufNewFile,BufRead *.ecd setf ecd " Eiffel or Specman or Euphoria -au BufNewFile,BufRead *.e,*.E call filetype#FTe() +au BufNewFile,BufRead *.e,*.E call dist#ft#FTe() " Elinks configuration au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks @@ -695,7 +695,7 @@ au BufNewFile,BufRead *.hex,*.h32 setf hex au BufNewFile,BufRead *.t.html setf tilde " HTML (.shtml and .stm for server side) -au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call filetype#FThtml() +au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml() " HTML with Ruby - eRuby au BufNewFile,BufRead *.erb,*.rhtml setf eruby @@ -722,7 +722,7 @@ au BufNewFile,BufRead *.htt,*.htb setf httest au BufNewFile,BufRead *.icn setf icon " IDL (Interface Description Language) -au BufNewFile,BufRead *.idl call filetype#FTidl() +au BufNewFile,BufRead *.idl call dist#ft#FTidl() " Microsoft IDL (Interface Description Language) Also *.idl " MOF = WMI (Windows Management Instrumentation) Managed Object Format @@ -733,10 +733,10 @@ au BufNewFile,BufRead */.icewm/menu setf icemenu " Indent profile (must come before IDL *.pro!) au BufNewFile,BufRead .indent.pro setf indent -au BufNewFile,BufRead indent.pro call filetype#ProtoCheck('indent') +au BufNewFile,BufRead indent.pro call dist#ft#ProtoCheck('indent') " IDL (Interactive Data Language) -au BufNewFile,BufRead *.pro call filetype#ProtoCheck('idlang') +au BufNewFile,BufRead *.pro call dist#ft#ProtoCheck('idlang') " Indent RC au BufNewFile,BufRead indentrc setf indent @@ -950,7 +950,7 @@ au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason " Mathematica, Matlab, Murphi or Objective C -au BufNewFile,BufRead *.m call filetype#FTm() +au BufNewFile,BufRead *.m call dist#ft#FTm() " Mathematica notebook au BufNewFile,BufRead *.nb setf mma @@ -980,7 +980,7 @@ au BufNewFile,BufRead *.mgl setf mgl au BufNewFile,BufRead *.mix,*.mixal setf mix " MMIX or VMS makefile -au BufNewFile,BufRead *.mms call filetype#FTmms() +au BufNewFile,BufRead *.mms call dist#ft#FTmms() " Symbian meta-makefile definition (MMP) au BufNewFile,BufRead *.mmp setf mmp @@ -1068,10 +1068,10 @@ au BufNewFile,BufRead *.me \ setf nroff | \ endif au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff -au BufNewFile,BufRead *.[1-9] call filetype#FTnroff() +au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff() " Nroff or Objective C++ -au BufNewFile,BufRead *.mm call filetype#FTmm() +au BufNewFile,BufRead *.mm call dist#ft#FTmm() " Not Quite C au BufNewFile,BufRead *.nqc setf nqc @@ -1126,9 +1126,9 @@ au BufNewFile,BufRead *.pcmk setf pcmk " Perl if has("fname_case") - au BufNewFile,BufRead *.pl,*.PL call filetype#FTpl() + au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl() else - au BufNewFile,BufRead *.pl call filetype#FTpl() + 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,7 +1195,7 @@ au BufNewFile,BufRead *.pov setf pov au BufNewFile,BufRead .povrayrc setf povini " Povray, PHP or assembly -au BufNewFile,BufRead *.inc call filetype#FTinc() +au BufNewFile,BufRead *.inc call dist#ft#FTinc() " Printcap and Termcap au BufNewFile,BufRead *printcap @@ -1224,13 +1224,13 @@ au BufNewFile,BufRead *.action setf privoxy au BufNewFile,BufRead .procmail,.procmailrc setf procmail " Progress or CWEB -au BufNewFile,BufRead *.w call filetype#FTprogress_cweb() +au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb() " Progress or assembly -au BufNewFile,BufRead *.i call filetype#FTprogress_asm() +au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm() " Progress or Pascal -au BufNewFile,BufRead *.p call filetype#FTprogress_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,7 +1316,7 @@ else endif " Rexx, Rebol or R -au BufNewFile,BufRead *.r,*.R call filetype#FTr() +au BufNewFile,BufRead *.r,*.R call dist#ft#FTr() " Remind au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind @@ -1412,7 +1412,7 @@ au BufNewFile,BufRead *.siv setf sieve 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() +au BufNewFile,BufRead *.mc call dist#ft#McSetf() " Services au BufNewFile,BufRead */etc/services setf services @@ -1453,23 +1453,23 @@ au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog') " 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)) +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 filetype#SetFileTypeSH("bash") | + \ call dist#ft#SetFileTypeSH("bash") | \ endif " tcsh scripts -au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login call filetype#SetFileTypeShell("tcsh") +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 filetype#CSH() +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,7 +1540,7 @@ au BufNewFile,BufRead *.mib,*.my setf mib " Snort Configuration au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog -au BufNewFile,BufRead *.rules call filetype#FTRules() +au BufNewFile,BufRead *.rules call dist#ft#FTRules() " Spec (Linux RPM) au BufNewFile,BufRead *.spec setf spec @@ -1564,7 +1564,7 @@ au BufNewFile,BufRead squid.conf setf squid au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql " SQL -au BufNewFile,BufRead *.sql call filetype#SQL() +au BufNewFile,BufRead *.sql call dist#ft#SQL() " SQLJ au BufNewFile,BufRead *.sqlj setf sqlj @@ -1613,7 +1613,7 @@ au BufNewFile,BufRead *.svg setf svg " Tads (or Nroff or Perl test file) au BufNewFile,BufRead *.t - \ if !filetype#FTnroff() && !filetype#FTperl() | setf tads | endif + \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif " Tags au BufNewFile,BufRead tags setf tags @@ -1642,7 +1642,7 @@ au BufNewFile,BufRead *.ti setf terminfo " TeX au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex -au BufNewFile,BufRead *.tex call filetype#FTtex() +au BufNewFile,BufRead *.tex call dist#ft#FTtex() " ConTeXt au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi setf context @@ -1740,7 +1740,7 @@ au BufRead,BufNewFile *.hw,*.module,*.pkg \ endif " Visual Basic (also uses *.bas) or FORM -au BufNewFile,BufRead *.frm call filetype#FTVB("form") +au BufNewFile,BufRead *.frm call dist#ft#FTVB("form") " SaxBasic is close to Visual Basic au BufNewFile,BufRead *.sba setf vb @@ -1830,10 +1830,10 @@ au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xd " Xmath au BufNewFile,BufRead *.msc,*.msf setf xmath au BufNewFile,BufRead *.ms - \ if !filetype#FTnroff() | setf xmath | endif + \ if !dist#ft#FTnroff() | setf xmath | endif " XML specific variants: docbk and xbl -au BufNewFile,BufRead *.xml call filetype#FTxml() +au BufNewFile,BufRead *.xml call dist#ft#FTxml() " XMI (holding UML models) is also XML au BufNewFile,BufRead *.xmi setf xml @@ -1876,7 +1876,7 @@ au BufNewFile,BufRead *.xsl,*.xslt setf xslt au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc " Yacc or racc -au BufNewFile,BufRead *.y call filetype#FTy() +au BufNewFile,BufRead *.y call dist#ft#FTy() " Yaml au BufNewFile,BufRead *.yaml,*.yml setf yaml @@ -1892,9 +1892,9 @@ au BufNewFile,BufRead *.zut setf zimbutempl " 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() +au BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml() " zsql (zope sql method) -au BufNewFile,BufRead *.zsql call filetype#SQL() +au BufNewFile,BufRead *.zsql call dist#ft#SQL() " Z80 assembler asz80 au BufNewFile,BufRead *.z8a setf z8a @@ -2048,7 +2048,7 @@ au BufNewFile,BufRead *termcap* " ReDIF " Only used when the .rdf file was not detected to be XML. -au BufRead,BufNewFile *.rdf call filetype#Redif() +au BufRead,BufNewFile *.rdf call dist#ft#Redif() " Remind au BufNewFile,BufRead .reminders* call s:StarSetf('remind') diff --git a/runtime/scripts.vim b/runtime/scripts.vim index 24799c428..18263e284 100644 --- a/runtime/scripts.vim +++ b/runtime/scripts.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types in scripts " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last change: 2017 Nov 09 +" 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,19 +66,19 @@ if s:line1 =~# "^#!" " 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 + call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim " csh scripts elseif s:name =~# '^csh\>' if exists("g:filetype_csh") - call filetype#SetFileTypeShell(g:filetype_csh) + call dist#ft#SetFileTypeShell(g:filetype_csh) else - call filetype#SetFileTypeShell("csh") + call dist#ft#SetFileTypeShell("csh") endif " tcsh scripts elseif s:name =~# '^tcsh\>' - call filetype#SetFileTypeShell("tcsh") + call dist#ft#SetFileTypeShell("tcsh") " Z shell scripts elseif s:name =~# '^zsh\>' @@ -185,7 +185,7 @@ else " Bourne-like shell scripts: sh ksh bash bash2 if s:line1 =~# '^:$' - call filetype#SetFileTypeSH(s:line1) " defined in filetype.vim + call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim " Z shell scripts elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' || diff --git a/src/Makefile b/src/Makefile index eda355aa6..1cdacf90f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2381,8 +2381,8 @@ installruntime: installrtbase installmacros installpack installtutor installspel # 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) + $(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,6 +2458,8 @@ installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(DEST_RT) \ # 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,7 +2655,7 @@ $(DESTDIR)$(exec_prefix) $(DEST_BIN) \ $(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): + $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml $(DEST_PLUG): $(MKDIR_P) $@ -chmod $(DIRMOD) $@ @@ -2808,9 +2810,11 @@ uninstall_runtime: -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_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)/xml $(DEST_AUTO) $(DEST_PLUG) $(DEST_RT) + -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) diff --git a/src/version.c b/src/version.c index 65cc66f31..8dd72301c 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1285, +/**/ 1284, /**/ 1283, |