Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'master' of https://github.com/xolox/vim-misc
  • Loading branch information
xolox committed Sep 25, 2011
2 parents e7e0d7b + 362ec9c commit 927aeff
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
15 changes: 3 additions & 12 deletions autoload/xolox/misc/list.vim
Expand Up @@ -6,18 +6,9 @@
" Remove duplicate values from {list} in-place (preserves order).

function! xolox#misc#list#unique(list)
let index = 0
while index < len(a:list)
let value = a:list[index]
let match = index(a:list, value, index+1)
if match >= 0
call remove(a:list, match)
else
let index += 1
endif
unlet value
endwhile
return a:list
call reverse(a:list)
call filter(a:list, 'count(a:list, v:val) == 1')
return reverse(a:list)
endfunction

" Binary insertion (more efficient than calling sort() after each insertion).
Expand Down
25 changes: 24 additions & 1 deletion autoload/xolox/misc/path.vim
@@ -1,10 +1,33 @@
" Vim auto-load script
" Author: Peter Odding <peter@peterodding.com>
" Last Change: August 31, 2011
" Last Change: September 26, 2011
" URL: http://peterodding.com/code/vim/misc/

let s:windows_compatible = has('win32') || has('win64')

function! xolox#misc#path#which(...)
let extensions = s:windows_compatible ? split($PATHEXT, ';') : ['']
let matches = []
let checked = {}
for directory in split($PATH, s:windows_compatible ? ';' : ':')
let directory = xolox#misc#path#absolute(directory)
if !has_key(checked, directory)
if isdirectory(directory)
for program in a:000
for extension in extensions
let path = xolox#misc#path#merge(directory, program . extension)
if executable(path)
call add(matches, path)
endif
endfor
endfor
endif
let checked[directory] = 1
endif
endfor
return matches
endfunction

" Split a pathname into a list of path components.

function! xolox#misc#path#split(path)
Expand Down

0 comments on commit 927aeff

Please sign in to comment.