diff options
Diffstat (limited to 'vim/autoload/xdg.vim')
-rw-r--r-- | vim/autoload/xdg.vim | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/vim/autoload/xdg.vim b/vim/autoload/xdg.vim index 2b1e7c56..2b90f5f1 100644 --- a/vim/autoload/xdg.vim +++ b/vim/autoload/xdg.vim @@ -11,28 +11,25 @@ let s:subdir = 'vim' function! s:Get(name) abort let name = a:name - if name !~# '^[A-Z][A-Z0-9_]*$' - throw 'Illegal env var name' - endif - let value = '' - execute 'let value = $'.name - if value !=# '' - return value - elseif has_key(s:defaults, name) - return s:defaults[name] - else - return '' + if !has_key(s:defaults, name) + throw 'Illegal XDG basedirs env var name' endif + let value = getenv#(name) + return value !=# v:null + \ ? value + \ : s:defaults[name] endfunction function! s:Absolute(path) abort - return a:path =~# '^[/~]' + return a:path =~# '^/' + \ || a:path =~# '^\~/' + \ || a:path ==# '~' endfunction function! s:Home(name) abort let home = s:Get(a:name) if !s:Absolute(home) - return '' + return v:null endif return join([home, s:subdir], '/') endfunction |