Patch 8.1.0771
Problem: Some shell filetype patterns end in a star.
Solution: Make sure that patterns not ending in a star are preferred.
Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim
*** ../vim-8.1.0770/runtime/filetype.vim 2018-11-03 19:52:11.333956689
+0100
--- runtime/filetype.vim 2019-01-18 21:20:27.678878376 +0100
***************
*** 1462,1470 ****
" 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-fc[-.]*,*.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
--- 1462,1472 ----
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
! " NOTE: Patterns ending in a star are further down, these have lower priority.
! au BufNewFile,BufRead
.bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.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
***************
*** 1475,1488 ****
\ 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
! au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
au BufNewFile,BufRead *.zsh setf zsh
" Scheme
--- 1477,1490 ----
\ 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
! au BufNewFile,BufRead .zsh,.zlog,.zcompdump call s:StarSetf('zsh')
au BufNewFile,BufRead *.zsh setf zsh
" Scheme
***************
*** 2074,2079 ****
--- 2076,2095 ----
" Remind
au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
+ " Shell scripts ending in a star
+ au BufNewFile,BufRead
.bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,,PKGBUILD*
call dist#ft#SetFileTypeSH("bash")
+ au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
+ au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1))
+
+ " tcsh scripts ending in a star
+ au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh")
+
+ " csh scripts ending in a star
+ au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH()
+
+ " Z-Shell script ending in a star
+ au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
+
" Vim script
au BufNewFile,BufRead *vimrc* call s:StarSetf('vim')
*** ../vim-8.1.0770/runtime/autoload/dist/ft.vim 2017-12-05
21:37:31.000000000 +0100
--- runtime/autoload/dist/ft.vim 2019-01-18 21:19:20.775377125 +0100
***************
*** 126,132 ****
" 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
--- 126,132 ----
" 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", "//" or "/*" it's probably ch.
" Otherwise CHILL is assumed.
func dist#ft#FTchange()
let lnum = 1
***************
*** 484,489 ****
--- 484,493 ----
" Called from filetype.vim and scripts.vim.
func dist#ft#SetFileTypeSH(name)
+ if did_filetype()
+ " Filetype was already detected
+ return
+ endif
if expand("<amatch>") =~ g:ft_ignore_pat
return
endif
***************
*** 531,536 ****
--- 535,544 ----
" as used for Tcl.
" Also called from scripts.vim, thus can't be local to this script.
func dist#ft#SetFileTypeShell(name)
+ if did_filetype()
+ " Filetype was already detected
+ return
+ endif
if expand("<amatch>") =~ g:ft_ignore_pat
return
endif
***************
*** 551,556 ****
--- 559,568 ----
endfunc
func dist#ft#CSH()
+ if did_filetype()
+ " Filetype was already detected
+ return
+ endif
if exists("g:filetype_csh")
call dist#ft#SetFileTypeShell(g:filetype_csh)
elseif &shell =~ "tcsh"
***************
*** 632,638 ****
" 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\+'
--- 644,650 ----
" 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 "plain" or to g:tex_flavor, can be set in user's vimrc.
func dist#ft#FTtex()
let firstline = getline(1)
if firstline =~ '^%&\s*\a\+'
*** ../vim-8.1.0770/src/version.c 2019-01-17 22:28:18.901373188 +0100
--- src/version.c 2019-01-18 21:44:39.609527401 +0100
***************
*** 793,794 ****
--- 793,796 ----
{ /* Add new patch number below this line */
+ /**/
+ 771,
/**/
--
Hear about the guy who played a blank tape at full blast?
The mime next door went nuts.
/// 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.