Skip to content

Commit 05122f0

Browse files
committed
Use environ() if available
1 parent a521559 commit 05122f0

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

autoload/startify.vim

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,13 +1056,24 @@ function! s:init_env()
10561056
\ 'PWD': 1,
10571057
\ }
10581058

1059-
function! s:get_env()
1059+
if exists('*environ')
1060+
let env = items(environ())
1061+
else
10601062
redir => s
10611063
silent! execute "norm!:ec$\<c-a>'\<c-b>\<right>\<right>\<del>'\<cr>"
10621064
redir END
10631065
redraw
1064-
return split(s)
1065-
endfunction
1066+
let env = map(split(s), '[v:val, eval("$".v:val)]')
1067+
endif
1068+
1069+
for [var, val] in env
1070+
if has('win32') ? (val[1] != ':') : (val[0] != '/')
1071+
\ || has_key(ignore, var)
1072+
\ || len(var) > len(val)
1073+
continue
1074+
endif
1075+
call insert(s:env, [var, val], 0)
1076+
endfor
10661077

10671078
function! s:compare_by_key_len(foo, bar)
10681079
return len(a:foo[0]) - len(a:bar[0])
@@ -1071,16 +1082,6 @@ function! s:init_env()
10711082
return len(a:bar[1]) - len(a:foo[1])
10721083
endfunction
10731084

1074-
for k in s:get_env()
1075-
silent! execute "let v = eval('$'.k)"
1076-
if has('win32') ? (v[1] != ':') : (v[0] != '/')
1077-
\ || has_key(ignore, k)
1078-
\ || len(k) > len(v)
1079-
continue
1080-
endif
1081-
call insert(s:env, [k,v], 0)
1082-
endfor
1083-
10841085
let s:env = sort(s:env, 's:compare_by_key_len')
10851086
let s:env = sort(s:env, 's:compare_by_val_len')
10861087
endfunction

0 commit comments

Comments
 (0)