diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2020-05-03 01:32:13 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2020-05-03 01:48:36 +1200 |
commit | 2582628f1b95eb98159e77e8359dea6c1b3e005f (patch) | |
tree | b0c60000f8d88f3f7d4d4ae0cda65405e362c79f /vim/autoload/xdg.vim | |
parent | Merge branch 'release/v8.23.0' into develop (diff) | |
download | dotfiles-2582628f1b95eb98159e77e8359dea6c1b3e005f.tar.gz dotfiles-2582628f1b95eb98159e77e8359dea6c1b3e005f.zip |
Tidy and correct XDG var getenv() fallback
It's more correct for this function to get upset it's been passed
a variable name outside the XDG basedirs spec; a more general function,
in this case a backporting of getenv() from v8.1.1305.
Diffstat (limited to 'vim/autoload/xdg.vim')
-rw-r--r-- | vim/autoload/xdg.vim | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/vim/autoload/xdg.vim b/vim/autoload/xdg.vim index 2b1e7c56..a0b88f82 100644 --- a/vim/autoload/xdg.vim +++ b/vim/autoload/xdg.vim @@ -11,18 +11,13 @@ 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 |