diff options
| author | James McCoy <jamessan@jamessan.com> | 2018-07-27 10:44:29 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-27 10:44:29 -0400 |
| commit | 594859fdd6b0062b326133682edfeaf1dfa86579 (patch) | |
| tree | 1213ec3f6ab73c9fcfb2a77f0f0c1c5cba5c18e1 /src/nvim/os/env.c | |
| parent | e42688fcf38013f9c4eef8f97f92e686a858ffad (diff) | |
| parent | 30bba7a10cfa3af97fdcbb39afb9d0146b2af509 (diff) | |
| download | rneovim-594859fdd6b0062b326133682edfeaf1dfa86579.tar.gz rneovim-594859fdd6b0062b326133682edfeaf1dfa86579.tar.bz2 rneovim-594859fdd6b0062b326133682edfeaf1dfa86579.zip | |
Merge pull request #8485 from janlazo/vim-8.0.1012
[RDY] vim-patch:8.0.{805,806,810,1012,1017}
Diffstat (limited to 'src/nvim/os/env.c')
| -rw-r--r-- | src/nvim/os/env.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c index 0df857352b..6997156d4c 100644 --- a/src/nvim/os/env.c +++ b/src/nvim/os/env.c @@ -196,16 +196,19 @@ void init_homedir(void) const char *homedrive = os_getenv("HOMEDRIVE"); const char *homepath = os_getenv("HOMEPATH"); if (homepath == NULL) { - homepath = "\\"; + homepath = "\\"; } - if (homedrive != NULL && strlen(homedrive) + strlen(homepath) < MAXPATHL) { + if (homedrive != NULL + && strlen(homedrive) + strlen(homepath) < MAXPATHL) { snprintf(os_buf, MAXPATHL, "%s%s", homedrive, homepath); if (os_buf[0] != NUL) { var = os_buf; - vim_setenv("HOME", os_buf); } } } + if (var == NULL) { + var = os_getenv("USERPROFILE"); + } #endif if (var != NULL) { @@ -608,6 +611,12 @@ char *vim_getenv(const char *name) return xstrdup(kos_env_path); } +#ifdef WIN32 + if (strcmp(name, "HOME") == 0) { + return xstrdup(homedir); + } +#endif + bool vimruntime = (strcmp(name, "VIMRUNTIME") == 0); if (!vimruntime && strcmp(name, "VIM") != 0) { return NULL; @@ -758,7 +767,12 @@ size_t home_replace(const buf_T *const buf, const char_u *src, dirlen = strlen(homedir); } - const char *const homedir_env = os_getenv("HOME"); + const char *homedir_env = os_getenv("HOME"); +#ifdef WIN32 + if (homedir_env == NULL) { + homedir_env = os_getenv("USERPROFILE"); + } +#endif char *homedir_env_mod = (char *)homedir_env; bool must_free = false; |