diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2020-01-26 02:13:37 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-26 02:13:37 -0800 |
commit | 07a105f0cb6e2827e621ea31c52cd7714a44a418 (patch) | |
tree | 1a1c2eae756b81e439e26b6b55d467dc087bbb70 /src/nvim/eval.c | |
parent | c6ff23d7a0d5ccf0d8995e3204c18df55d28fc7f (diff) | |
download | rneovim-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.c | 7 |
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); |