@@ -110,7 +110,7 @@ function! pathogen#surround(path) abort
110
110
let rtp = pathogen#split (&rtp )
111
111
let path = fnamemodify (a: path , ' :p:s?[\\/]\=$??' )
112
112
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])' )
114
114
call filter (rtp , ' index(before + after, v:val) == -1' )
115
115
let &rtp = pathogen#join (before, rtp , after)
116
116
return &rtp
@@ -128,7 +128,7 @@ function! pathogen#interpose(name) abort
128
128
let list = []
129
129
for dir in pathogen#split (&rtp )
130
130
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 ]
132
132
else
133
133
let list += [dir ] + filter (pathogen#expand (dir .sep.name), ' !pathogen#is_disabled(v:val)' )
134
134
endif
@@ -171,22 +171,23 @@ endfunction
171
171
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
172
172
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
173
173
" 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 : ' '
175
176
if a: pattern = ~# ' {[^{}]\+}'
176
177
let [pre , pat, post] = split (substitute (a: pattern , ' \(.\{-\}\){\([^{}]\+\)}\(.*\)' , " \\ 1\001 \\ 2\001 \\ 3" , ' ' ), " \001 " , 1 )
177
178
let found = map (split (pat, ' ,' , 1 ), ' pre.v:val.post' )
178
179
let results = []
179
180
for pattern in found
180
- call extend (results, pathogen#expand ( pattern))
181
+ call extend (results, call ( ' pathogen#expand' , [ pattern] + a: 000 ))
181
182
endfor
182
- return results
183
183
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' )
187
187
else
188
- return [a: pattern ]
188
+ let results = [a: pattern.after ]
189
189
endif
190
+ return results
190
191
endfunction
191
192
192
193
" \ on Windows unless shellslash is set, / everywhere else.
0 commit comments