Skip to content

Commit a6004fd

Browse files
committed
Separate "after" parameter during expansion
1 parent b4174e4 commit a6004fd

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

autoload/pathogen.vim

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ function! pathogen#surround(path) abort
110110
let rtp = pathogen#split(&rtp)
111111
let path = fnamemodify(a:path, ':p:s?[\\/]\=$??')
112112
let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
113-
let after = filter(reverse(pathogen#expand(path.sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
113+
let after = filter(reverse(pathogen#expand(path, sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
114114
call filter(rtp, 'index(before + after, v:val) == -1')
115115
let &rtp = pathogen#join(before, rtp, after)
116116
return &rtp
@@ -128,7 +128,7 @@ function! pathogen#interpose(name) abort
128128
let list = []
129129
for dir in pathogen#split(&rtp)
130130
if dir =~# '\<after$'
131-
let list += reverse(filter(pathogen#expand(dir[0:-6].name.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
131+
let list += reverse(filter(pathogen#expand(dir[0:-6].name, sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
132132
else
133133
let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
134134
endif
@@ -171,22 +171,23 @@ endfunction
171171
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
172172
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
173173
" and globbed. Actual globs are preserved.
174-
function! pathogen#expand(pattern) abort
174+
function! pathogen#expand(pattern, ...) abort
175+
let after = a:0 ? a:1 : ''
175176
if a:pattern =~# '{[^{}]\+}'
176177
let [pre, pat, post] = split(substitute(a:pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
177178
let found = map(split(pat, ',', 1), 'pre.v:val.post')
178179
let results = []
179180
for pattern in found
180-
call extend(results, pathogen#expand(pattern))
181+
call extend(results, call('pathogen#expand', [pattern] + a:000))
181182
endfor
182-
return results
183183
elseif a:pattern =~# '{}'
184-
let pat = matchstr(a:pattern, '^.*{}[^*]*\%($\|[\\/]\)')
185-
let post = a:pattern[strlen(pat) : -1]
186-
return map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
184+
let pat = matchstr(a:pattern.after, '^.*{}[^*]*\%($\|[\\/]\)')
185+
let post = (a:pattern.after)[strlen(pat) : -1]
186+
let results = map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
187187
else
188-
return [a:pattern]
188+
let results = [a:pattern.after]
189189
endif
190+
return results
190191
endfunction
191192

192193
" \ on Windows unless shellslash is set, / everywhere else.

0 commit comments

Comments
 (0)