aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload/getenv.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/getenv.vim
parentMerge branch 'release/v8.23.0' (diff)
parentBump VERSION (diff)
downloaddotfiles-8.24.0.tar.gz (sig)
dotfiles-8.24.0.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/getenv.vim')
-rw-r--r--vim/autoload/getenv.vim22
1 files changed, 22 insertions, 0 deletions
diff --git a/vim/autoload/getenv.vim b/vim/autoload/getenv.vim
new file mode 100644
index 00000000..2b8fef1b
--- /dev/null
+++ b/vim/autoload/getenv.vim
@@ -0,0 +1,22 @@
+" Backport getenv() from v8.1.1305
+"
+" <https://github.com/vim/vim/releases/tag/v8.1.1305>
+"
+function! getenv#(name) abort
+
+ " Use native if available
+ if exists('*getenv')
+ return getenv(a:name)
+ endif
+
+ " Backport
+ if a:name !~# '^[A-Z][A-Z0-9_]*$'
+ throw 'Illegal env var name'
+ endif
+ let value = v:null
+ if exists('$'.a:name)
+ execute 'let value = $'.a:name
+ endif
+ return value
+
+endfunction