Browse Source

Merge 8162713ba7 into 5548a1a937

pull/589/merge
Claus Reinke 1 year ago
committed by GitHub
parent
commit
10e6bc07ee
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
3 changed files with 52 additions and 26 deletions
  1. +19
    -14
      autoload/vundle/config.vim
  2. +31
    -10
      autoload/vundle/installer.vim
  3. +2
    -2
      autoload/vundle/scripts.vim

+ 19
- 14
autoload/vundle/config.vim View File

@ -7,8 +7,8 @@
" ---------------------------------------------------------------------------
func! vundle#config#bundle(arg, ...)
let bundle = vundle#config#init_bundle(a:arg, a:000)
if !s:check_bundle_name(bundle)
return
if 'new'!=s:register_bundle_name(bundle)
return {}
endif
if exists('g:vundle#lazy_load') && g:vundle#lazy_load
call add(g:vundle#bundles, bundle)
@ -84,25 +84,30 @@ endf
" ---------------------------------------------------------------------------
" Check if the current bundle name has already been used in this running
" instance and show an error to that effect.
" Check if the current bundle name has already been used by another bundle in
" this running instance. If bundle name is unique and valid, register it to
" current bundle, else show an error.
"
" bundle -- a bundle object whose name is to be checked
" return -- 0 if the bundle's name has been seen before, 1 otherwise
" bundle -- a bundle object whose name is to be checked/registered
" return -- 'new'|'known'|'collision'|'invalid'
" ---------------------------------------------------------------------------
funct! s:check_bundle_name(bundle)
funct! s:register_bundle_name(bundle)
if has_key(s:bundle_names, a:bundle.name)
echoerr 'Vundle error: Name collision for Plugin ' . a:bundle.name_spec .
\ '. Plugin ' . s:bundle_names[a:bundle.name] .
\ ' previously used the name "' . a:bundle.name . '"' .
\ '. Skipping Plugin ' . a:bundle.name_spec . '.'
return 0
if s:bundle_names[a:bundle.name]==a:bundle.name_spec
return 'known'
else
echoerr 'Vundle error: Name collision for Plugin ' . a:bundle.name_spec .
\ '. Plugin ' . s:bundle_names[a:bundle.name] .
\ ' previously used the name "' . a:bundle.name . '"' .
\ '. Skipping Plugin ' . a:bundle.name_spec . '.'
return 'collision'
endif
elseif a:bundle.name !~ '\v^[A-Za-z0-9_-]%(\.?[A-Za-z0-9_-])*$'
echoerr 'Invalid plugin name: ' . a:bundle.name
return 0
return 'invalid'
endif
let s:bundle_names[a:bundle.name] = a:bundle.name_spec
return 1
return 'new'
endf


+ 31
- 10
autoload/vundle/installer.vim View File

@ -15,7 +15,7 @@ func! vundle#installer#new(bang, ...) abort
let bundles = filter(copy(g:vundle#bundles), 'index(a:000, v:val.name) > -1')
" Specific plugins are specified for installation. Install them.
else
let bundles = map(copy(a:000), 'vundle#config#bundle(v:val, {})')
let bundles = filter(map(copy(a:000), 'vundle#config#bundle(v:val, {})'),'v:val!={}')
endif
if empty(bundles)
@ -150,8 +150,10 @@ endf
func! vundle#installer#install_and_require(bang, name) abort
let result = vundle#installer#install(a:bang, a:name)
let b = vundle#config#bundle(a:name, {})
call vundle#installer#helptags([b])
call vundle#config#require([b])
if b!={}
call vundle#installer#helptags([b])
call vundle#config#require([b])
endif
return result
endf
@ -285,7 +287,7 @@ func! vundle#installer#delete(bang, dir_name) abort
let bundle = vundle#config#init_bundle(a:dir_name, {})
let cmd .= ' '.vundle#installer#shellesc(bundle.path())
let out = s:system(cmd)
let out = vundle#installer#system(cmd)
call s:log('')
call s:log('Plugin '.a:dir_name)
@ -345,7 +347,7 @@ endf
func! s:get_current_origin_url(bundle) abort
let cmd = 'cd '.vundle#installer#shellesc(a:bundle.path()).' && git config --get remote.origin.url'
let cmd = vundle#installer#shellesc_cd(cmd)
let out = s:strip(s:system(cmd))
let out = s:strip(vundle#installer#system(cmd))
return out
endf
@ -359,7 +361,7 @@ endf
func! s:get_current_sha(bundle)
let cmd = 'cd '.vundle#installer#shellesc(a:bundle.path()).' && git rev-parse HEAD'
let cmd = vundle#installer#shellesc_cd(cmd)
let out = s:system(cmd)[0:15]
let out = vundle#installer#system(cmd)[0:15]
return out
endf
@ -446,10 +448,10 @@ func! s:sync(bang, bundle) abort
return 'todate'
endif
let out = s:system(cmd)
call s:log('')
call s:log('Plugin '.a:bundle.name_spec)
call s:log(cmd, '$ ')
let out = vundle#installer#system(cmd)
call s:log(out, '> ')
if 0 != v:shell_error
@ -510,9 +512,28 @@ endf
" cmd -- the command passed to system() (string)
" return -- the return value from system()
" ---------------------------------------------------------------------------
func! s:system(cmd) abort
return system(a:cmd)
endf
if (has("win32") || has("win64")) &&
\ (v:version<703 ||
\ (v:version==703 && (!has("patch443") || !has("patch445") || !has("patch446"))) )
func! vundle#installer#system(cmd) abort
" see cmd.exe docs (scroll down to remarks):
" https://technet.microsoft.com/de-de/library/cc771320(v=ws.10).aspx
" and vim patches links: https://github.com/airblade/vim-system-escape
if &shell=~"cmd.exe"
return system('"'.a:cmd.'"')
else
return system(a:cmd)
endif
endf
else
func! vundle#installer#system(cmd) abort
return system(a:cmd)
endf
endif
" ---------------------------------------------------------------------------


+ 2
- 2
autoload/vundle/scripts.vim View File

@ -89,7 +89,7 @@ func! s:create_changelog() abort
let cmd = vundle#installer#shellesc_cd(cmd)
let updates = system(cmd)
let updates = vundle#installer#system(cmd)
call add(changelog, '')
call add(changelog, 'Updated Plugin: '.bundle.name)
@ -249,7 +249,7 @@ func! s:fetch_scripts(to)
return 1
endif
call system(cmd)
call vundle#installer#system(cmd)
if (0 != v:shell_error)
echoerr 'Error fetching scripts!'


Loading…
Cancel
Save