diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-10-01 22:57:49 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-10-02 20:44:48 -0400 |
commit | 07fbdf4acc3b15ff97acb5c90243c61d938f8541 (patch) | |
tree | f43de17d8d0a663c93a711933115cc72afdc8b06 /src/nvim/eval.c | |
parent | 65206714bc0990a469da5efd2edbe52e81903014 (diff) | |
download | rneovim-07fbdf4acc3b15ff97acb5c90243c61d938f8541.tar.gz rneovim-07fbdf4acc3b15ff97acb5c90243c61d938f8541.tar.bz2 rneovim-07fbdf4acc3b15ff97acb5c90243c61d938f8541.zip |
vim-patch:8.0.1832: cannot use :unlet for an environment variable
Problem: Cannot use :unlet for an environment variable.
Solution: Make it work. Use unsetenv() if available.
(Yasuhiro Matsumoto, closes vim/vim#2855)
https://github.com/vim/vim/commit/137374fd6538cf9dee0cb22907728d8fdecb5832
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 41a9eeeb40..2aab2d72a7 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -2818,6 +2818,18 @@ static void ex_unletlock(exarg_T *eap, char_u *argstart, int deep) lval_T lv; do { + if (*arg == '$') { + const char *name = (char *)++arg; + + if (get_env_len((const char_u **)&arg) == 0) { + EMSG2(_(e_invarg2), name - 1); + return; + } + os_unsetenv(name); + arg = skipwhite(arg); + continue; + } + // Parse the name and find the end. char_u *const name_end = (char_u *)get_lval(arg, NULL, &lv, true, eap->skip || error, |