aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2020-09-08 20:47:22 -0700
committerGitHub <noreply@github.com>2020-09-08 20:47:22 -0700
commit59712f6dbecfd9a7ccd021115170d1c9313b0969 (patch)
treef215d014b599acc55f2c1d375a66bb587f9ea7b1 /src
parentdf6b49b4ee5a4e4d022baf68b8e1177102243160 (diff)
downloadrneovim-59712f6dbecfd9a7ccd021115170d1c9313b0969.tar.gz
rneovim-59712f6dbecfd9a7ccd021115170d1c9313b0969.tar.bz2
rneovim-59712f6dbecfd9a7ccd021115170d1c9313b0969.zip
win: avoid duplicate separators in $PATH #12869
Seems like redundant env var separators (";" on Windows) in $PATH can cause weird behavior. From #7377: > After some time, system(['win32yank', '-o']) and system('win32yank -o') > start returning different results: specifically first returns an > empty string. > > 1. $PATH weirdly contains double semicolon followed by path to the > “installation directory” (unpacked directory from archive). > 2. If I run `let $PATH=substitute($PATH, ';;', ';', 'g')` the problem is fixed. close #7377 ref 224f99b85d311ebd31451db13b66e4a3c7e51938
Diffstat (limited to 'src')
-rw-r--r--src/nvim/os/env.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c
index 082ad58223..879266e3d4 100644
--- a/src/nvim/os/env.c
+++ b/src/nvim/os/env.c
@@ -1176,7 +1176,9 @@ bool os_setenv_append_path(const char *fname)
temp[0] = NUL;
} else {
xstrlcpy(temp, path, newlen);
- xstrlcat(temp, ENV_SEPSTR, newlen);
+ if (ENV_SEPCHAR != path[pathlen - 1]) {
+ xstrlcat(temp, ENV_SEPSTR, newlen);
+ }
}
xstrlcat(temp, os_buf, newlen);
os_setenv("PATH", temp, 1);