diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-10-19 22:12:25 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-10-19 22:12:25 +0100 |
commit | 8b0e62c93b6dad5ec5b2c7558d4f7b78c46216d2 (patch) | |
tree | 4d69964e5df4ca843790c9e0b3bbb36755c3061a /src/memline.c | |
parent | c5935a859ee31d56a565878d7a231fc59b7ddc01 (diff) |
patch 8.2.3543: swapname has double slash when 'directory' ends in itv8.2.3543
Problem: Swapname has double slash when 'directory' ends in double slash.
(Shane Smith)
Solution: Remove the superfluous slash. (closes #8876)
Diffstat (limited to 'src/memline.c')
-rw-r--r-- | src/memline.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/memline.c b/src/memline.c index bfbf4e2807..f54a970cc6 100644 --- a/src/memline.c +++ b/src/memline.c @@ -2064,7 +2064,9 @@ recover_names( /* * Need _very_ long file names. * Append the full path to name with path separators made into percent - * signs, to dir. An unnamed buffer is handled as "" (<currentdir>/"") + * signs, to "dir". An unnamed buffer is handled as "" (<currentdir>/"") + * The last character in "dir" must be an extra slash or backslash, it is + * removed. */ char_u * make_percent_swname(char_u *dir, char_u *name) @@ -2081,6 +2083,8 @@ make_percent_swname(char_u *dir, char_u *name) for (d = s; *d != NUL; MB_PTR_ADV(d)) if (vim_ispathsep(*d)) *d = '%'; + + dir[STRLEN(dir) - 1] = NUL; // remove one trailing slash d = concat_fnames(dir, s, TRUE); vim_free(s); } |