aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload/xdg.vim
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2020-05-03 02:16:34 +1200
committerTom Ryder <tom@sanctum.geek.nz>2020-05-03 02:16:34 +1200
commitfd7bbd4599d1c15555c8c563d840d7fae6fd60bf (patch)
treee1030e690578e97208d3f96b7ede1ea1c3b7d02f /vim/autoload/xdg.vim
parentMerge branch 'release/v8.23.0' (diff)
parentBump VERSION (diff)
downloaddotfiles-fd7bbd4599d1c15555c8c563d840d7fae6fd60bf.tar.gz
dotfiles-fd7bbd4599d1c15555c8c563d840d7fae6fd60bf.zip
Merge branch 'release/v8.24.0'v8.24.0
* release/v8.24.0: Use v:null in XDG-related contexts Add handling of "after" subdirs in Vim XDG config Separate cache runtime behaviour from config Tolerate unset iteration variables Improve "absolute path" check for XDG base dirs Tidy and correct XDG var getenv() fallback
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