aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload/xdg.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/autoload/xdg.vim')
-rw-r--r--vim/autoload/xdg.vim23
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