aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2020-01-26 02:13:37 -0800
committerGitHub <noreply@github.com>2020-01-26 02:13:37 -0800
commit07a105f0cb6e2827e621ea31c52cd7714a44a418 (patch)
tree1a1c2eae756b81e439e26b6b55d467dc087bbb70 /src/nvim/eval.c
parentc6ff23d7a0d5ccf0d8995e3204c18df55d28fc7f (diff)
downloadrneovim-07a105f0cb6e2827e621ea31c52cd7714a44a418.tar.gz
rneovim-07a105f0cb6e2827e621ea31c52cd7714a44a418.tar.bz2
rneovim-07a105f0cb6e2827e621ea31c52cd7714a44a418.zip
terminal: trim CWD slash #11762
Trailing CWD slash in term:// buffer name breaks the BufReadCmd handler. Before: term://~///25232:/bin/bash After: term://~//25232:/bin/bash ref c6ff23d7a0d5 ref #11289
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index ce1d55afab..55b18d5f4f 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -18386,7 +18386,12 @@ static void f_termopen(typval_T *argvars, typval_T *rettv, FunPtr fptr)
// "./…" => "/home/foo/…"
vim_FullName(cwd, (char *)NameBuff, sizeof(NameBuff), false);
// "/home/foo/…" => "~/…"
- home_replace(NULL, NameBuff, IObuff, sizeof(IObuff), true);
+ size_t len = home_replace(NULL, NameBuff, IObuff, sizeof(IObuff), true);
+ // Trim slash.
+ if (IObuff[len - 1] == '\\' || IObuff[len - 1] == '/') {
+ IObuff[len - 1] = '\0';
+ }
+
// Terminal URI: "term://$CWD//$PID:$CMD"
snprintf((char *)NameBuff, sizeof(NameBuff), "term://%s//%d:%s",
(char *)IObuff, pid, cmd);